~/projects/bms

SJ41-BMS

Een eigen batterijmanagementsysteem voor 10S-e-bike-accu's (36 V nominaal, 42 V vol), om ze te kunnen reviseren, met een TI BQ76942 als frontend en een nRF54L15 voor BLE. Work in progress: gerouteerd en gevalideerd in KiCad, nog niet gefabriceerd. A custom battery management system for 10S e-bike batteries (36 V nominal, 42 V charged), built to refurbish them, with a TI BQ76942 front end and an nRF54L15 for BLE. Work in progress: routed and validated in KiCad, not yet fabricated.

KiCad-render van de bovenkant van de SJ41-BMS: BQ76942, nRF54L15 met PCB-antenne, MOSFETs en shunt
rev A12, KiCad-renderrev A12, KiCad render

Wat het doet

Samen met het nagebouwde balancing-board is dit de basis om e-bike-accu's te reviseren. De BMS bewaakt elke cel afzonderlijk via een balanceerconnector (B0 tot en met B10), meet de stroom over een 2 mΩ-shunt en de temperatuur bij de cellen en de MOSFETs. Laden en ontladen gaan via één gemeenschappelijke poort: de BMS schakelt aan de minkant, tussen B− en PACK−.

What it does

Together with the rebuilt balancing board, this is the basis for refurbishing e-bike batteries. The BMS monitors every cell individually through a balance connector (B0 to B10), measures current across a 2 mΩ shunt, and temperature at the cells and the MOSFETs. Charging and discharging share one common port: the BMS switches on the low side, between B− and PACK−.

Hardware

Een vierlaags print van 83 × 45 mm met 117 footprints. De belangrijkste onderdelen:

refchipfunctie
U1BQ76942Accu-frontend: celspanningen, stroom en temperatuur (I²C met CRC)
U2nRF54L15Controller en BLE, met PCB-antenne
Q2–Q5CSD19532Q5B100V-MOSFETs voor laden en ontladen
U4UCC27524Gate-driver voor de MOSFETs
U3TPS7A4001Hoogspannings-LDO vanaf het pack
U5TPS3823Supervisor en watchdog
RSH12 mΩStroomshunt met Kelvin-aansluiting
TH110k NTCTemperatuur bij de MOSFETs

De antenne is een PCB-antenne in de koperlaag zelf, met een vrije zone eromheen.

Hardware

A four-layer 83 × 45 mm board with 117 footprints. The key parts:

refchipfunction
U1BQ76942Battery front end: cell voltages, current and temperature (I²C with CRC)
U2nRF54L15Controller and BLE, with PCB antenna
Q2–Q5CSD19532Q5B100 V MOSFETs for charge and discharge
U4UCC27524Gate driver for the MOSFETs
U3TPS7A4001High-voltage LDO from the pack
U5TPS3823Supervisor and watchdog
RSH12 mΩCurrent shunt with Kelvin sense
TH110k NTCTemperature at the MOSFETs

The antenna is a PCB antenna etched into the copper, with a keep-out zone around it.

Debuggen zonder header

Aan de onderkant zit een Tag-Connect TC2050-footprint: geen header, alleen contactvlakjes en gaten voor de klemmetjes. De pinout volgt die van de EdgeFlasher-dock, zodat ik hem daarmee kan flashen. Daarnaast is er een 3,3 V-UART voor een geïsoleerde USB-adapter. De volledige connector-pinout staat in de silkscreen aan de onderkant.

Debugging without a header

The bottom has a Tag-Connect TC2050 footprint: no header, just contact pads and holes for the latching clips. The pinout follows the EdgeFlasher dock, so I can flash it with that. There's also a 3.3 V UART for an isolated USB adapter. The full connector pinout is printed in the silkscreen on the bottom.

KiCad-render van de onderkant met de connector-pinout in silkscreen en de Tag-Connect-footprint
onderkant: pinout in silkscreen en Tag-Connectbottom: pinout in silkscreen and Tag-Connect

Software vóór de hardware

Terwijl de print nog niet bestaat, draait de BMS-firmware (nu v0.4.0) al als emulator op een nRF54L15-DK, met gesimuleerde accuwaarden. Zo kan de firmware al verder voordat het eerste board binnen is.

Daarbij hoort Cell Keeper, een eigen native app voor iOS en macOS die via BLE verbindt:

  • spanning per cel, packspanning, stroom en laadtoestand
  • temperatuur van de cellen en de MOSFETs
  • automatisch balanceren, of handmatig laden, ontladen en cellen bleeden
  • een laadgrens om de cellen te sparen (bijvoorbeeld 20–80%)
  • historie, een tijdlijn per cel en export naar CSV

Software before hardware

While the board doesn't exist yet, the BMS firmware (now v0.4.0) already runs as an emulator on an nRF54L15-DK, with simulated battery values. That way the firmware can move ahead before the first board arrives.

It comes with Cell Keeper, a native iOS and macOS app of my own that connects over BLE:

  • per-cell voltage, pack voltage, current and state of charge
  • cell and MOSFET temperatures
  • automatic balancing, or manual control of charge, discharge and cell bleeding
  • a charge limit to go easy on the cells (for example 20–80%)
  • history, a per-cell timeline and CSV export

Status

Rev A12 is gerouteerd, met DRC, ERC en netlist-controle op nul. Nog open: firmware, kalibratie van de thermistor en de fysieke en thermische tests. Tot dan is dit een ontwikkelprototype, en nog geen vrijgegeven ontwerp.

Status

Rev A12 is routed, with DRC, ERC and netlist checks at zero. Still open: firmware, thermistor calibration and physical and thermal testing. Until then this is a development prototype, not a released design.