A project log for Green BMS

Open source Bluetooth Smart Battery Management System

sergio-ghirardelliSergio Ghirardelli 10/01/2021 at 17:010 Comments


Control Unit is the BMS main unit, it is based on Opensource Microcontroller Arduino Mega. Control Unit functions are:

Through the android application it is possible to perform the BMS calibrations: System stores all the parameters in the Eeprom memory of the Arduino Mega Microcontroller inside Control Unit.


The picture above shows the main components of the Control Unit. Arduino Mega is the backplane of Control Unit, it must supplied at 12vdc by the relevant connector.

To supply Arduino Mega and all the Control Unit functions, You must use a DC-DC converter to convert the total battery pack to 12vdc.

Arduino Mega is a commercially available Opensource card.

The Interface board is inserted above the Arduino Mega.

The interface board includes the control unit input / output connectors. The interface board includes a watchdog circuit that de-energizes the relays in the event of a software crash. The mini output relays (12vdc coil) are driven by a driver IC.

IMPORTANT: the maximum current supported by the relay contacts is 1A, do not use these contacts directly in the battery charge-discharge circuits, but use them to drive power relays!

The control unit has an average consumption of 5.5 watts. If you always leave it powered, even when it is not needed, it can discharge the battery pack in a few days! For this reason it is absolutely necessary that the 12v power supply circuit be designed so as to switch off the Control Unit when the discharge or charge operations are not active. In any case, it is advisable to keep the battery pack charged after each discharge and in case of prolonged periods of inactivity of the battery, provide for a weekly charge.

Interface Board PCB was designed with Kicad Opensource application.

Control Unit transparent plexiglass Case cut-out drawing, was designed with Opensource 2D cad Librecad.

All project files are available in the Github repository


The software present in the Arduino Mega was developed using the Opensource Arduino IDE application

The software is loaded using a standard USB cable (generally provided with Arduino Mega), connected on the relevant port.

You can download it in the Github repository.