Marinor is a student organisation at NTNU that builds autonomous surface vessels. I’m on the hardware team, and my job is the battery management system: the board that keeps an eye on every cell in the pack and cuts the power before something goes wrong.
The pack
The boat runs on a removable 12S lithium-ion pack made from two 6S modules, at roughly 50 V. Steady-state current is around 150 A, and a mission on a freshwater lake lasts two to eight hours.
How the board works
- A TI BQ76972 handles cell voltages, temperatures, passive balancing and protection (over- and undervoltage, overcurrent, short circuit), and drives the high-side FETs.
- An ESP32-C3 reads it over I2C and passes everything on to the boat’s CAN bus at 500 kbit/s through a TCAN3414 transceiver. Wi-Fi and Bluetooth stay off.
- Pack current is measured across a 100 µΩ Isabellenhütte shunt, which the BQ76972 reads directly for its coulomb counter.
- The board powers itself from the pack. A Würth MagI3C module takes the 50 V down to 5 V, and an AMS1117 makes 3.3 V from that.
- Analog and digital ground are separate planes that meet at one point, the bottom of the cell stack.
The first plan was an LTC6811 over SPI with discrete balancing resistors. I switched to the BQ76972 because one chip covers measurement, balancing, protection and FET drive, which leaves fewer parts to get wrong.