Skip to the content
2 layers49 × 49 mmOSBMS Balancer Rev 0.9, the printed circuit board in 3D

OSBMS Balancer Rev 0.9

Teslafly/Dead-OpenBMS-dead248

A scalable, open source battery management system

Size
49 × 49 mm
Copper layers
2
Thickness
1.6 mm
Parts
76
Nets
63
Pads
239
Tracks, vias
758, 158
Pours
15
Routed
Yes
KiCad
KiCad 4
Created
26 Sep 2014
Updated
18 Jan 2023

Overview

OSBMS Balancer Rev 0.9 is an open-source printed circuit board by Teslafly, from the Teslafly/Dead-OpenBMS-dead repository on GitHub. It is a 2-layer board of 49 × 49 mm with 76 parts on 63 nets, routed with 758 tracks and 158 vias.

It is built around the BSS138 and JUMPER3. Its parts include 36 resistors, 10 capacitors, 6 diodes, 6 transistors and 5 connectors.

Main components

2

README

README.md

THIS PROJECT IS DEAD. The avalibility of other projects and low cost off the shelf solutions has imporved significantly to where this project is no londer needed.

A much more mature open source bms that I recommend is https://github.com/EnnoidMe/ENNOID-BMS that has all the features that I had wanted to implement. Off the shelf hardware is available for that too if you don't want to build your own.

Intro

  • This project aims to create an open source, scalable Battery management system for use in just about anything with more than 4 lithium batteries. (and currently up to 96 cells without a second master board)
  • It aims to be as open source as possible so ideally all software should be free and unlimited. All PCB designs are done in KiCad (Using Fairly recent dev builds through Kicad Winbuilder) and all microcontroller programming is done in Arduino.

You can find a discussion thread for this project here on the Endless Sphere fourm: http://endless-sphere.com/forums/viewtopic.php?f=14&t=63863 Goals

  • Open source - It seems that almost all gms systems on the market are closed down these days. we want to be able to add whatever features we please as the EV world gets ever more integrated and complex
  • Low cost - The BMS IC was selected to be as low cost as possible with a daisy chain approach used to further attempt to reduce costs through high manufacturing volume. Goal of $2 per cell can be reached. Master board may bump that up for smaller systems.
  • Reliable - Even though a goal is to keep costs low, reliability should not be unnecessarily decreased for small cost improvements
  • Safe - in going with reliable, I don't want this thing to start any fires or cause any damage. I want it to prevent any possible catastrophes associated with using such a power dense energy source.
  • Easy to use - Board is programmed in the commonly known Arduino, but may use an rtos like chibios to facilitate low power-modes and can/usb tasks. Integration with a larger system could possibly be done with ladder logic programming.
  • Multi chemistry - Can monitor and balance almost anything with "lithium" in the name. (lipo, lifepo4, etc. Possibly even super-capacitor banks)

Boards

There are several boards contained within this project

  • The Master board. it contains the mcu (The same microcontroller used in the teensy 3.1) The CAN transceiver and a couple other odds and ends such as a contactor driver.
  • The MicroMaster board. This one contains an atmega328 with current sensing and little else. This board is meant as a lower cost alternative to the regular master board. It can also be used to control packs >96 cells by connecting it to a master via optoisolators.
  • The daughter cell management board. It contains the voltage measuring ic and balancing resistors.
  • The bus termination board. This one does precious little except ties the datapins of the top slave board together and allow activation of the system with an optoisolator.

Master Features (plannned)

  • Teensy 3.1 microcontroller (MK20DX256VLH7)
  • USB programmable with a possibility of usb otg for android devices / dashboards. (and could charge phones/tablets with switching regulator)
  • CAN transceiver for data connection to other modules.
  • Connectors for an i2c/serial LCD dashboard and all extra pins broken out for auxiliary I/O.
  • Input voltage sensing
  • Switching voltage regulator to bring pack voltage down to 5-12v when system is on for auxiliary functions.
  • 4 mosfet controlled low side outputs. These can be used to control a contactor, precharge circuit relay, fan, etc.
  • 3 dedicated current sensor inputs. one for charging, one for the motor and one on-board for monitoring auxiliary systems.
  • SD card slot for datalogging (and possible configuration via txt file)
  • Analog and pwm throttle input & output. This can map the throttle to different values, change a analogue signal to a pwm one, or/and cut/hold back throttle when the pack is almost empty/dead.
  • Opto isolators for controlling charger or communicating to voltage shifted masters.
  • Buzzer / alarm - If something goes severely wrong, this board will let you know

MicroMaster Features - Implemented

  • Atmega328 main processor @ 3.3v - 8mhz. Programmable through arduino with usb -> serial adapter (Program it just like an Arduino pro mini)
  • Runs completely off power output from slave board/s. This is convenient but allows no SD card or indicator leds as the ATA6870N can only supply 20ma
  • 2 dedicated current sensor inputs. Useful for sensors like the ACS759
  • 2 auxiliary 12-24v 5A NPN mosfets. (current is untested!) The voltage on this auxiliary rail is also monitored via a voltage divider. This is for controlling contactors, fans, etc
  • 1 connector for a precharge circuit. Outputs for 1 small relay and a protected adc input for a controller voltage monitoring circuit.
  • All other I/O pins are brought out to a 10 pin header along with 3.3v and GND.

Slave Board Features (plannned)

  • Measures 4-6 Li-Ion Cells in Series
  • Stackable Architecture Enables >400V Systems (Up to 16 6s modules)). - (Micro)Master modules can be isolated and daisy chained for even higher voltages
  • 0.25% Maximum Total Measurement Error (12 bit adc) - This will be tested in reality once the first boards are constructed.
  • Extremely low power when asleep. (<100ua)
  • Two Thermistor Inputs - One connected to an On-Board Temperature Sensor and the other one brought out to a header.
  • temperature management. software will reduce the duty cycle of the balance resistors if the board gets too hot.

Cell Balancing:

  • Balancing achieved with ~20 ohm resistor banks. This means ~1 watt power of dissipation per cell. Heatsinking is probably needed at this level for full balancing current on all cells.
  • An onboard thermistor will instruct the controller to reduce the duty cycle of the resistors in 25% increments (from 25-100%) to keep the board from overheating / melting.
  • Predictive cell balancing? If a cell always needs a certain amount of energy removed while charging the board will pre-emptively balance the cell. I know of no example of this and will investigate its utility

Software Goals

  • ~Readout of all individual cell voltages and analog inputs ~ DONE! (It could probably be made more efficient though)
  • Manually control system outputs
  • Dataloggging, including current, cell voltages, and recording of total time the balance resistor has been on for each cell. useful for identifying weak/strong cells.
  • Cell resistance estimate - use amperage draw and cell voltages to estimate cell resistances.
  • Coulomb Counting for entire battery pack as well as cumulative coulumbs in/out for battery wear estimation

Photos

board ![schematic] (https://raw.githubusercontent.com/Teslafly/OpenBMS/master/Docs/photos/Open%20source%20BMS.png)

TODO:

  • finish and post the micromaster board -Done!
  • make a separate folder for all the kicad libraries and 3d models used in the project
  • write a blog post on teslafly.wordpress.com detailing this project.
  • make some prototypes ~ parts have arrived.

License

GPL 3.0

Parts

76
QtyValueFootprintReferences
2482.5ΩResistors_SMD:R_1206R13, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R31, R32, R33, R34 +8
8100nFCapacitors_SMD:C_0603C1, C2, C3, C4, C5, C6, C7, C8
6100ΩResistors_SMD:R_0603R7, R8, R9, R10, R11, R12
6BSS138SOT-23Q1, Q2, Q3, Q4, Q5, Q6
6LEDLEDs:LED-0603D1, D2, D3, D4, D5, D6
5viaMasCustomParts:35-Od-28mil-Id-via28 mil Id via, 28 mil Id via, 28 mil Id via, 28 mil Id via, 28 mil Id via
31K_PACKResistors_SMD:R_Cat16-4RP1, RP2, RP3
210KΩResistors_SMD:R_0603R2, R3
210ΩResistors_SMD:R_0603R4, R5
2CONN_01X09MasCustomParts:Connector_SMD_GH_SIDECONN_1X9_1.25MM_45515711NDP3, P4
2MountingHole_3-5mm_RevA_Date21Jun2010Mounting_Holes:MountingHole_3-5mmMH, MH
110uF PolCCapacitors_SMD:C_1206C9
1121KΩResistors_SMD:R_0603R1
11KResistors_SMD:R_0603R6
133uF PolCCapacitors_Tantalum_SMD:TantalC_SizeA_EIA-3216_ReflowC10
1ATA6870N_BMSSMD_Packages:QFN-48-1EPU1
1CONN_01X01SMD_Packages:1PinP5
1CONN_01X07MyCustomParts:Shrouded_Header_Angled_1x07P1
1EXT-TMPPin_Headers:Pin_Header_Straight_1x02P2
1JUMPER3Connect:GS3JP1
1THERMISTORResistors_SMD:R_0603TH1

More from Teslafly/Dead-OpenBMS-dead

3
  • 2 layers49 × 49 mmOSBMS Balancer Rev1 sot323, the printed circuit board in 3D

    OSBMS Balancer Rev1 sot323

    Teslafly/Dead-OpenBMS-dead

    A scalable, open source battery management system

    74 parts248
  • 2 layers49 × 49 mmOpen source BMS, the printed circuit board in 3D

    Open source BMS

    Teslafly/Dead-OpenBMS-dead

    A scalable, open source battery management system

    53 parts248
  • 2 layers49.5 × 49.5 mmOSBMS MicroMaster atmega328, the printed circuit board in 3D

    OSBMS MicroMaster atmega328

    Teslafly/Dead-OpenBMS-dead

    A scalable, open source battery management system

    35 parts248

Similar boards

  • 2 layers271.8 × 114.3 mmArdumower mega shield svn, the printed circuit board in 3D

    Ardumower mega shield svn

    Ardumower/ardumower

    Develop an open source robotic lawn mower (HW+SW reference platform)

    426 parts282
  • 2 layers179.1 × 63.5 mmBadge-18650, the printed circuit board in 3D

    Badge-18650

    TomKeddie/prj-supercon2022

    65 parts3MIT
  • 4 layers137 × 86 mmCIAA K60, the printed circuit board in 3D

    CIAA K60

    ciaa/Hardware

    Hardware de la CIAA

    467 parts216
  • 2 layers100 × 90 mmRiser, the printed circuit board in 3D

    Riser

    zeldin/iceGDROM

    An FPGA based GDROM emulator for the Sega Dreamcast

    29 parts173GPL-3.0
  • 2 layers59.2 × 41 mmBluey, the printed circuit board in 3D

    Bluey

    electronut/ElectronutLabs-bluey

    Nordic nRF52832 BLE development board with sensors.

    79 parts96
  • 2 layers86 × 54 mmD50mram, the printed circuit board in 3D

    D50mram

    dojoe/roland-mram-card

    A multi-bank MRAM based memory card for Roland instruments

    44 parts75
  • 2 layers54.4 × 43.2 mmReprom, the printed circuit board in 3D

    Reprom

    hbekel/reprom64

    rom replacement board for the C64

    21 parts34GPL-2.0

Questions

How big is the OSBMS Balancer Rev 0.9 PCB?

It measures 49 × 49 mm and has 2 copper layers, 1.6 mm thick.

What parts does the OSBMS Balancer Rev 0.9 use?

76 parts, built around the BSS138 and JUMPER3. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the OSBMS Balancer Rev 0.9 KiCad files?

From the Teslafly/Dead-OpenBMS-dead repository on GitHub, at the commit this page was made from: the board is Hardware/Cell manager board V2 12S/old REVs/Rev 0.9/OSBMS Balancer Rev 0.9.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the OSBMS Balancer Rev 0.9 design in my own project?

Its repository states no licence, so its author keeps all rights: ask Teslafly before reusing the design.