CellKeeper-BMS
clowrey·CellKeeper-BMS-PCB
About the CellKeeper-BMS PCB
CellKeeper-BMS is an open source RP2040/RP2350 PCB design by clowrey, published on GitHub under the GPL-3.0 license. It is a 4-layer board measuring 306 × 113 mm, with 423 components from 84 distinct parts.
Its main chip is the RaspberryPi_Pico, from the RP2040/RP2350 family. Other key parts include the UCC27524DR, TPS5430DDAR, F0505S-1WR3, ISO1050DUB and LTV-217-B-G. By type, the board carries 138 resistors, 114 capacitors, 50 diodes, 35 jumpers, 25 ICs and 23 connectors.
It belongs with the power & battery designs in this gallery.
From the project
PCB for the CellKeeper BMS
KiCad PCB design for the CellKeeper Battery Management System, a replacement BMS controller for battery packs using the isoSPI protocol.
- MCU: Raspberry Pi RP2354B (dual Cortex-M33 @ 150 MHz) - Current sensing: TI INA228 (20-bit ADC, shunt-based) - Pack voltage: 6-channel monitoring via precision dividers - BMB communication: isoSPI master with galvanic isolation (Manchester encoding via PIO) - CAN bus: 500 kbps, hardware transceiver - Contactor control: 4-channel PWM outputs with inrush limiting - Input: 12 V nominal; rated for up to 400 V DC pack voltage

Main components on the CellKeeper-BMS
CellKeeper-BMS bill of materials (BOM)
423 components, 84 distinct parts — part numbers from the project's BOM.
| Qty | Part | Footprint | Refs |
|---|---|---|---|
| 2 | UCC27524DR | Package_SO__SOIC-8_3.9x4.9mm_P1.27mm | U1, U11 |
| 1 | TPS5430DDAR | Package_SO__TI_SO-PowerPAD-8_ThermalVias | U3 |
| 2 | F0505S-1WR3 | BMS_Library__H0505S-1WR2 | U4, U15 |
| 2 | ISO1050DUB | Package_SO__SOP-8_6.62x9.15mm_P2.54mm | U5, U10 |
| 6 | LTV-217-B-G | Package_SO__SSOP-4_4.4x2.6mm_P1.27mm | U6, U7, U8, U9, U12, U13 |
| 2 | RP2354B | RP2350_80QFN_minimal__RP2350-QFN-80-1EP_10x10_P0.4mm_EP3.4x3.4mm_ThermalVias | U14, U20 |
| 1 | ISO1540 | Package_SO__SOIC-8_3.9x4.9mm_P1.27mm | U16 |
| 1 | INA228 | Package_SO__TSSOP-10_3x3mm_P0.5mm | U17 |
| 2 | ADS1115 | Package_SO__TSSOP-10_3x3mm_P0.5mm | U18, U19 |
| 2 | SP3485EN-L SP3485EN-L/TR | Package_SO__SOIC-8_3.9x4.9mm_P1.27mm | U21, U23 |
| 2 | AM26LV32EIDR | Package_SO__SOIC-16_3.9x9.9mm_P1.27mm | U22, U24 |
| 2 | TLV1117LV33DCYR | Package_TO_SOT_SMD__SOT-223-3_TabPin2 | U25, U26 |
| 1 | RaspberryPi_Pico | Module__RaspberryPi_Pico_Common_Unspecified | A1 |
| 4 | BSC0805LS | BMS_Library__TDSON-8_5x6_ | Q1, Q2, Q3, Q4 |
| 2 | ABM8-272-T3 | Crystal__Crystal_SMD_3225-4Pin_3.2x2.5mm | Y1, Y2 |
| 1 | SCREW_TERMINAL_01X04 Screw_Terminal_01x04 | BMS_Library__PhoenixContact_MC_1_5_4-G-3.81_1x04_P3.81mm_Horizontal_1.4mmPin | J1 |
| 1 | SCREW_TERMINAL_01X01 Screw_Terminal_01x01 | BMS_Library__XFCN_T34008_M3_Terminal_Frame_PCB | J2 |
| 3 | Screw_Terminal_01x04 | BMS_Library__PhoenixContact_MC_1_5_4-G-3.81_1x04_P3.81mm_Horizontal_1.4mmPin | J3, J7, J15 |
| 2 | 8P8C_LED_SHIELDED_X2 8P8C_LED_Shielded_x2 | Connector_RJ__RJ45_HCTL_HC-RJ45-5JA-2-2-Y | J4, J5 |
| 1 | OEM Connector | BMS_Library__S44BRAD1AK | J6 |
Show 64 more
| Qty | Part | Footprint | Refs |
|---|---|---|---|
| 2 | Conn_01x03 | Connector_PinHeader_2.54mm__PinHeader_1x03_P2.54mm_Vertical | J8, J16 |
| 3 | USB_C_RECEPTACLE_USB2.0_16P USB_C_Receptacle_USB2.0_16P | BMS_Library__USB_C_Receptacle_HRO_TYPE-C-31-M-12 | J9, J11, J19 |
| 1 | 3.81P Screw Terminal | BMS_Library__PhoenixContact_MC_1_5_8-G-3.81_1x08_P3.81mm_Horizontal_1.4mmPin | J10 |
| 2 | Conn_02x10_Odd_Even | Connector_PinHeader_2.54mm__PinHeader_2x10_P2.54mm_Vertical | J12, J22 |
| 1 | C17284895 OEM Shunt Connector | BMS_Library__CONN_ZE05H-8DP-2H_HIR | J14 |
| 1 | C573648 OEM HV Sense Connector | BMS_Library__CONN_173864-1_TYC_Empty_Pins | J17 |
| 1 | 7.62mm Pitch Screw Terminal | Connector_Phoenix_GMSTB__PhoenixContact_GMSTBA_2_5_6-G-7_62_1x06_P7.62mm_Horizontal | J18 |
| 2 | C587318 OEM Connector | BMS_Library__CONN_SD-34912-001_02_MOL | J20, J23 |
| 2 | 3.81P Screw Terminal | BMS_Library__PhoenixContact_MC_1_5_2-G-3.81_1x02_P3.81mm_Horizontal_1.4mmPin | J21, J24 |
| 7 | TP | BMS_Library__TestPoint_THTPad_D1.5mm_Drill1.0mm | 1/2V1, 3v1, 5V1, GND1, GPIO1, GPIO2, GPIO3 |
| 2 | SDCW3225S-2-102TF | BMS_Library__FILTER-SMD_4P-L3.2-W2.5-BL | FL1, FL2 |
| 29 | 0r | BMS_Library__J_0603_jumper | JP1, JP2, JP3, JP4, JP7, JP8, JP9, JP12 +21 |
| 6 | C21189 0r | BMS_Library__J_0603_jumper | JP5, JP6, JP10, JP11, JP15, JP36 |
| 4 | TS-1187A-B-A-B | Button_Switch_SMD__SW_Push_1P1T_XKB_TS-1187A | SW1, SW2, SW3, SW4 |
| 6 | B59451C1130B070 | BMS_Library__RV_Disc_D15.5mm_W7.5mm_P5.0mm | TH1, TH2, TH3, TH4, TH5, TH6 |
| 2 | HM2113ZNLT | BMS_Library__HM2113ZNLT | TR1, TR2 |
| 13 | SMB6.8CA | Diode_SMD__D_SMB | D1, D2, D3, D4, D5, D6, D24, D25 +5 |
| 9 | C2297 Green | LED_SMD__LED_0805_2012Metric | D7, D8, D14, D19, D32, D35, D36, D43 +1 |
| 6 | C84256 Red | LED_SMD__LED_0805_2012Metric | D9, D10, D27, D41, D46, D49 |
| 12 | SS54 | Diode_SMD__D_SMA | D11, D12, D15, D16, D20, D23, D37, D38 +4 |
| 6 | C34499 White | LED_SMD__LED_0805_2012Metric | D13, D17, D22, D33, D34, D45 |
| 4 | SMCJ33CA | Diode_SMD__D_SMC | D18, D21, D39, D40 |
| 3 | C1002 600R@100MHz | Inductor_SMD__L_0603_1608Metric_Pad1.05x0.95mm_HandSolder | FB1, FB3, FB5 |
| 1 | C14709 120Ω@100MHz | Capacitor_SMD__C_0603_1608Metric | FB2 |
| 2 | 6.8UH 6.8uh | Inductor_SMD__L_Changjiang_FXL0630 | L1, L5 |
| 2 | C475917 22uh 5.5A | Inductor_SMD__L_Changjiang_FXL1040 | L2, L3 |
| 2 | 3.3UH 3.3uh | RP2350_80QFN_minimal__L_pol_2016 | L4, L6 |
| 3 | 680UF 680uF | Capacitor_THT__CP_Radial_D10.0mm_P5.00mm | C1, C14, C31 |
| 29 | 100NF 100nF | Capacitor_SMD__C_0603_1608Metric | C2, C10, C11, C13, C15, C16, C18, C22 +21 |
| 8 | 10UF 10uF | Capacitor_SMD__C_0805_2012Metric | C3, C4, C6, C8, C17, C21, C32, C55 |
| 8 | 22UF 22uF | Capacitor_SMD__C_0805_2012Metric | C5, C7, C12, C33, C37, C48, C49, C69 |
| 1 | 4.7UF 4.7uF | Capacitor_SMD__C_0603_1608Metric | C9 |
| 14 | 1UF 1uF | Capacitor_SMD__C_0603_1608Metric | C19, C20, C41, C42, C57, C67, C96, C97 +6 |
| 6 | 100PF 100pF | Capacitor_SMD__C_0603_1608Metric | C24, C25, C26, C27, C103, C113 |
| 4 | 4.7U 4.7u | RP2350_80QFN_minimal__C_0402_1005Metric_small_pads | C38, C43, C68, C72 |
| 4 | 15PF 15pF | Capacitor_SMD__C_0402_1005Metric | C39, C40, C70, C71 |
| 24 | 100N 100n | Capacitor_SMD__C_0402_1005Metric | C44, C46, C47, C50, C51, C53, C56, C58 +16 |
| 4 | 4.7U 4.7u | Capacitor_SMD__C_0402_1005Metric | C45, C52, C82, C87 |
| 4 | 100NF 100nf | Capacitor_SMD__C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C62, C64, C73, C74 |
| 1 | 10UF 10uF | Capacitor_SMD__C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C66 |
| 4 | 1NF 1nF | Capacitor_SMD__C_1206_3216Metric | C94, C95, C107, C108 |
| 17 | 24K 24k | Resistor_SMD__R_0603_1608Metric | R1, R2, R11, R16, R29, R33, R35, R39 +9 |
| 11 | 10K 10k | Resistor_SMD__R_0603_1608Metric | R3, R4, R15, R19, R20, R21, R25, R28 +3 |
| 6 | 100K 100k | Resistor_SMD__R_0603_1608Metric | R5, R10, R18, R24, R34, R36 |
| 4 | 33R | Resistor_SMD__R_0603_1608Metric | R7, R12, R37, R38 |
| 11 | 1k | Resistor_SMD__R_0603_1608Metric | R8, R9, R22, R23, R46, R47, R48, R49 +3 |
| 4 | 10K 10k | Resistor_SMD__R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R13, R14, R51, R52 |
| 1 | 24K 10k | Resistor_SMD__R_0603_1608Metric | R17 |
| 1 | 3.3K 3.3k | Resistor_SMD__R_0402_1005Metric | R26 |
| 13 | 1k | Resistor_SMD__R_0402_1005Metric | R27, R53, R55, R56, R74, R92, R94, R95 +5 |
| 2 | 510R 510r | Resistor_SMD__R_0603_1608Metric | R30, R73 |
| 2 | 120R 120r | Resistor_SMD__R_1206_3216Metric | R31, R32 |
| 2 | 2.2K 2.2k | Resistor_SMD__R_0603_1608Metric | R43, R44 |
| 18 | 5.1K 5.1k | Resistor_SMD__R_0603_1608Metric | R45, R57, R66, R69, R72, R77, R79, R80 +10 |
| 4 | 33R 33r | Resistor_SMD__R_0402_1005Metric | R54, R68, R93, R126 |
| 4 | 22R | Resistor_SMD__R_0402_1005Metric | R70, R71, R127, R128 |
| 1 | 47k | Resistor_SMD__R_0603_1608Metric | R75 |
| 1 | C21189 0r | Resistor_SMD__R_0603_1608Metric | R76 |
| 2 | 220R 220r | Resistor_SMD__R_0603_1608Metric | R87, R88 |
| 24 | 3M | Resistor_SMD__R_1206_3216Metric | R102, R103, R104, R105, R106, R107, R108, R109 +16 |
| 4 | 47R 47r | Resistor_SMD__R_0603_1608Metric | R136, R137, R148, R149 |
| 2 | 100R | Resistor_SMD__R_0603_1608Metric | R142, R150 |
| 2 | 1M | Resistor_SMD__R_1206_3216Metric | R145, R146 |
| 2 | 100k | Resistor_SMD__R_0603_1608Metric | R151, R152 |
CellKeeper-BMS design files
The KiCad project lives in the clowrey/CellKeeper-BMS-PCB repository on GitHub; these links point at the commit this page was built from.
CellKeeper-BMS: common questions
What microcontroller does the CellKeeper-BMS use?
The CellKeeper-BMS is built around the RaspberryPi_Pico, from the RP2040/RP2350 family.
How big is the CellKeeper-BMS PCB?
The CellKeeper-BMS measures 306 × 113 mm, has 4 copper layers and is 1.6 mm thick.
How many components are on the CellKeeper-BMS?
423 components, from 84 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 CellKeeper-BMS design files?
From the clowrey/CellKeeper-BMS-PCB repository on GitHub, which has the KiCad layout, the schematic and the BOM; the links under Design files point to each one.
Can I use the CellKeeper-BMS design in my own project?
Yes, under the terms of its GPL-3.0 license, which clowrey chose for the repository.
Can I test firmware for the CellKeeper-BMS without the hardware?
Yes. HardLabs builds a simulation of the board from its netlist and BOM, so you can run and debug RP2040/RP2350 firmware against it before you order a PCB.
Similar boards
RP2040/RP2350
Open Book Abridged Edition
joeycastillo
85 × 115 mm29 parts2LCC-BY-SA-4.08.1kRP2040/RP2350
Corne
foostan
277.2 × 107.5 mm164 parts2LCC-BY-4.07.7kRP2040/RP2350
Corne
foostan
277.2 × 107.5 mm164 parts2LCC-BY-4.07.7kRP2040/RP2350
LogicAnalyzer
gusmanb
57 × 55.2 mm6 parts2LGPL-3.05.0kRP2040/RP2350
Jitx design
gusmanb
55.5 × 65 mm26 parts4LGPL-3.05.0kRP2040/RP2350
Pro V2
kata0510
290.1 × 130 mm270 parts2LMIT2.3k