Custom Power Bank
This is a power bank I built around three 18650 cells. I designed the battery-management PCB and the 3D-printed case, wrote the firmware for the controller, and made an iOS app for monitoring it over Bluetooth.
I started this project when I was 17 and worked on it alongside school. It was my first larger electronics project and the first time I had designed a custom PCB. At the beginning, I knew very little about circuit design, PCB layout, battery management or choosing components. I had to learn these things while building it and went through several different circuit designs before reaching this version. It turned into a much bigger undertaking than I had expected.
Electronics
- Three Panasonic NCR18650B cells in a 3S configuration
- BQ76920 battery monitor for the individual cell voltages, pack voltage and temperature
- 8 mΩ shunt resistor for measuring charge and discharge current
- Power MOSFETs for switching the charge and discharge paths
- Protection against under-voltage, over-voltage, over-current and short circuits
- Passive balancing for the three cells
- Arduino Nano 33 BLE as the controller
- Separate modules for the USB power conversion
Firmware
The firmware runs on the Arduino and communicates with the BQ76920 over I²C. It is responsible for:
- Reading the cell voltages, pack voltage, current and temperature
- Controlling the charge and discharge MOSFETs
- Balancing the cells
- Estimating the remaining charge with coulomb counting
- Recording battery data and reporting protection faults
- Turning the output off after it has been idle
- Sending data and receiving commands over Bluetooth Low Energy
iOS app
The iOS app is written in SwiftUI and connects directly to the power bank over Bluetooth:
Enclosure
The case and the internal holders are modeled in Fusion360 and 3D printed out of PETG for some extra heat resistance.






