Introduction
Hi everyone! I’m a Master’s student in Systems Engineering (Mechatronics specialization). I enjoy hands-on electronics and embedded systems, so I picked a Battery Management System for my semester project.
The goal was to build a working BMS for a 4S2P pack of Samsung 18650 cells (14.8–16.8 V, 5000 mAh) and test its functionality end to end. The point was to understand how cell monitoring, isolated communication and the firmware fit together on real hardware.
The design is based on Stuart Pittaway’s open-source diyBMS project. I redesigned the PCBs in KiCad and had them assembled by AISLER at the student price. That kept the project affordable and gave me clean, reliable boards to work from.
Electronics and design
Cell modules: Each module has an ATtiny85 running the diyBMS firmware to measure its cell voltages.
Power: A REG710NA provides a stable 3.3 V rail to both the ATtiny85 and the ADuM1250. I checked this rail with a multimeter, and it was a handy first test for any misbehaving module.
Isolated communication: Modules talk over isolated I²C using the ADuM1250, so the cell side and the controller side don’t share a ground.
Controller: An ESP8266 on a NodeMCU board collects the module data and displays it.
Design and assembly: KiCad for schematic and layout, with SMD assembly by AISLER.
Results
The system worked: the modules powered up, communicated over the isolated I²C link, and provisioned. The one thing I didn’t get to was cell balancing. Only one cell’s information showed on the screen, no matter which cell or which PCB I used. Since the same behavior appeared with different boards, it points to something in the shared parts of the setup (firmware configuration, wiring or the display path) rather than a single bad board. I ran out of time in the semester before I could track it down, so balancing remains untested.
Tips, tricks & offers
Check the baud rate first. Garbled ESP8266 serial output was just a baud rate mismatch. Setting the serial monitor to 19200 fixed it.
Test your cables before powering up. I found SCL/SDA swapped and the polarity reversed between two modules. That was the likely cause of an earlier ESP8266 board failure. A full continuity test of every cable takes minutes and saves boards.
Measure the rails before blaming firmware. Checking the REG710NA output and the ATtiny85 VCC ruled out hardware faults quickly.
Try a reset before assuming a dead module. Module 1 provisioned fine after a reset press.
CTA
Has anyone run a diyBMS-style chain and seen only one cell reporting on the display, regardless of which module or cell is connected? If you know where to look first (module addressing, firmware config or the data path to the display), I’d love to hear it.
Thanks to the AISLER team for the student price and the assembly.
Credits
This project builds on Stuart Pittaway’s open-source diyBMS. Check out his original work here: GitHub - stuartpittaway/diyBMS: Do it yourself battery management system for Lithium ion battery packs/cells · GitHub

