Files
L'électron rare 80cfa134a6 feat(firmware): 48V pack class for 13s packs
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.
2026-07-07 16:05:43 +02:00

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/
.*