Add a Kconfig voltage-class choice (BMU_PACK_CLASS: 24V default / 48V) plus an sdkconfig.defaults.48v overlay, implementing lot 4 of the 48V design note. 48V class defaults: min 44600 mV (3.43 V/cell, same fleet policy as 24V), max 55200 mV (charger CV 54.6 V + 600 mV margin), imbalance 2000 mV (x13/7), VRM SOC window 44600-53500 mV. Blocking fixes found while implementing: - bmu_protection: plausibility guard rejected any reading above 35 V as an I2C glitch -> class macro BMU_V_PLAUSIBLE_MAX_MV. - bmu_ina237: BOVL/BUVL hardwired 30000/24000 -> programmed from runtime thresholds (NVS/Kconfig) at init; log real values. - bmu_ble control + display steppers: hardcoded 20-30/25-35 V setting bounds rejected any 48V config -> class-derived macros BMU_VMIN/VMAX_SET_FLOOR/CEIL_MV in bmu_config.h. - bmu_ui_detail: chart autoscale seeds 35000/15000 broke above 35 V -> neutral 65535/0. - bmu_ble_victron: SOC window hardcoded 24.0/28.8 -> reads the VRM Kconfig (class fallback when VRM disabled). - legacy firmware/src/config.h: BATTERY_PACK_CLASS_48V ifdef. Validated: idf.py build green for both classes (esp32s3, isolated sdkconfig; 48V generates 44600/55200/2000), no new warnings in touched files, legacy sim-host tests 13/13 pass. NVS erase needed when reflashing a board that has 24V thresholds persisted.
138 lines
2.1 KiB
Plaintext
138 lines
2.1 KiB
Plaintext
.vscode/
|
|
|
|
# Prerequisites
|
|
*.d
|
|
|
|
# Compiled Object files
|
|
*.slo
|
|
*.lo
|
|
*.o
|
|
*.obj
|
|
|
|
# Precompiled Headers
|
|
*.gch
|
|
*.pch
|
|
|
|
# Compiled Dynamic libraries
|
|
*.so
|
|
*.dylib
|
|
*.dll
|
|
|
|
# Fortran module files
|
|
*.mod
|
|
*.smod
|
|
|
|
# Compiled Static libraries
|
|
*.lai
|
|
*.la
|
|
*.a
|
|
*.lib
|
|
|
|
# Executables
|
|
*.exe
|
|
*.out
|
|
*.app
|
|
.DS_Store
|
|
|
|
### KiCad ###
|
|
# For PCBs designed using KiCad: http://www.kicad-pcb.org/
|
|
# Format documentation: http://kicad-pcb.org/help/file-formats/
|
|
|
|
# Temporary files
|
|
*.000
|
|
*.bak
|
|
*.bck
|
|
*.kicad_pcb-bak
|
|
*~
|
|
_autosave-*
|
|
*.tmp
|
|
*-rescue.lib
|
|
*-save.pro
|
|
*-save.kicad_pcb
|
|
|
|
# Netlist files (exported from Eeschema)
|
|
*.net
|
|
|
|
# Autorouter files (exported from Pcbnew)
|
|
*.dsn
|
|
*.ses
|
|
|
|
# Exported BOM files
|
|
*.xml
|
|
*.csv
|
|
# Exception: PlatformIO partition tables
|
|
!partitions*.csv
|
|
# Exception: fichiers d'assemblage JLCPCB versionnés
|
|
!**/jlcpcb/assembly/*.csv
|
|
|
|
### KiCad Patch ###
|
|
rescue-backup/
|
|
|
|
*.tsv
|
|
bom/
|
|
|
|
# Gerber export output
|
|
out/
|
|
|
|
### Linux ###
|
|
|
|
# temporary files which can be created if a process still has a handle open of a deleted file
|
|
.fuse_hidden*
|
|
|
|
# KDE directory preferences
|
|
.directory
|
|
|
|
# Linux trash folder which might appear on any partition or disk
|
|
.Trash-*
|
|
|
|
# .nfs files are created when an open file is removed but is still being accessed
|
|
.nfs*
|
|
|
|
# End of https://www.gitignore.io/api/kicad,linux
|
|
|
|
.pio/
|
|
|
|
# KiCad backups et fichiers de production (non versionnés)
|
|
**/*-backups/
|
|
**/jlcpcb/production_files/
|
|
|
|
# Credentials locaux
|
|
src/credentials.h
|
|
|
|
# Données terrain et modèles ML (binaires lourds)
|
|
data/
|
|
!firmware-idf/data/
|
|
models/*.pt
|
|
models/*.onnx
|
|
.failsafe/
|
|
|
|
firmware-idf/managed_components/
|
|
firmware-idf/build*/
|
|
firmware-idf/sdkconfig
|
|
firmware-idf/sdkconfig.old
|
|
firmware-idf/.cache/
|
|
external/
|
|
models/consolidated.parquet
|
|
models/features_adapted_v2.parquet
|
|
models/features_v2.parquet
|
|
kxkm-bmu-app/.gradle/
|
|
kxkm-bmu-app/build/
|
|
.venv-ml/
|
|
|
|
# Xcode local user state
|
|
**/xcuserdata/
|
|
**/*.xcuserstate
|
|
|
|
# Local accidental duplicates seen in this workspace
|
|
firmware/test/test_tca_ina 2/
|
|
iosApp/KXKMBmu 2.xcodeproj/
|
|
**/* [0-9]
|
|
**/* [0-9].*
|
|
**/~*.lck
|
|
scripts/llm/__pycache__/
|
|
services/soh-llm/__pycache__/
|
|
tests/llm/__pycache__/
|
|
firmware/src/credentials.h
|
|
kxkm-bmu-app/**/build/
|
|
.remember/
|
|
.* |