Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
6e9af52
create schematics
Jul 29, 2024
2cceacf
Create all Project schematics
Luca-Timo Jul 29, 2024
9411e6a
ADD ESP32s3
Luca-Timo Jul 29, 2024
be9be52
ADD CAN and 7segment displays
Luca-Timo Jul 29, 2024
e1c7f94
Start Speedometer Board outline
Luca-Timo Jul 31, 2024
5b48eca
Split Project to two PCB
Luca-Timo Aug 1, 2024
7a3ad7e
split altium project to faceplate and tech
Luca-Timo Aug 2, 2024
b03baf6
Update Speedometer_Faceplate.PrjPcb
Luca-Timo Aug 2, 2024
0220193
ADD Temp and Soc
Luca-Timo Aug 5, 2024
2e0b349
Placed Temp, SOC, Distance and Signal Neopixel
Luca-Timo Aug 7, 2024
e9b431b
ADD Placeholder for Lada Niva Logo
Luca-Timo Aug 8, 2024
0ab49b5
ADD Alphanummerical Display
Luca-Timo Aug 8, 2024
e6111c8
ADD signal input and can
Luca-Timo Aug 8, 2024
cb599c3
ADD MAX6955 to project
Luca-Timo Aug 20, 2024
869f666
place torq leds
Luca-Timo Aug 26, 2024
9ad5b6e
ADD Supply for Neopixel
Luca-Timo Aug 27, 2024
ff4b7e5
Speedometer Add connectors on backside
Luca-Timo Sep 3, 2024
27b722e
Edit can Layout
Luca-Timo Sep 9, 2024
630d1af
continue layout and schematic
Luca-Timo Sep 12, 2024
5777849
Routing Signalinput done
Luca-Timo Sep 17, 2024
bdaa25f
start routing of signals
Luca-Timo Sep 17, 2024
9ce63a6
Update Speedometer_Tech.PcbDoc
Luca-Timo Sep 17, 2024
822fd80
ADD segment Displays Driver ic
Luca-Timo Sep 27, 2024
064ad14
7seg ics
Luca-Timo Sep 30, 2024
640b318
ADD datasheet for leds and powercalc
Luca-Timo Oct 3, 2024
2c473c4
Modify Schematic, start Layout DCDC
Luca-Timo Oct 21, 2024
2e42e0e
start Layout of DCDC
Luca-Timo Oct 22, 2024
b4d3e58
Add current version of layout
Luca-Timo Oct 24, 2024
24401a9
finish layout of dcdc
Luca-Timo Nov 4, 2024
a702c29
Layout 7Seg nearly done
Luca-Timo Nov 8, 2024
262506a
Layout preatty much done
Luca-Timo Nov 18, 2024
f5e1221
Update Speedometer_Tech.PcbDoc
Luca-Timo Nov 18, 2024
0c012ce
Change Altium to Rule
Luca-Timo Nov 18, 2024
16a8ead
Layout probably done?
Luca-Timo Nov 18, 2024
02a526a
add holes to pcb
Luca-Timo Nov 19, 2024
ed15b12
delete backup and create kicad import
Luca-Timo Nov 21, 2024
fc8ac2b
try to upload kicad layout
Luca-Timo Nov 24, 2024
cc04e59
update kicad pcb
Luca-Timo Nov 24, 2024
b2ad43e
neopixel test
Luca-Timo Dec 16, 2024
817d143
TLC debug
Luca-Timo Dec 23, 2024
a4fbe94
dev stuff
Luca-Timo Dec 24, 2024
925f445
14segment seems ok
Luca-Timo Dec 25, 2024
0f246e8
some stuff working now
Luca-Timo Dec 25, 2024
7cdd8c0
working demo mode
Luca-Timo Dec 25, 2024
d09986f
maybe working can utility for speedometer
Luca-Timo Dec 29, 2024
d594bda
demo mode
Luca-Timo May 9, 2025
f24b5f1
add fusion file and current step
Luca-Timo May 10, 2025
c00b5f6
we got speeddo
Obili69 May 12, 2025
fc88bc3
worki maybe¨
Obili69 Jun 21, 2025
5d5916d
Changed folder structure for RevA / RevB
Luca-Timo Aug 9, 2025
a6c6758
Changed handeling
Obili69 Sep 14, 2025
10cf53a
Merge branch 'Lada-Speedometer' of https://github.com/milutintech/LAD…
Obili69 Sep 14, 2025
62fa1f7
updated troq display with new neopixel
Luca-Timo Sep 21, 2025
caf5b32
current version of lada speedometer in kicad
Luca-Timo Nov 11, 2025
76bb370
Speedometer DRC mostly passed
Luca-Timo Dec 3, 2025
543f017
maybe done?
Luca-Timo Dec 4, 2025
55726d6
pcb should be done now
Luca-Timo Dec 5, 2025
e67cbb7
Final Version, has been ordered
Luca-Timo Dec 7, 2025
93d74f1
16.05.2026
Luca-Timo May 16, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified .DS_Store
Binary file not shown.
Binary file removed BSC Com/.DS_Store
Binary file not shown.
Binary file removed DMC Com/.DS_Store
Binary file not shown.
168 changes: 168 additions & 0 deletions Infotainment/LADAsys.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
# --- Sources ---
# https://streamlit-emoji-shortcodes-streamlit-app-gwckff.streamlit.app/

# --- Setup ---
# pip install Streamlit
# pip install streamlit-option-menu

# --- Libs ---
import streamlit as st
from streamlit_option_menu import option_menu
import base64
import time
#from Packages.LADA_Infotainment_CAN.LADA_Infotainment_CAN import CANCommunication as can
#from Packages.LADA_Infotainment_CARD.LADA_Infotainment_CARD import CarControlRFID as rfid

# --- Colors ---
Grey100 = "#F5F5F5"
Grey200 = "#EEEEEE"
Grey300 = "#E0E0E0"
Grey400 = "#BDBDBD"
Grey500 = "#9E9E9E"
Grey600 = "#757575"
Grey700 = "#616161"
Grey800 = "#424242"
Grey900 = "#212121"

MGrey = "#373b3e"
MAnthrazit = "#46525a"
MBlue = "#005ca8"

# --- Constants ---

st.set_page_config(page_title="LADAsys", page_icon=":blue_car:", layout="wide")

# --- Variables ---

if 'BatSoc' not in st.session_state:
st.session_state.BatSoc = 69

if 'BatU' not in st.session_state:
st.session_state.BatU = 0

if 'BatI' not in st.session_state:
st.session_state.BatI = 0

if 'BatTemp' not in st.session_state: # currently missing in CAN message
st.session_state.BatTemp = 0

if 'DriveState' not in st.session_state:
st.session_state.DriveState = 0

if 'DmcTrqMax' not in st.session_state:
st.session_state.DmcTrqMax = 0

if 'NlgAcCurrMax' not in st.session_state:
st.session_state.NlgAcCurrMax = 0

if 'NlgSocMax' not in st.session_state:
st.session_state.NlgSocMax = 0



# --- Functions --$
def get_base64(bin_file):
with open(bin_file, 'rb') as f:
data = f.read()
return base64.b64encode(data).decode()


def set_background(png_file):
bin_str = get_base64(png_file)
page_bg_img = '''
<style>
.stApp {
background-image: url("data:image/png;base64,%s");
background-size: cover;
}
</style>
''' % bin_str
st.markdown(page_bg_img, unsafe_allow_html=True)

set_background('Images/Background.png')

# --- Custom CSS ---
# Custom CSS to center content vertically in Streamlit
vertical_center_css = """
<style>
div.stButton > button:first-child {
display: block;
margin: 0 auto;
width: 200px;
}
.flex-container {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
height: 15vh;
}
</style>
"""

st.markdown(
"""
<style>
button {
height: auto;
padding-top: 200px !important;
padding-bottom: 200px !important;
padding-left: 50px !important;
padding-right: 50px !important;
}
.reportview-container {
margin-top: -2em;
}
#MainMenu {visibility: hidden;}
.stDeployButton {display:none;}
footer {visibility: hidden;}
#stDecoration {display:none;}
</style>
""",
unsafe_allow_html=True,
)


st.markdown(vertical_center_css, unsafe_allow_html=True)

# --- Main ---



# --- Title ---
st.title("HOME")


# Use a column layout with a flex container to center content vertically
col0, col1, col2, col3, col4, col5 = st.columns([1, 2,2, 2,2, 1])

with col1:
st.markdown('<div class="flex-container">', unsafe_allow_html=True)
# Place your content here; for demonstration, a button is used
if st.button("CAR"):
st.switch_page("pages/CAR.py")
st.markdown('</div>', unsafe_allow_html=True)

with col2:
st.markdown('<div class="flex-container">', unsafe_allow_html=True)
# Place your content here; for demonstration, a button is used
if st.button("Charging"):
st.switch_page("pages/Charging.py")
st.markdown('</div>', unsafe_allow_html=True)

with col3:
st.markdown('<div class="flex-container">', unsafe_allow_html=True)
# Place your content here; for demonstration, a button is used
if st.button("Debug"):
st.switch_page("pages/Debug.py")
st.markdown('</div>', unsafe_allow_html=True)

with col4:
st.markdown('<div class="flex-container">', unsafe_allow_html=True)
# Place your content here; for demonstration, a button is used
if st.button("Valet Mode"):
st.switch_page("pages/Valet.py")
st.markdown('</div>', unsafe_allow_html=True)

#time.sleep(1)
#st.rerun()
157 changes: 157 additions & 0 deletions Infotainment/pages/Charging.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
# --- Sources ---
# https://streamlit-emoji-shortcodes-streamlit-app-gwckff.streamlit.app/

# --- Setup ---
# pip install Streamlit
# pip install streamlit-option-menu

# --- Libs ---
import streamlit as st
from streamlit_option_menu import option_menu
import base64

# --- Colors ---
Grey100 = "#F5F5F5"
Grey200 = "#EEEEEE"
Grey300 = "#E0E0E0"
Grey400 = "#BDBDBD"
Grey500 = "#9E9E9E"
Grey600 = "#757575"
Grey700 = "#616161"
Grey800 = "#424242"
Grey900 = "#212121"

MGrey = "#373b3e"
MAnthrazit = "#46525a"
MBlue = "#005ca8"

# --- Constants ---


st.set_page_config(page_title="LADAsys", page_icon=":blue_car:", layout="wide")

# --- Variables ---


# --- Functions ---
def get_base64(bin_file):
with open(bin_file, 'rb') as f:
data = f.read()
return base64.b64encode(data).decode()


def set_background(png_file):
bin_str = get_base64(png_file)
page_bg_img = '''
<style>
.stApp {
background-image: url("data:image/png;base64,%s");
background-size: cover;
}
</style>
''' % bin_str
st.markdown(page_bg_img, unsafe_allow_html=True)

set_background('Images/Background.png')

# --- Custom CSS ---
# Custom CSS to center content vertically in Streamlit
vertical_center_css = """
<style>
div.stButton > button:first-child {
display: block;
margin: 0 auto;
width: 200px;
}
.flex-container {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
height: 15vh;
}
</style>
"""

st.markdown(
"""
<style>
button {
height: auto;
padding-top: 200px !important;
padding-bottom: 200px !important;
padding-left: 50px !important;
padding-right: 50px !important;
}
.reportview-container {
margin-top: -2em;
}
#MainMenu {visibility: hidden;}
.stDeployButton {display:none;}
footer {visibility: hidden;}
#stDecoration {display:none;}
</style>
""",
unsafe_allow_html=True,
)

st.markdown(vertical_center_css, unsafe_allow_html=True)

st.markdown(
"""
<style>
.stProgress > div > div > div > div {
background-color: green;
}
</style>""",
unsafe_allow_html=True,
)




# --- Main ---



# --- Title ---
st.title("Charging")


# Use a column layout with a flex container to center content vertically
col0, col1, col2, col3, col4 = st.columns([1, 1,1,3.5, 1])

with col1:
st.markdown('<div class="flex-container">', unsafe_allow_html=True)
# Place your content here; for demonstration, a button is used
if st.button("Home"):
st.switch_page('LADAsys.py')
st.markdown('</div>', unsafe_allow_html=True)

with col3:
st.markdown('<div class="flex-container">', unsafe_allow_html=True)
BatNow = 42
StromNow = 20
TempNow = 60
VoltNow = 400

latest_iteration = st.empty()
latest_iteration.text(f'Ladezustand: {BatNow}%')
st.progress(BatNow)

st.text(f"Akteuller Ladestrom: {StromNow}A")
st.text(f"Akteulle Temperatur: {TempNow}°C")
st.text(f"Aktuelle Spannung: {VoltNow}V")

st.session_state.NlgSocMax = st.slider(
"Maximaler Ladezustand: [%]",
50.0, 100.0, (st.session_state.NlgSocMax))
#st.write("Values:", BatMax)

SromMax = st.slider(
"Maximaler Ladestrom: [A]",
0.0, 32.0, (20.0))
#st.write("Values:", SromMax)

st.markdown('</div>', unsafe_allow_html=True)

Binary file removed NLG Com/.DS_Store
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file removed Speedometer/Hardware/Schematics/Overview.SchDoc
Binary file not shown.
14 changes: 0 additions & 14 deletions Speedometer/Hardware/Schematics/__Previews/Overview.SchDocPreview

This file was deleted.

1 change: 0 additions & 1 deletion Speedometer/Hardware/Speedometer.PrjPcbStructure

This file was deleted.

Loading