Loading 3D model… large boards can take a moment.
OpenBMS is an open-source battery management system for 2 to 7-cell Li-Ion and Li-Po battery packs. A fully integrated hardware and firmware solution for battery management and protection, providing:
Schematic and layout updated, fixes applied
OpenBMS-firmware
OpenBMS-test-bench
OpenBMS-studio
Battery system consists of:
This project is funded through NGI0 Commons Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet program.
We are very grateful to the NLnet team for helping us on our path, and we encourage you too to apply and get funds to build your project! 🚀 Learn more at the NLnet project page.
| Module | Status |
|---|---|
| OpenBMS Schematics & PCB Layout Rev A | ✅ Done |
| OpenBMS Test Bench Schematic & PCB Layout | ✅ Done |
| Revision B (Hardware improvements) | ✅ Done |
| BMS, Test Bench & Battery Tests | 🚧 In progress |
| Documentation & Final Release | 🚧 In progress |
First, a small introduction to the project structure:
+-------------+ +---------------------------+ +----------------+
| | | OpenBMS | | |
| Battery | | - - - - - - - - - - - - - | | System |
| 2-7S Li-Ion | cells | +-------+ +-------+ | | |
| 2-7S Li-Po |- - - >| | ADC | | MCU | |<----->| host/load |
| | | +-------+ +-------+ | comms | |
| |<=====>| +-------+ +-------+ |<=====>| Charger |
| | pwr | | Power | | FETs | | pwr | |
+-------------+ | +-------+ +-------+ | +----------------+
+-----------+--------------+
OpenBMS and the battery are designed to be a single, inseparable unit. Ideally, it is connected on the first day of the battery's life and stays throughout its entire lifetime. This way, OpenBMS learns the battery's characteristics over time and continuously tracks its state of health and other parameters.
It protects the battery from overcurrent, overvoltage, and undervoltage conditions, and balances cells to maximize pack lifetime. State of charge estimation tells you exactly how much energy you have left, while long-term health monitoring tells you when it's time to replace the battery.
The battery communicates with the host system via CAN bus or I2C. Through OpenBMS, the battery can:
OpenBMS can be easily described with the following block diagram:
+---------------------------------------------------------------------------------------------------------------+
| OpenBMS |
| |
| +-----------------------+ power +-------------------+ power +-------------------------+ |
| | Battery Input |<=============>| Switch Circuit |<=============>| Output | |
| | - - - - - - - - - - - | | - - - - - - - - - | | - - - - - - - - - - - - | |
| | + XT60 pwr connector | | + Main NFETs | | + XT60 pwr connector | |
| | + 8-pin JST (balancer)| | + Precharge FETs | | + JST (I2C,CAN,WAKE_UP) | |
| | + 2-pin JST (NTC) | +--------+----------+ +-------------------------+ |
| +-----------------------+ | ^ |
| | | ctr signals | can, i2c, wake_up |
| | cells v | |
| +---------------------+ SPI +-------------------------+ | |
| | Analog Block |<==============>| Digital Block |=======================+ |
| | (ADS131M08) | | - - - - - - - - - - - - | |
| | - - - - - - - - - - | | + STM32L431 (Cortex-M4) | |
| | + Cell voltage x7 | | + EEPROM | |
| | + Pack voltage | | + LED indicators | |
| | + Current | | + SWD / UART debug | |
| | + PFETs cell switch | | + I2C / CANinterfaces | |
| +---------------------+ +-------------------------+ |
| ^ |
| | 3.3V, wake_up |
| +----------+---------+ |
| | 3.3V Power Supply | |
| | - - - - - - - - - | |
| | + Buck converter | |
| | + Enable latch | |
| +--------------------+ |
| |
+---------------------------------------------------------------------------------------------------------------+
| Parameter | Value |
|---|---|
| Cell count | 2 to 7 cells |
| Supported chemistries | Li-Ion, Li-Po |
| Communication interfaces | CAN bus (up to 1 Mbit/s), I2C (SMBus compatible) |
| Maximum pack voltage | 30.1V (7 cells × 4.3V) |
| Minimum pack voltage | 4V (2 cells × 2V) |
| Maximum continuous current | 16A |
| Maximum peak current | 20A (hardware trip) |
| Current consumption (active, 7-cell, max) | 6mA |
| Current consumption (active, 7-cell, typ) | 4mA |
| Current consumption (active, 2-cell, max) | 19mA |
| Current consumption (active, 2-cell, typ) | 13mA |
| Power-down quiescent current | < 2 µA |
| Operating temperature range | -40°C to 85°C |
OpenBMS is licensed under the MIT license and CERN OHL-S v2.
Check openbatt.dev for more!
No comments yet. Be the first to ask about this board.