A project log for Green BMS

Open source Bluetooth Smart Battery Management System

sergio-ghirardelliSergio Ghirardelli 09/30/2021 at 17:110 Comments


Cell module is connected directly to the cell, from which it takes own power supply.

Cell module Microcontroller (Attiny84) receives the cell voltage, cell pole temperature, balancing resistance temperature signals and, using the logics contained in its software, performs the following functions :

- It communicates by I2C serial protocol with the Master Unit called "Control Unit"

- It sends to Control Unit the values of: cell voltage, cell pole temperature, balancing resistor temperature for battery pack management system

- It executes the cell balancing (by a mosfet) according to Control Unit command.

The cell modules all communicate in parallel with the control unit via an isolated 4-wires I2c bus.

Each cell module I2C address can be programmed by the user, by push buttons, checking tens and units values by the blinking of two leds (see Tutorial: "Cell Module address setting"). It is possible to set address from 1 to 99 (*).

The address of the modules is independent of their connection along the I2c bus

Address is stored on Attiny EEPROM.

Another important function allowed by the cell module is the voltage compensation calibration using the buttons on the board. The procedure is described in the Tutorial: "Cell voltage calibration"

The cell module has an average consumption of 15 mA.

(*) Important: this may not be the maximum number of cells that can be managed by the BMS, which depends on the Control Unit limitations and the experimental tests carried out


The picture above shows the main components of the cell module. When the 7-pole programming connectors are connected, the microcontroller takes power from the cell, when the connectors are absent, the microcontroller is separated from the cell: in this situation it is possible to load the software by connecting the "Arduino as isp" cable.

Cell module PCB was designed with Kicad Opensource application.

All project files are available in the Github repository


The software present in the Attiny84 microcontroller was developed using the Opensource Arduino IDE application.

The software is loaded using the "Arduino as isp" tool, a special configuration that uses an Arduino Uno controller as a programmer for the Attiny microcontrollers.

The software is available in the Github repository