BMS-5s
LibreSolar·bms-5s50-sc·control-pcb/BMS-5s.kicad_pcb
About the BMS-5s PCB
BMS-5s is an open source STM32 PCB design by LibreSolar, published on GitHub under the CC-BY-SA-4.0 license. It is a 2-layer board measuring 108 × 57.5 mm, with 150 components from 59 distinct parts.
Its main chip is the STM32F072CB, from the STM32 family. Other key parts include the BQ76920, MCP16331-CH, AP2210-3.3, TJA1042T/3 and 24AA01. By type, the board carries 47 resistors, 38 capacitors, 21 diodes, 8 transistors, 8 connectors and 7 test points.
It belongs with the power & battery designs in this gallery.
From the project
Battery management system for up to 5 Li-ion cells based on TI bq76920
Battery management system for up to 5 Li-ion cells based on bq76920 IC from Texas Instruments
The Libre Solar BMS is divided into two different boards, connected via a flat cable and integrated into one housing.
- 3 to 5 Li-ion cells (e.g. LiFePO4) - 50 A maximum current - Balancing current approx. 150 mA - STM32F072 ARM Cortex M0 microcontroller - Built-in CAN communication interface and UEXT extension connector

Main components on the BMS-5s
BMS-5s bill of materials (BOM)
150 components, 59 distinct parts — part numbers from the project's BOM.
| Qty | Part | Footprint | Refs |
|---|---|---|---|
| 1 | BQ76920 Texas Instruments | TSSOP-20_4.4x6.5mm_P0.65mm | U1 |
| 1 | MCP16331-CH Microchip | SOT-23-6 | U2 |
| 1 | AP2210-3.3 Diodes Inc. | SOT-23-5 | U3 |
| 1 | TJA1042T/3 NXP | SOIC-8_3.9x4.9mm_Pitch1.27mm | U4 |
| 1 | STM32F072CB STMicroelectronics | LQFP-48_7x7mm_P0.5mm | U5 |
| 1 | 24AA01 Microchip | SOT-23-5 | U6 |
| 5 | DMN2004K Diodes Incorporated | SOT-23 | Q1, Q3, Q5, Q6, Q7 |
| 1 | BSS84 Fairchild Semiconductor | SOT-23 | Q2 |
| 2 | 2N7002 BSS138 Nexperia | SOT-23 | Q4, Q8 |
| 1 | 8KHZ 8kHz Murata | Resonator_Murata_CSTCE_G | Y1 |
| 1 | UEXT Würth | Box_Header_2x05x2.54mm_Straight | J2 |
| 1 | Conn_Switch-N-Sense Würth | Wuerth_WR-FPC_686112148922 | P1 |
| 1 | CONN_01X06 Phoenix Contact | Phoenix_Contact_MC_1,5_6-G-3,81 | P2 |
| 1 | ON/OFF Phoenix Contact | Phoenix_Contact_MC_1,5_2-G-3,81 | P3 |
| 1 | USB_Micro-B FCI | USB_Micro-B_10103594-0001LF | P4 |
| 1 | CONN_01X02 | PinHeader_1x02_P2.54mm_Vertical | P5 |
| 2 | CONN_01X02 | Phoenix_Contact_MC_1,5_2-G-3,81 | P6, P7 |
| 1 | Jumper_NC_Small | PinHeader_2x01_P2.54mm_Horizontal | JP1 |
| 2 | RJ45_NS Amphenol FCI | RJ45_8P8C | JP2, JP3 |
| 1 | 200MA 200mA Littelfuse | R_1206_3216 | RT1 |
Show 39 more
| Qty | Part | Footprint | Refs |
|---|---|---|---|
| 1 | SW_PUSH Würth | SW_Tactile_SKHH_Angled | SW1 |
| 1 | SW_PUSH Würth | SW_SPST_EVQP7A | SW2 |
| 1 | ST_Nucleo_SWD | PinHeader_1x06_P2.54mm_Vertical | SWD1 |
| 1 | 5V | TestPoint_0.8mm_hole | TP1 |
| 1 | 3.3V | TestPoint_0.8mm_hole | TP2 |
| 1 | Load+ | TestPoint_0.8mm_hole | TP3 |
| 1 | Bat+ | TestPoint_0.8mm_hole | TP4 |
| 1 | Regout | TestPoint_0.8mm_hole | TP5 |
| 1 | SDA | TestPoint_0.8mm_hole | TP6 |
| 1 | SCL | TestPoint_0.8mm_hole | TP7 |
| 2 | LED | LED_D3.0mm | LED1, LED2 |
| 2 | LED | LED_0603_1608Metric | LED3, LED4 |
| 6 | 5.6V ON Semiconductor | D_SOD-323 | D1, D2, D3, D4, D5, D7 |
| 3 | 1N4148W-7-F 1N4148WS-7-F Diodes Inc. | D_SOD-323 | D6, D8, D13 |
| 8 | 3.3V ON Semiconductor | D_SOD-323 | D9, D10, D11, D12, D18, D19, D20, D21 |
| 1 | SS16FP Diodes Inc. | D_PowerDI-123 | D14 |
| 1 | USBLC6-2SC6 STMicroelectronics | SOT-23-6 | D15 |
| 1 | NUP2105L ON Semiconductor | SOT-23 | D16 |
| 1 | LM4040CYM3-2.5 Microchip | SOT-23 | D17 |
| 1 | 4.7UH 4.7uH Murata | L_0805_2012Metric | L1 |
| 1 | 22UH 22uH Bourns | L_WE-TPC-4818 | L2 |
| 1 | L Murata | R_0603_1608 | L3 |
| 25 | 100N 100n Murata | C_0603_1608 | C1, C2, C3, C4, C5, C6, C11, C12 +17 |
| 4 | 1u Murata | C_0805_2012 | C7, C9, C16, C21 |
| 3 | 10U 10u Murata | C_0805_2012 | C8, C19, C20 |
| 4 | 4.7U 4.7u Murata | C_0603_1608 | C10, C22, C30, C35 |
| 1 | 4.7U 4.7u Murata | C_1206_3216 | C17 |
| 1 | 100P 100p Murata | C_0603_1608 | C23 |
| 5 | 33 Yageo | R_2010_5025 | R1, R2, R3, R4, R5 |
| 9 | 1k Yageo | R_0603_1608 | R6, R7, R8, R9, R10, R11, R20, R25 +1 |
| 12 | 10K 10k Yageo | R_0603_1608 | R12, R13, R14, R15, R16, R22, R28, R40 +4 |
| 1 | 100 Yageo | R_0603_1608 | R17 |
| 6 | 100K 100k Yageo | R_0603_1608 | R18, R19, R24, R31, R43, R44 |
| 3 | 1M Yageo | R_0603_1608 | R21, R35, R37 |
| 1 | 5.6K Yageo | R_0603_1608 | R23 |
| 2 | 52.3K 52.3k Yageo | R_0603_1608 | R27, R39 |
| 1 | 120 Yageo | R_1206_3216 | R32 |
| 5 | 2.2K 2.2k Yageo | R_0603_1608 | R33, R34, R38, R49, R50 |
| 2 | 330 Yageo | R_0603_1608 | R41, R42 |
BMS-5s design files
The KiCad project lives in the LibreSolar/bms-5s50-sc repository on GitHub; these links point at the commit this page was built from.
BMS-5s: common questions
What microcontroller does the BMS-5s use?
The BMS-5s is built around the STM32F072CB, from the STM32 family.
How big is the BMS-5s PCB?
The BMS-5s measures 108 × 57.5 mm, has 2 copper layers and is 1.6 mm thick.
How many components are on the BMS-5s?
150 components, from 59 distinct parts, with part numbers taken from the project's own BOM. The full bill of materials is listed on this page.
Where can I download the BMS-5s design files?
From the LibreSolar/bms-5s50-sc repository on GitHub, which has the KiCad layout and the BOM; the links under Design files point to each one.
Can I use the BMS-5s design in my own project?
Yes, under the terms of its CC-BY-SA-4.0 license, which LibreSolar chose for the repository.
Can I test firmware for the BMS-5s without the hardware?
Yes. HardLabs builds a simulation of the board from its netlist and BOM, so you can run and debug STM32 firmware against it before you order a PCB.
More boards in bms-5s50-sc
Similar boards
STM32
LumenPnP Motherboard
opulo-inc
149 × 95 mm296 parts4LCC-BY-SA-4.03.7kSTM32
AxxSolder
AxxAxx
39 × 82.5 mm122 parts2LGPL-3.01.7kSTM32
LibreVNA
jankae
122 × 98 mm592 parts6LGPL-3.01.6kSTM32
AIOC
skuep
21 × 31.5 mm47 parts2LMIT1.4kSTM32
Ferris
pierrechevalier83
208.8 × 86.8 mm102 parts2LSHL-2.11.3kSTM32
176 pin board
rusefi
61.8 × 73.2 mm76 parts2LGPL-3.01.2k