When
2026–
Category
Technical
Type
Hardware
With
Marinor, NTNU
Tools
KiCad, TI BQ76972, ESP32-C3, CAN bus, I2C
The BMS circuit board layout in KiCad: two rows of power MOSFETs down the middle, test points, connectors along the bottom and the Marinor NTNU logo in the corner.
The board layout in KiCad. The two rows of MOSFETs in the middle switch the current from the pack.

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, twelve cells in series at roughly 50 V. Steady-state current is around 150 A, and a mission at sea 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.