Close
0%
0%

KXKM Batterie Parallelator — open BMU for 32 parallel battery packs

ESP32-S3 battery management unit that safely parallels up to 32 × 24-30 V packs for off-grid stage shows. INA237 + MOSFET per pack, BLE + MQTT. GPL-3.

Similar projects worth following
0 followers
Built for KompleX KapharnaüM, a live-arts company running digital scenography in public space with no grid power. The BMU parallels up to 32 packs (24-30 V): each pack has its own INA237 (2 mΩ shunt) and MOSFET switch, so it is monitored individually and can be isolated in microseconds. Per-pack protection (UV/OV/OC, imbalance), auto-reconnection with backoff and lock after 5 faults, duty-cycled soft-balancing. Telemetry over BLE (iOS app, Victron emulation) and MQTT to InfluxDB/Grafana. ESP-IDF 5.4 on ESP32-S3, 26 host tests in CI, OTA with rollback.

GPL-3 repo with firmware + KiCad hardware (BMU v1 manufactured, v2 production-ready). A 48 V variant for 13s Li-ion packs (BMU-v2-48v + 8× IRF5210 switch sub-board) is designed, fabrication files ready, bench validation pending. Links below.

License: GPL-3.0 for both firmware and hardware (KiCad sources and Gerbers are in the same repository).

Why this exists

KompleX KapharnaüM runs digital scenography in public space with no mains power. Shows draw from a bank of 24-30 V packs that must be paralleled safely, monitored individually, and swapped during a tour without taking the installation down.

What the BMU does

- One channel per pack, up to 32 packs: voltage and current via an INA237 on a 2 mOhm shunt, plus temperature, on each channel.

- Each channel has its own MOSFET switch: a pack can be isolated from the bus in microseconds.

- Per-pack protection: under/over-voltage, over-current, imbalance detection. Auto-reconnection with exponential backoff, permanent lock (blinking red LED) after 5 faults until reboot.

- Soft-balancing by duty-cycling the switches, with opportunistic internal-resistance measurement.

- Telemetry over BLE to an iOS companion app (Victron Instant Readout and SmartShunt emulation) and over MQTT to InfluxDB/Grafana, with offline persistence and replay.

- 320x240 LVGL touchscreen with battery grid, SOH and charts. OTA updates on dual partitions with automatic rollback.

- ESP-IDF 5.4 on ESP32-S3, 26 host-side simulation tests in CI (PlatformIO sim-host + ESP-IDF host tests), no hardware required.

Hardware revisions

- BMU v1: manufactured, on the test bench (main photo).

- BMU v2: production-ready, ERC clean, 107-line BOM, JLCPCB Gerbers and assembly files in hardware/.

- 48 V variant (2026): motherboard BMU-v2-48v (INA237 at 85 V common mode, 2 mOhm shunts, LM5164 100 V buck) plus a plug-in MOSFET switch sub-board with 8x IRF5210 back-to-back per channel, for 13s Li-ion packs and 4-15 kWh banks feeding a 230 V inverter. Fabrication files ready, bench validation pending.

Source

- Firmware + hardware: https://github.com/KomplexKapharnaum/KXKM_Batterie_Parallelator

- 48 V companion design: https://git.saillant.cc/electron/Batterie_parallelator-power6tm

  • Bench test: six packs on BMU v1, per-pack monitoring and MOSFET isolation

    Clément SAILLANT • 3 hours ago • 0 comments

    First public log, mostly to show the board in its real setting rather than the 3D render.

    The main photo of this project is the v1 motherboard on the workshop bench: six numbered packs plugged on Anderson-style connectors, a bench PSU, the BMU on its aluminium plate next to the emergency cut-off switch, and a laptop on the serial console.

    What the firmware does on that bench

    - Each pack has its own INA237 on a 2 mOhm shunt (voltage and current) plus a temperature reading, and its own MOSFET switch, so a pack can be isolated from the bus in microseconds.

    - Per-pack protection: under/over-voltage, over-current, imbalance detection.

    - Auto-reconnection with exponential backoff, and a permanent lock (blinking red LED) after 5 faults until reboot.

    - Soft-balancing by duty-cycling the switches, with opportunistic internal-resistance measurement.

    - 26 host-side simulation tests run in CI without hardware (PlatformIO sim-host + ESP-IDF host tests), so changes to the switching logic are checked before anything is flashed.

    Next

    - Bring BMU v2 (production-ready, ERC clean) onto the same bench.

    - Bench-validate the 48 V variant (BMU-v2-48v + MOSFET switch sub-board) with 13s Li-ion packs: parallel charging back-feed through pack BMS, MPPT profile at 54.6 V, inverter inrush.

    Source and hardware files: https://github.com/KomplexKapharnaum/KXKM_Batterie_Parallelator

View project log

Enjoy this project?

Share

Discussions

Does this project spark your interest?

Become a member to follow this project and never miss any updates