Skip to the content
PCBKitNew board
4 layers130 × 90 mmPhase2-module, the printed circuit board in 3D

A modular, rack-style DC power supply: up to 8 hot-pluggable 600 W buck modules on a shared DC input bus, coordinated by a central manager over CAN.

Size
130 × 90 mm
Copper layers
4
Thickness
1.6 mm
Parts
180
Nets
116
Pads
598
Tracks, vias
2,154, 524
Pours
44
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
13 Jul 2026
Updated
20 Oct 2026

Overview

Phase2-module is an open-source printed circuit board by udaravima, from the udaravima/Lab_Bench repository on GitHub, published under the GPL-3.0 licence. It is a 4-layer board of 130 × 90 mm with 180 parts on 116 nets, routed with 2,154 tracks and 524 vias.

It is built around the DAC80502DRXT, INA240A3D and LM5143RHAR, with the LMR36015AQRNXRQ1, LM5069MM-2 and OPA2333HD among its other parts. Its parts include 69 capacitors, 55 resistors, 14 transistors, 9 ICs and 6 diodes. It belongs with the power boards of this library.

Main components

11

README

README.md

Lab_Bench — Multi-Channel Modular Power Supply

CI

A modular, rack-style DC power supply: up to 8 hot-pluggable 600 W buck modules on a shared DC input bus, coordinated by a central manager over CAN. Each channel is a self-contained analog CV/CC supply with bench-grade precision, usable for lab work, bulk DC power, and battery charging.

Headline specification

ParameterValue
Input bus24–30 V DC nominal (12 V tolerated, output ceiling drops with it)
Channels1–8, hot-pluggable, slot-addressed
Per-channel output0 … (V_in − 2 V), 0–30 A, 600 W envelope (first limit binds)
RegulationAnalog CV/CC (diode-OR min-selector), firmware never in the loop
Setpoint resolution~0.5 mV / ≤0.8 mA (16-bit DAC, per-module calibration)
Readback20-bit INA228, ±0.05 % class
CommsCAN 2.0B @ 500 kbit/s, heartbeat-supervised
ScalingChannels parallel into droop-share groups (firmware feature)
GroundingAll outputs share input ground — parallel OK, no series stacking
Global limitsManager-enforced total power budget + hardwired E-stop line

Documentation index

DocContents
docs/01-system-architecture.mdTopology, backplane, grounding, power budget
docs/02-module-design.md600 W module: power stage, CV/CC loop, sensing, MCU
docs/03-can-protocol.mdBus parameters, ID map, payloads, fault semantics
docs/04-protection-matrix.mdEvery fault: detection, response, latching, recovery
docs/05-build-plan.mdPhased build with exit criteria (150 W proto → 8-ch rack)
docs/06-phase1-circuit-design.mdWorked component values for the 150 W prototype
docs/07-module-firmware.mdSTM32G431 firmware architecture, pin map, bring-up
docs/08-phase2-circuit-design.mdWorked component values for the 600 W module (LM5143 + LM5069)
docs/09-phase3-circuit-design.mdBackplane + ESP32-S3 manager design (slots, E-stop chain, bus metering, UI)
docs/10-manager-firmware.mdManager firmware architecture (host-tested core + ESP-IDF shell)
docs/11-build-guide.mdHow to build one: ordering, assembly, firmware, first power-up
docs/12-phase1-bench-tests.mdPhase-1 bench test procedure against the exit criteria (+ results template)
hardware/SOURCING.mdLCSC-first part sourcing, prices, order-early list
HANDOVER.mdSession handover: state, decisions, gotchas, next steps
hardware/phase1-module/tools/README.mdSchematic/PCB generation + verification pipeline
hardware/phase1-module/lib/PARTS-TO-DOWNLOAD.mdExact orderables, package corrections, verified pricing

Repository layout

text
docs/                         Design docs 01..10, build guide 11, bench tests 12
  test-results/               Bench results (template + one file per board run)
hardware/common/              Shared generators, checkers, bom.py + lcsc_parts.py
hardware/phase1-module/       KiCad 7 project (schematics hand-owned; board generated + routed)
  tools/                      Generators + mechanical checkers (see README)
  lib/                        Vetted symbol + footprint libraries (shared by phase 2)
hardware/phase2-module/       KiCad 7 project — GENERATED (600 W module, docs/08)
hardware/phase3-backplane/    KiCad 7 project — GENERATED (8-slot backplane, docs/09)
hardware/phase3-manager/      KiCad 7 project — GENERATED (ESP32-S3 manager, docs/09)
firmware/
  common/labbench_can.h       CAN codec, shared module <-> manager
  module/core/                Portable control core (host-tested)
  module/                     STM32G431 bare-metal firmware (Makefile+arm-gcc)
  manager/core/               Portable manager core (host-tested)
  manager/idf/                ESP-IDF shell (needs IDF >= 5.1; unproven on silicon)
  tests/                      Host unit tests — `cd firmware/tests && make test`
  tools/lbcan.py              Bench helper: build cansend frames, decode candump

Status (2026-10-06)

Nothing has run on silicon yet; the first board to be built is the Phase-1 module. v0.1.0 was released from master on 2026-09-29.

AreaState
Design docsComplete: 01–10, plus the build guide (11) and Phase-1 bench test procedure (12)
Phase-1 module (150 W)100 × 80 mm, routed, 0 unconnected, 0 DRC errors, fab zip and CPL committed. OVP_TRIP routed to the MCU (PB4) for the firmware 0.2 OVP latch. L2 moved to a 5 × 5 mm land (2026-10-06). Next: order and run docs/12. The older 120 × 80 layout on branch phase1-120x80 has wrong L1/U7 lands: do not order it
Phase-2 module (600 W)130 × 90 mm, routed, 0 unconnected, 0 DRC errors, fab zip and CPL committed; pre-order review closed (HANDOVER); L2 moved to a 5 × 5 mm land (2026-10-06)
Phase-3 backplane330 × 100 mm, fab-ready; gated on the XT60 polarity buzz-out (MECHANICAL.md)
Phase-3 manager100 × 80 mm, routed, 0 unconnected, 0 DRC errors; L2 moved to a 5 × 5 mm land (2026-10-05)
Module firmwarev0.2 builds (~7 KB, bare-metal STM32G431) with the OCP backup and OVP latch; control core host-tested
Manager firmwarev0.2 builds on ESP-IDF 5.3.2; manager, SCPI and UI cores host-tested
BOM / sourcingLCSC numbers in the schematics and per-board BOM and CPL files (hardware/common/bom.py); no CHECK: rows left (closed 2026-10-06); INA228 stock is thin (5 at LCSC); generic R/C parts not yet numbered
CIGitHub Actions: host tests, module and manager firmware builds on every PR

Complete Phase-1 build (parts, five PCBs, stencil, shipping) ≈ US$100–125. HANDOVER.md has the detailed resume points. Work lands on the development branch through pull requests; master receives batched merges.

License

GPL-3.0 (see LICENSE).

Parts

180
QtyValueFootprintReferences
21100nCapacitor_SMD:C_0603_1608MetricC3, C5, C27, C28, C33, C34, C35, C39, C41, C43, C52, C62, C68, C69, C70, C71 +5
1410u/50V X7SCapacitor_SMD:C_1210_3225MetricC6, C7, C8, C9, C10, C11, C12, C13, C38, C40, C45, C46, C47, C48
9100KResistor_SMD:R_0603_1608MetricR16, R18, R19, R20, R22, R23, R38, R52, R75
8CSD18540Q5Blabbench:PowerFET_SON5x6_GDSQ1, Q2, Q3, Q4, Q10, Q11, Q12, Q13
52N7002Package_TO_SOT_SMD:SOT-23Q5, Q6, Q7, Q8, Q9
410K 1%Resistor_SMD:R_0603_1608MetricR47, R61, R67, R68
41uCapacitor_SMD:C_0603_1608MetricC21, C30, C42, C53
4220u/35V hybridCapacitor_SMD:CP_Elec_10x10.5C15, C16, C36, C37
47m5 1WResistor_SMD:R_1206_3216MetricR36, R37, R42, R57
4BAT54WPackage_TO_SOT_SMD:SOT-323_SC-70D1, D2, D3, D4
4M3MountingHole:MountingHole_3.2mm_M3H1, H2, H3, H4
310KResistor_SMD:R_0603_1608MetricR43, R64, R65
31nCapacitor_SMD:C_0603_1608MetricC31, C32, C44
3FiducialFiducial:Fiducial_1mm_Mask2mmFID1, FID2, FID3
210K 0.1%Resistor_SMD:R_0603_1608MetricR3, R6
210K B3950Resistor_SMD:R_0603_1608MetricRT1, RT2
218pCapacitor_SMD:C_0603_1608MetricC66, C67
21KResistor_SMD:R_0603_1608MetricR31, R66
21m0 3W KelvinResistor_SMD:R_2512_6332MetricR30, R34
22.2uCapacitor_SMD:C_0603_1608MetricC22, C23
222u/16VCapacitor_SMD:C_1210_3225MetricC54, C55
24.7KResistor_SMD:R_0603_1608MetricR62, R63
24.7u/50VCapacitor_SMD:C_1210_3225MetricC50, C51
247nCapacitor_SMD:C_0603_1608MetricC18, C20
25.6KResistor_SMD:R_0603_1608MetricR5, R8
26.8u MWSA1707S/XAL1510labbench:L_1707_XAL1510L1, L3
2DNPCapacitor_SMD:C_0603_1608MetricC49, C58
2DNP snubResistor_SMD:R_0603_1608MetricR40, R41
11.0K 0.1%Resistor_SMD:R_0603_1608MetricR2
110.0K 0.1%Resistor_SMD:R_0603_1608MetricR33
1100K 1%Resistor_SMD:R_0603_1608MetricR50
110nCapacitor_SMD:C_0603_1608MetricC1
110u/16VCapacitor_SMD:C_1210_3225MetricC56
1110K 0.1%Resistor_SMD:R_0603_1608MetricR32
112.1K 1%Resistor_SMD:R_0603_1608MetricR72
115.0K 1%Resistor_SMD:R_0603_1608MetricR74
1150nCapacitor_SMD:C_0603_1608MetricC4
115KResistor_SMD:R_0603_1608MetricR7
11N4148WDiode_SMD:D_SOD-323D6
11m5 3W KelvinResistor_SMD:R_2512_6332MetricR70
11u VDDACapacitor_SMD:C_0603_1608MetricC65
12.2KResistor_SMD:R_0603_1608MetricR24
12.2nCapacitor_SMD:C_0603_1608MetricC25
120.0K 0.1%Resistor_SMD:R_0603_1608MetricR46
1200K 1%Resistor_SMD:R_0603_1608MetricR60
1215K 0.1%Resistor_SMD:R_0603_1608MetricR45
122nCapacitor_SMD:C_0603_1608MetricC2
122u/10VCapacitor_SMD:C_1210_3225MetricC57
124.9K 1%Resistor_SMD:R_0603_1608MetricR51
1267K 1%Resistor_SMD:R_0603_1608MetricR35
127nCapacitor_SMD:C_0603_1608MetricC24
133KResistor_SMD:R_0603_1608MetricR4
133u/1.2AInductor_SMD:L_Changjiang_FNR5040SL2
135A bladeFuse:Fuse_Blade_ATO_directSolderF1
14.7Resistor_SMD:R_0603_1608MetricR29
14.7K 0.5W preloadResistor_SMD:R_2512_6332MetricR27
14.7uCapacitor_SMD:C_0603_1608MetricC64
14.87K 1%Resistor_SMD:R_0603_1608MetricR73
146.4K 0.1%Resistor_SMD:R_0603_1608MetricR1
147.5K 1%Resistor_SMD:R_0603_1608MetricR71
1470nCapacitor_SMD:C_0603_1608MetricC19
1470u/50VCapacitor_THT:CP_Radial_D10.0mm_P5.00mmC14
147KResistor_SMD:R_0603_1608MetricR44
163.4K 1%Resistor_SMD:R_0603_1608MetricR26
18MHzCrystal:Crystal_SMD_3225-4Pin_3.2x2.5mmY1
1AGND-PGND tieNetTie:NetTie-2_SMD_Pad0.5mmNT1
1CSD19536KTTPackage_TO_SOT_SMD:TO-263-2Q14
1DAC80502DRXTlabbench:DAC80502_DRX_WSON-10U1
1DNP 0RResistor_SMD:R_0603_1608MetricR39
1FANConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ6
1INA228Package_SO:VSSOP-10_3x3mm_P0.5mmU5
1INA240A3Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU4
1LM5069MM-2Package_SO:VSSOP-10_3x3mm_P0.5mmU12
1LM5143RHARlabbench:LM5143_RHA0040PU3
1LMR36015AQRNXRQ1labbench:LMR36015_RNX_VQFN-HR-12U8
1LTC7004Package_SO:MSOP-10-1EP_3x3mm_P0.5mm_EP1.68x1.88mmU6
1NCP1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U9
1OPA2333Package_SO:VSSOP-8_3.0x3.0mm_P0.65mmU2
1SLOT SIGNALSConnector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJ5
1SMBJ33ADiode_SMD:D_SMBD5

The 170 most common of 180 parts.

Questions

How big is the Phase2-module PCB?

It measures 130 × 90 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Phase2-module use?

180 parts, built around the DAC80502DRXT, INA240A3D, LM5143RHAR and LMR36015AQRNXRQ1. 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 Phase2-module KiCad files?

From the udaravima/Lab_Bench repository on GitHub, at the commit this page was made from: the board is hardware/phase2-module/phase2-module.kicad_pcb and its schematic hardware/phase1-module/aux-rails.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Phase2-module design in my own project?

Its repository publishes it under the GPL-3.0 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 udaravima/Lab_Bench

3
  • 4 layers100 × 80 mmPhase1-module, the printed circuit board in 3D

    Phase1-module

    udaravima/Lab_Bench

    A modular, rack-style DC power supply: up to 8 hot-pluggable 600 W buck modules on a shared DC input bus, coordinated by a central manager over CAN.

    144 parts1GPL-3.0
  • 2 layers100 × 80 mmPhase3-manager, the printed circuit board in 3D

    Phase3-manager

    udaravima/Lab_Bench

    A modular, rack-style DC power supply: up to 8 hot-pluggable 600 W buck modules on a shared DC input bus, coordinated by a central manager over CAN.

    87 parts1GPL-3.0
  • 2 layers330 × 100 mmPhase3-backplane, the printed circuit board in 3D

    Phase3-backplane

    udaravima/Lab_Bench

    A modular, rack-style DC power supply: up to 8 hot-pluggable 600 W buck modules on a shared DC input bus, coordinated by a central manager over CAN.

    39 parts1GPL-3.0

Similar boards

  • 4 layers72.5 × 34 mmXr25, the printed circuit board in 3D

    Xr25

    KreativeName1/Renault-PiDash

    digital gauge pods for the Renault 19 and other cars

    47 partsMIT
  • 4 layers56 × 61 mmProtection, the printed circuit board in 3D

    Protection

    Tim4769/Microver

    Swiss Rover Challenge rover project with final electronics, mechanical handoff files, PCB validation firmware, and shared project assets.

    39 parts
  • 2 layers130 × 80 mmSmu main 1, the printed circuit board in 3D

    Smu main 1

    jaromir-sukuba/J-SMU

    DIY source-measure unit

    210 parts244
  • 6 layers149 × 39 mmNegative startup physical, the printed circuit board in 3D

    Negative startup physical

    AxelMcKenna/AFX-1000

    RMX-1000-inspired effects processor for macOS, AU and VST3, built on a shared C++20 engine. Standalone Daisy Seed 3 hardware with two main PCBs and a custom housing is in development.

    267 parts1
  • 4 layers170 × 74.5 mmSupply power, the printed circuit board in 3D

    Supply power

    GarryBGoode/VibeSupply

    USB PD based powersupply developed on vibes (claude)

    253 parts
  • 4 layers55 × 72.1 mmMain unit, the printed circuit board in 3D

    Main unit

    HyFiVeUser/HyFiVe

    For this use case we developed a very flexible autonomous measuring system, which can be deployed on fishing gear to collect data in an affordable and scalable way.

    132 partsCC-BY-SA-4.0
  • 2 layers95 × 78 mmE Bike, the printed circuit board in 3D

    E Bike

    zachleedogg/E_Bike

    Ebike PAS controller

    71 parts6CC0-1.0
  • 4 layers113 × 65.6 mmMicroMotor, the printed circuit board in 3D

    MicroMotor

    kyleRhess/MicroMotor

    165 parts