Skip to the content
PCBKitNew board
2 layers100 × 67 mmBms, the printed circuit board in 3D

Battery management system for 4-series li-ion packs

Size
100 × 67 mm
Copper layers
2
Thickness
1.6 mm
Parts
52
Nets
39
Pads
181
Tracks, vias
332, 59
Pours
8
Routed
Yes
KiCad
KiCad 5 (file 20170123)
Created
7 Aug 2017
Updated
16 Jun 2021

Overview

Bms is an open-source printed circuit board by scttnlsn, from the scttnlsn/bms repository on GitHub. It is a 2-layer board of 100 × 67 mm with 52 parts on 39 nets, routed with 332 tracks and 59 vias.

It is built around the 24LC256-I/P. Its parts include 16 resistors, 15 capacitors, 6 connectors, 4 ICs and 3 transistors. It belongs with the power boards of this library.

Main components

1

README

README.md

BMS

Integrated battery management system for 4-series li-ion packs (based on the BQ76920 from Texas Instruments).

Board

  • programmable over/under voltage protection for each cell
  • programmable short-circuit detection
  • auto cell balancing
  • cell voltage monitoring
  • coulomb counting for accurate state-of-charge tracking
  • status available over BLE

Hardware

Full schematic and PCB layout available in the hardware directory.

  • TI BQ76920 analog front-end
  • Nordic nRF51822 ARM Cortex-M host controller
  • FETs for enabling or disabling charge/discharge
  • shunt resistor for current measurement

Firmware

The host controller firmware is based on the Zephyr RTOS. It communicates with the BQ76920 via I2C and handles various error states that may occur in the BQ76920. It also exposes a BLE peripheral for wireless monitoring.

Build

Requirements:

Setup:

  • git submodule update --init
  • ./setup.sh

Compile and flash:

  • make
  • make flash

Configuration

There are various configuration options which can be specified via Kconfig. Run make menuconfig to browse the available options and override any of the default values.

  • CONFIG_BMS_BOOT_DEVICE (default: GPIO_0)
  • CONFIG_BMS_BOOT_PIN (default: 21)
  • CONFIG_BMS_ALERT_DEVICE (default: GPIO_0)
  • CONFIG_BMS_ALERT_PIN (default: 22)
  • CONFIG_BMS_BLINK_DEVICE (default: GPIO_0)
  • CONFIG_BMS_BLINK_PIN (default: 18)
  • CONFIG_BMS_OVP_ENABLE (default: 3550 mV)
  • CONFIG_BMS_OVP_DISABLE (default: 3350 mV)
  • CONFIG_BMS_UVP_ENABLE (default: 3000 mV)
  • CONFIG_BMS_UVP_DISABLE (default: 3100 mV)
  • CONFIG_BMS_SCD_DELAY (default: 10000 ms)
  • CONFIG_BMS_OCD_DELAY (default: 10000 ms)

BLE Protocol

The BMS implements a Bluetooth Low Energy peripheral for monitoring cell voltages, current draw and state-of-charge. All status data is part of a single characteristic.

Peripheral UUID: 8D9D7800-5B61-412A-AB71-5C7E0E559086

Characteristic UUID: 8D9D7801-5B61-412A-AB71-5C7E0E559086

Value structure (MSB to LSB):

  • status [1 byte]
  • cell 1 (mV) [2 bytes]
  • cell 2 (mV) [2 bytes]
  • cell 3 (mV) [2 bytes]
  • cell 4 (mV) [2 bytes]
  • current (mA) [2 bytes signed]
  • charge used (mAs) [4 bytes signed]
  • state of charge (percent) [1 byte]

Parts

52
QtyValueFootprintReferences
10100nCapacitors_SMD:C_1206_HandSolderingC1, C2, C3, C4, C5, C6, C11, C12, C13, C14
547RResistors_SMD:R_1206_HandSolderingR1, R2, R3, R4, R5
41KResistors_SMD:R_1206_HandSolderingR7, R8, R11, R12
41MResistors_SMD:R_1206_HandSolderingR6, R13, R14, R15
210uCapacitors_SMD:C_1206_HandSolderingC10, C15
21uCapacitors_SMD:C_1206_HandSolderingC7, C9
2CONN_02X09Pin_Headers:Pin_Header_Straight_2x09_Pitch2.00mmP5, P6
2NMOSTO_SOT_Packages_SMD:TO-252-2Q1, Q2
1100RResistors_SMD:R_1206_HandSolderingR9
11N4148Diodes_SMD:D_SOD-123D1
1200mAFuse_Holders_and_Fuses:Fuseholder5x20_horiz_SemiClosed_Casing10x25mmF1
124LC256Housings_SOIC:SOIC-8_3.9x4.9mm_Pitch1.27mmIC3
1330Resistors_SMD:R_1206_HandSolderingR16
14.7uCapacitors_SMD:C_1206_HandSolderingC8
15mResistors_SMD:R_2512_HandSolderingR10
1BATBMS:MKDS_5-2-952P1
1BQ76920Housings_SSOP:TSSOP-20_4.4x6.5mm_Pitch0.65mmIC1
1CONN_01X05BMS:Molex_89401-0510P3
1CONN_02X06Pin_Headers:Pin_Header_Straight_2x06_Pitch2.54mmP4
1LD1117S33TR_SOT223TO_SOT_Packages_SMD:SOT-223IC2
1LEDResistors_SMD:R_1206_HandSolderingD2
1LOADBMS:MKDS_5-2-952P2
1PMOSTO_SOT_Packages_SMD:SOT-23Q3
1TSR 0.5-2450TO_SOT_Packages_THT:TO-220-3_VerticalU1

The 47 most common of 52 parts.

Questions

How big is the Bms PCB?

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

What parts does the Bms use?

52 parts, built around the 24LC256-I/P. 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 Bms KiCad files?

From the scttnlsn/bms repository on GitHub, at the commit this page was made from: the board is hardware/bms.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Bms design in my own project?

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

Similar boards

  • 2 layers90.2 × 48.3 mmMOBO SMD, the printed circuit board in 3D

    MOBO SMD

    lkesteloot/alice

    Website documenting a hardware project from the 1990s.

    64 parts79Apache-2.0
  • 2 layers160 × 100 mmCodyComputer, the printed circuit board in 3D

    CodyComputer

    fjmilens3/cody-computer

    Design files and source code for the Cody Computer.

    59 parts64GPL-3.0
  • 4 layers100 × 49.8 mmExpansion board, the printed circuit board in 3D

    Expansion board

    reubenstr/zuko

    A quadruped robot dog!

    75 parts51MIT
  • 2 layers81.3 × 96.5 mmMidi2cv, the printed circuit board in 3D

    Midi2cv

    tomarus/midi2cv

    Eurorack MIDI2CV and Arpeggiator using an Arduino Nano.

    63 parts31
  • 4 layers63.6 × 67.5 mmPropellerPCB, the printed circuit board in 3D

    PropellerPCB

    tomkinsc/open-spectrometer

    Code, mechanical designs, and electronic plans related to the OpenSpectrometer project.

    76 parts30
  • 2 layers108.4 × 70 mmUser Expansion, the printed circuit board in 3D

    User Expansion

    Ashet-Technologies/Home-Computer

    A retro-inspired home-computer project.

    858 parts20CERN-OHL-P-2.0
  • 2 layers136.8 × 87 mmJcap, the printed circuit board in 3D

    Jcap

    cspang1/jcap

    JAMMA Custom Arcade Project

    66 parts15MIT
  • 2 layers65 × 56.5 mmEx2device, the printed circuit board in 3D

    Ex2device

    dstl/srup

    The Secure Remote Update Protocol (SRUP) is a secure & confirmable command-and-control (C2) protocol for the Internet of Things (IoT), based on MQTT.

    24 parts14MIT