Skip to the content
PCBKitNew board
4 layers135 × 70 mmBms c1, the printed circuit board in 3D

The living record of ABT #422 (closed 2026-08-01; this file is its successor — update it as boards land). The program: grow the open-source converter corpus, track (a) the derive success rate of the critical-mesh…

Size
135 × 70 mm
Copper layers
4
Thickness
1.58 mm
Parts
210
Nets
142
Pads
1,344
Tracks, vias
1,097, 805
Pours
62
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
27 Jul 2026
Updated
13 Oct 2026

Overview

Bms c1 is an open-source printed circuit board by OpenConverters, from the OpenConverters/Faraday repository on GitHub, published under the MIT licence. It is a 4-layer board of 135 × 70 mm with 210 parts on 142 nets, routed with 1,097 tracks and 805 vias.

It is built around the ESP32-C3-MINI-1, SN65HVD230D and SN65HVD75D, with the IPT012N08N5, BAT46W and B4B-PH-SM4-TB among its other parts. Its parts include 66 resistors, 47 capacitors, 23 diodes, 12 transistors and 11 connectors. It belongs with the power boards and the ESP32 and RISC-V boards of this library.

Main components

12

README

corpus/README.md

Corpus validation ledger (Tier 4)

The living record of ABT #422 (closed 2026-08-01; this file is its successor — update it as boards land). The program: grow the open-source converter corpus, track (a) the derive success rate of the critical-mesh analysis, (b) human-reviewed member-set agreement, (c) fallback correctness — and pin every reviewed board as a Catch2 regression (test_real_boards.cpp, [corpus-pin], SKIP when the corpus is not fetched). Characterization-test discipline throughout: pins are verified against physical sense and never silently re-pinned.

Final stats (2026-08-01)

Every converter board in the program derives. 14 derived meshes across 8 physical boards, zero known wrong-member cases:

BoardNode(s)Derived meshNotes
PoE flyback (Altium ODB++)NetD17_3T7 + D22 + R29RCD clamp — includes the D22 a hand-run prototype missed
NetC52_2T4 + D21 + R16
LM5143-Q1EVM (TI gerbers)×2exact per SNVA-documented hot loopstwo-phase buck
LM5177EVM (via KiCad 9)buck + boostboth match SLVAFJ3
LM5123EVM (via KiCad 9)boostcloses through the OUTPUT capFranz's own example of what pattern-matching gets wrong
mppt-2420-lcSW_NODEQ1 + Q4 + C4 (71 mm², 25 nH)pinned
mppt-1210-husSW_NODEQ1 + Q4 + C4 (64 mm², 26 nH)pinned; LOAD_S pinned to keep REFUSING a divider-as-clamp
mppt-2420-hcSW_NODEQ1 + Q2 + C3 (buck)TO-220 equal pads → conduction case d (pin 1 = JEDEC control terminal, 2 mm² pad floor)
VESC (KiCad + ODB++)H1/H2/H3Q1+Q2+R53+C40 · Q3+Q4+C8 · Q5+Q6+R54+C37Kelvin shunts NAMED as mesh members; both formats agree byte-for-byte

Plus 4 synthetic topology pins in Catch2: buck, boost-with-decoy, flyback-RCD, Kelvin-shunt bridge — and the determinism pin (pad order + exporter rounding invariance).

Correct negatives: pwm-2420-lus (PWM controller, SOLAR- only), moteus / FPGA / interface boards, hackrf (pinned: 0 switch nodes, exactly 2 candidates — its dual-LDO + ferrite harness is externally isomorphic to a fixed buck; see the main README).

Wrong-member cases found and fixed during the program (each caught by the regression pins this ledger mandated — which is the whole argument for them):

  • mppt-1210-hus LOAD_S derived a divider (R+R) as a clamp path → two-edge clamps must contain a diode; falls back honestly.
  • PoE gate-drive SOT-23s with numbered pins hijacked the mesh → 2 mm² pad floor on conduction case d.
  • mppt-2420-hc SUPPLY_INPUT (L2+Q4 supply-ORing rail) and PoE NetC45_1 (aux-winding node smoothed by C45) screened as commutation loops → the shunt-cap veto: a net with a 2-pad capacitor straight to the return can never switch.
  • KiCad vs ODB++ of the same VESC picked different caps (C8/277 mm² vs C40/221 mm²) and anchor FETs → meshes now scored by pad-hull area (the least-inductance loop; C40 was physically right), areas quantized to 0.1 mm² before ref-name tie-breaks. Centroid-hull scoring was tried and REFUTED (mppt-2420-lc's collinear C2 degenerated to ~1 mm²).

Format coverage — real products on all five formats

  • KiCad: the corpus (this directory; scripts/fetch_corpus.py).
  • Gerber + IPC-D-356: TI fab exports (TIDA-010979, LM5143-Q1EVM) — Altium exporter. Drawing-sheet title blocks are cropped and counted (LM5143 screened as 168×105 mm before; really 96×73 with 8.3 m of title-block strokes); IPC netting below 95 % of routed copper is reported, never silent.
  • ODB++: the PoE flyback (real Altium product) + VESC through KiCad 9's own ODB++ writer — second real exporter, derives identically.
  • HyperLynx: hyp2mat's Eagle-exported RF filters (hairpinfilter, notchfilter; github.com/koendv/hyp2mat) — own stackup honored.
  • IPC-2581: BeagleBone Black RevB6 (Cadence Allegro, ipc2581.com consortium) — screens with an explicit stackup; the file carries no permittivity and Faraday refuses to invent one.

Altium native .PcbDoc stays refused by design (binary OLE). Altium boards are covered by three validated routes: ODB++ export, Gerber_NCdrills_IPC fab output, and the .PcbDoc → KiCad 9 importer.

History (ledger entries)

  • 2026-07-31 baseline (9 boards + PoE): derived on mppt-2420-lc and PoE flyback; geometric fallback on vesc + mppt-2420-hc (D2PAK role ambiguity).
  • + conduction cases b/c + SOT-23 refusal pins: 11 reviewed-correct meshes across 7 boards; VESC 1/3 phases.
  • conduction case d + Kelvin-shunt bridge: every converter board derives — 14 meshes across 8 boards; VESC 3/3 with shunts as members.
  • 2026-08-01, the "100 %-happy" audit: pour coverage became a scanline UNION (BBB LYR2 175 % → 92.7 %); importer plausibility notes are appended by the gate, never overwritten; gerber outlines are the smallest profile loop holding ≥95 % of pads+vias; T-junction/pour/mid-via physical-contact netting; the shunt-cap veto and monolithic-converter candidates (ABT #408/#409/#410); mesh determinism across formats.

Parts

210
QtyValueFootprintReferences
1720LibreSolar:R_2010_5025R1, R2, R3, R4, R5, R6, R7, R8, R10, R11, R12, R13, R14, R15, R16, R17 +1
17220nFLibreSolar:C_0603_1608C1, C2, C3, C4, C5, C6, C7, C8, C10, C11, C12, C13, C14, C15, C16, C26 +1
17TestPointTestPoint:TestPoint_Pad_1.0x1.0mmTP16, TP17, TP18, TP19, TP20, TP21, TP22, TP23, TP24, TP25, TP26, TP27, TP28, TP29, TP30, TP31 +1
14100nFLibreSolar:C_0603_1608C19, C21, C24, C28, C31, C34, C36, C37, C40, C48, C49, C50, C51, C52
14TestPointTestPoint:TestPoint_Pad_D1.5mmTP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8, TP9, TP10, TP12, TP13, TP14, TP15
947LibreSolar:R_0603_1608R40, R41, R42, R43, R47, R48, R49, R50, R57
8IPT012N08N5Package_TO_SOT_SMD:Infineon_PG-HSOF-8-1_ThermalViasQ2, Q3, Q4, Q5, Q6, Q7, Q8, Q9
6100pFLibreSolar:C_0603_1608C27, C29, C32, C33, C35, C38
610kLibreSolar:R_0603_1608R29, R30, R60, R68, RT1, RT2
6BAT46WLibreSolar:D_SOD-123D2, D5, D10, D15, D16, D20
6MountingHoleMountingHole:MountingHole_3.2mm_M3_Pad_TopBottomH1, H2, H3, H4, H5, H6
4100LibreSolar:R_0603_1608R19, R20, R38, R44
416VLibreSolar:D_SOD-123D14, D17, D21, D24
45.1kLibreSolar:R_0603_1608R27, R35, R53, R54
4CONN_01X01LibreSolar:Wuerth_PowerOne_SMD_LF990005P1, P2, P3, P4
310MLibreSolar:R_0603_1608R39, R52, R59
31MLibreSolar:R_0603_1608R24, R26, R62
31kLibreSolar:R_0603_1608R22, R23, R46
20RLibreSolar:R_0603_1608R21, R37
21µFLibreSolar:C_0603_1608C30, C47
22.2kLibreSolar:R_0603_1608R32, R33
22.2µFLibreSolar:C_1206_3216C22, C23
247µFLibreSolar:C_1206_3216C17, C18
262RLibreSolar:R_0603_1608R56, R64
268kLibreSolar:R_0603_1608R51, R61
282kLibreSolar:R_0603_1608R28, R65
2B4B-PH-SM4Connector_JST:JST_PH_B4B-PH-SM4-TB_1x04-1MP_P2.00mm_VerticalJ2, J6
2ESD5B5.0ST1GLibreSolar:D_SOD-523D3, D4
2FiducialFiducial:Fiducial_1mm_Mask2mmFID1, FID2
2PMEG10010ELRXLibreSolar:D_SOD-123FD1, D13
2SW_PUSHButton_Switch_SMD:SW_SPST_TL3305AS1, S2
110LibreSolar:R_1206_3216R25
1100LibreSolar:R_1206_3216R18
110µFLibreSolar:C_0805_2012C46
11µFLibreSolar:C_1206_3216C25
12.2µFLibreSolar:C_0603_1608C20
122µHLibreSolar:Bourns_SRN8040TAL2
13.6VLibreSolar:D_SOD-123D11
1300µLibreSolar:R_Shunt_5931_KelvinR45
135.7kLibreSolar:R_0603_1608R31
140LibreSolar:Bourns_PWR163R63
1470LibreSolar:R_0603_1608R58
147uFCapacitor_SMD:CP_Elec_10x10C39
15.1VLibreSolar:D_SOD-323D19
152.3kLibreSolar:R_0603_1608R34
175VLibreSolar:D_SOD-123D23
1B2B-PH-SM4Connector_JST:JST_PH_B2B-PH-SM4-TB_1x02-1MP_P2.00mm_VerticalJ5
1B3B-PH-SM4Connector_JST:JST_PH_B3B-PH-SM4-TB_1x03-1MP_P2.00mm_VerticalJ4
1BQ76952Package_QFP:TQFP-48_7x7mm_P0.5mmU4
1BSS123NLibreSolar:SOT-23Q11
1BSS84LibreSolar:SOT-23Q10
1CONN_01X01Connector_Wire:SolderWirePad_1x01_SMD_5x10mmP5
1DMN10H220LEPackage_TO_SOT_SMD:SOT-223Q1
1ESP32-C3-MINI-1Espressif:ESP32-C3-MINI-1U5
1LED greenLED_SMD:LED_0603_1608MetricLED2
1LED redLED_SMD:LED_0603_1608MetricLED1
1LIBRE_SOLARLibreSolar:LIBRESOLAR_LOGOLOGO2
1LMR38010LibreSolar:SOIC-8-1EP_3.9x4.9mm_P1.27mm_EP2.4x3.1mm_ThermalViasU3
1MURS360LibreSolar:D_SMCD22
1MicroFit 2x12Connector_Molex:Molex_Micro-Fit_3.0_43045-2410_2x12-1MP_P3.00mm_HorizontalJ1
1NetTieNetTie:NetTie-2_SMD_Pad0.5mmNT1
1OPEN_HARDWARESymbol:OSHW-Logo_5.7x6mm_SilkScreenLOGO1
1PESD2CANFDPackage_TO_SOT_SMD:SOT-23D8
1SMCJ70ALibreSolar:D_SMCD12
1SN65HVD230Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU1
1SN65HVD75Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU2
1USB_C_Receptacle_USB2.0Connector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_HorizontalJ3
1VSS8D3M10-M3/IDiode_SMD:D_SOD-128D9
1ZXMP10A17GTAPackage_TO_SOT_SMD:SOT-223-3_TabPin2Q12

The 209 most common of 210 parts.

Questions

How big is the Bms c1 PCB?

It measures 135 × 70 mm and has 4 copper layers, 1.58 mm thick.

What parts does the Bms c1 use?

210 parts, built around the ESP32-C3-MINI-1, SN65HVD230D, SN65HVD75D and IPT012N08N5. 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 c1 KiCad files?

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

Can I use the Bms c1 design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

More from OpenConverters/Faraday

1
  • 6 layers50.8 × 22.9 mmOrangecrab, the printed circuit board in 3D

    Orangecrab

    OpenConverters/Faraday

    The living record of ABT #422 (closed 2026-08-01; this file is its successor — update it as boards land). The program: grow the open-source converter corpus, track (a) the derive success rate of the critical-mesh…

    166 partsMIT

Similar boards

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

    CIAA K60

    ciaa/Hardware

    Hardware de la CIAA

    467 parts216
  • 4 layers10 × 22.5 mmCircle, the printed circuit board in 3D

    Circle

    osrf/slow_bldc

    52 parts4Apache-2.0
  • 4 layers80 × 49 mmPIB, the printed circuit board in 3D

    PIB

    apexsat/payload-electrical

    PCBs for payload

    319 parts1
  • 4 layers14.8 × 14.8 mmDcesc ga25, the printed circuit board in 3D

    Dcesc ga25

    baden/dcesc-controllers

    Experiments with DC motors

    111 parts
  • 4 layers100 × 50 mmDcesc ga25, the printed circuit board in 3D

    Dcesc ga25

    baden/roboarm

    Так, це роборука.

    219 parts
  • 2 layers100.3 × 102.9 mmBMS, the printed circuit board in 3D

    BMS

    Gransi/BMS-LTC6813

    BMS based on LTC6813-1

    125 parts