

Dcc station
DCC command station for ESP32-C6 — NMRA-compliant model railroad controller in Rust
- Size
- 100 × 120 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 82
- Nets
- 56
- Pads
- 225
- Tracks, vias
- 722, 309
- Pours
- 7
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 27 Mar 2026
- Updated
- 7 Nov 2026
Overview
Dcc station is an open-source printed circuit board by cc90202, from the cc90202/DCC-esp32 repository on GitHub. It is a 2-layer board of 100 × 120 mm with 82 parts on 56 nets, routed with 722 tracks and 309 vias.
It is built around the 74HC08D, 74HC14 and LM339, with the TPS54302, SS34 and AO4407A among its other parts. Its parts include 23 resistors, 16 capacitors, 12 connectors, 9 diodes and 4 ICs. It belongs with the ESP32 and RISC-V boards of this library.
Main components
1174HC08D
SOP-14-40℃~+125℃ 1.5V~4.2V 1.9V、3.7V、5.2V 100mV、400mV 2 27ns@4.5V,50pF 2V~6V 2uA 4 5.2mA 5.2mA 500mV~1.8V 74HC Series AND Gate SOIC-14 Logic Gates ROHSNexperiaLogic Gates74HC14
SOP-14-40℃~+85℃ 1.9V、3.98V、4.4V、5.48V、5.9V 100mV、260mV、260mV 20uA 25ns@4.5V,50pF 2V~6V 6 74HC Noise suppression function Schmitt trigger SOP-14 Inverters ROHSJSMSEMIInvertersLM339
SOP-140℃~+70℃ 1.1mA 1.5mV 150ns 2.3nA 2V~32V 32V 57nA DTL、TTL、CMOS Four channels Open Collector SOP-14 Comparators ROHSJSMSEMIComparatorsTPS54302
UncategorisedTexas InstrumentsSS34
SMA(DO-214AC)-55℃~+125℃ 3A 40V 500uA@40V 550mV@3A Independent SMA(DO-214AC) Schottky Diodes ROHSMDDSchottky DiodesAO4407A
SOP-8-55℃~+150℃ 1 P-Channel 1.8V 14A 2.05nF 20nC@4.5V、40nC@10V 3.1W 300pF 30V 330pF 9.5mΩ@10V、14.7mΩ@4.5V SOP-8 MOSFETs ROHSUMWMOSFETsBZT52C12
SOD-123-65℃~+150℃ 1 Independent 100nA@1V 11.4V~12.7V 12V 150Ω 25Ω 370mW SOD-123 Zener Diodes ROHSDiodes IncorporatedZener DiodesDC-005-5A-2.5
插件-20℃~+70℃ 2.5mm 24V 5A 6.5mm DC Power Jack Right Angle 插件 DC Power Connectors ROHSXKB ConnectionDC Power ConnectorsSMBJ24A
DO-214AA(SMB)-55℃~+150℃ 15.4A 24V 26.7V 38.9V 5uA 600W TVS Unidirectional DO-214AA(SMB) ESD and Surge Protection (TVS/ESD) ROHSGOODWORKESD And Surge Protection (TVS/ESD)SS14
SMA(DO-214AC)-55℃~+150℃ 1A 25A 300uA@40V 40V 550mV@1A Independent SMA(DO-214AC) Schottky Diodes ROHSMDDSchottky DiodesTP1
-- Test leads ROHSFLUKEUncategorised
README
hardware/pcb/README.mdDCC command-station board
The board of the DCC-esp32 command station: 100 x 120 mm, two layers, powered by an external 12–19 V adapter. A Waveshare ESP32-C6-Zero and a Pololu DRV8874 carrier plug into its sockets.

Status
Rev B is the current design. It was built by JLCPCB and works on a 15 V bench supply on J9: power, ESP32, display, LEDs, Wi-Fi, DCC to the track and RailCom reads, and it starts with the display unplugged. Not tried yet: a reversed supply, the buttons, a 19 V supply and a short on the track.
Rev A (PR #41, commit ceebd3d) was built by JLCPCB and works on a 15 V bench supply: power, ESP32, display, LEDs, buttons, Wi-Fi, DCC to the track and RailCom reads. It carried a 230 V mains module on the board. Do not connect a rev A board to the mains: power it with 15 V on the module's output pins, as it was tested.
What rev B changes:
- no mains on the board; power comes from a certified adapter through a barrel jack;
- reverse-polarity protection and a transient suppressor on the input;
- the input voltage is divided down to GPIO0, for a firmware check of the supply (not written yet);
- a screw terminal for a bench supply;
- three panel connectors instead of one, each cable with its own ground;
- pull-up resistors on the display bus, so the bus is defined with the display unplugged.
The CPL already carries the rotation corrections for JLCPCB's footprints; one exported again from KiCad would not.
Power
Use a regulated adapter of 12 to 19 V, at least 2.5 A, with a 5.5 x 2.5 mm plug, centre positive, double insulated (Class II, the square-in-a-square symbol). Choose the voltage by scale: the track gets the adapter voltage minus about 1 V under load (bridge, clamp diodes, fuse), so 12 V for N and 15 V for H0.
A 5.5 x 2.1 mm plug goes into the 2.5 mm jack but makes poor contact; use the right plug.
Never use a 24 V adapter, even though it has the same plug. Nothing on the board is damaged by it, but the decoders would get 23 V, and the firmware does not check the input voltage yet.
For bench work, a bench supply can be connected to the screw terminal J9 ("+" and "−" on the silkscreen) instead of the adapter. Never use both at once: a bench supply set above the adapter would push current into it.
USB and the adapter can be connected at the same time.
Parts bought separately
- Waveshare ESP32-C6-Zero on J4 and J5, USB-C toward the bottom edge.
- Pololu DRV8874 carrier #4035 on J6 and J7, VM and VIN at the top.
- SSD1306 I2C display at 3.3 V.
- Two normally-open push buttons, resume and stop.
- Three JST XH cables for the lid, pin 1 at the square pad:
- J3, DISPLAY, 4 ways: 1 ground, 2 3.3 V, 3 display data, 4 display clock. Keep the cable under 20 cm.
- J10, RESUME, 2 ways: 1 ground, 2 button.
- J11, STOP, 3 ways: 1 ground, 2 button, 3 not connected. The third way keeps the stop cable out of RESUME; label both ends of the resume cable, since a 2-way housing can still be pushed into STOP.
- The adapter described under "Power", and a box.
J12, on the bottom edge right of the sense resistors, is three ground pins for an oscilloscope probe's ground clip.
fab/dcc-station.step is the 3D model of the assembled board, for designing a box. The barrel jack J1 sits on the left edge, where the box needs a round opening for the plug; C1 is 16 mm tall.
Editing
Open dcc-station.kicad_pro in KiCad 10. The symbol of Q1 (AO4407A) is in symbols/dcc.kicad_sym, the footprints of F1 and of the barrel jack J1 (pads from the XKB drawing) in footprints/dcc.pretty.
Licence
CERN Open Hardware Licence v2, strongly reciprocal (LICENSE).
Parts
82| Qty | Value | Footprint | References |
|---|---|---|---|
| 11 | 100nF 50V X7R | Capacitor_SMD:C_0805_2012Metric | C2, C5, C8, C9, C10, C11, C12, C13, C14, C15, C16 |
| 5 | 1k | Resistor_SMD:R_0805_2012Metric | R9, R10, R14, R24, R25 |
| 4 | 10k | Resistor_SMD:R_0805_2012Metric | R4, R21, R22, R23 |
| 4 | 4.7R 1W | Resistor_SMD:R_2512_6332Metric | R5, R6, R7, R8 |
| 4 | M3 | MountingHole:MountingHole_3.2mm_M3 | H1, H2, H3, H4 |
| 4 | SS34 | Diode_SMD:D_SMA | D1, D2, D3, D4 |
| 2 | 100k | Resistor_SMD:R_0805_2012Metric | R3, R19 |
| 2 | 100k 1% | Resistor_SMD:R_0805_2012Metric | R1, R20 |
| 2 | 10uF 50V X7R | Capacitor_SMD:C_1210_3225Metric | C3, C4 |
| 2 | 22uF 25V | Capacitor_SMD:C_1206_3216Metric | C6, C7 |
| 2 | 470R | Resistor_SMD:R_0805_2012Metric | R17, R18 |
| 1 | 100R | Resistor_SMD:R_0805_2012Metric | R13 |
| 1 | 10uH 3A | Inductor_SMD:L_Bourns_SRN6045TA | L1 |
| 1 | 13.7k 1% | Resistor_SMD:R_0805_2012Metric | R2 |
| 1 | 22k | Resistor_SMD:R_0805_2012Metric | R11 |
| 1 | 4.7k | Resistor_SMD:R_0805_2012Metric | R12 |
| 1 | 470uF 35V | Capacitor_THT:CP_Radial_D10.0mm_P5.00mm | C1 |
| 1 | 74HC08 | Package_SO:SOIC-14_3.9x8.7mm_P1.27mm | U2 |
| 1 | 74HC14 | Package_SO:SOIC-14_3.9x8.7mm_P1.27mm | U3 |
| 1 | AO4407A | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | Q1 |
| 1 | BZT52C12 | Diode_SMD:D_SOD-123 | D9 |
| 1 | DC IN 12-19V | TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal | J9 |
| 1 | DC-005-5A-2.5 | dcc:BarrelJack_XKB_DC-005-5A | J1 |
| 1 | DISPLAY | Connector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_Vertical | J3 |
| 1 | ESP32-C6-Zero left row | Connector_PinSocket_2.54mm:PinSocket_1x09_P2.54mm_Vertical | J4 |
| 1 | ESP32-C6-Zero right row | Connector_PinSocket_2.54mm:PinSocket_1x09_P2.54mm_Vertical | J5 |
| 1 | GND SCOPE | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J12 |
| 1 | LED green 0805 | LED_SMD:LED_0805_2012Metric | D6 |
| 1 | LED red 0805 | LED_SMD:LED_0805_2012Metric | D7 |
| 1 | LM339 | Package_SO:SOIC-14_3.9x8.7mm_P1.27mm | U4 |
| 1 | MF-R400 4A 30V | dcc:Polyfuse_Radial_P5.08mm_W14.5mm | F1 |
| 1 | Pololu DRV8874 #4035 left row | Connector_PinSocket_2.54mm:PinSocket_1x07_P2.54mm_Vertical | J6 |
| 1 | Pololu DRV8874 #4035 right row | Connector_PinSocket_2.54mm:PinSocket_1x07_P2.54mm_Vertical | J7 |
| 1 | RESUME | Connector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_Vertical | J10 |
| 1 | SERIAL TX RX GND | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J8 |
| 1 | SMBJ24A | Diode_SMD:D_SMB | D8 |
| 1 | SS14 | Diode_SMD:D_SMA | D5 |
| 1 | STOP | Connector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_Vertical | J11 |
| 1 | TP1 | TestPoint:TestPoint_Pad_D1.5mm | TP1 |
| 1 | TP10 | TestPoint:TestPoint_Pad_D1.5mm | TP10 |
| 1 | TP11 | TestPoint:TestPoint_Pad_D1.5mm | TP11 |
| 1 | TP2 | TestPoint:TestPoint_Pad_D1.5mm | TP2 |
| 1 | TP3 | TestPoint:TestPoint_Pad_D1.5mm | TP3 |
| 1 | TP4 | TestPoint:TestPoint_Pad_D1.5mm | TP4 |
| 1 | TP5 | TestPoint:TestPoint_Pad_D1.5mm | TP5 |
| 1 | TP6 | TestPoint:TestPoint_Pad_D1.5mm | TP6 |
| 1 | TP7 | TestPoint:TestPoint_Pad_D1.5mm | TP7 |
| 1 | TP8 | TestPoint:TestPoint_Pad_D1.5mm | TP8 |
| 1 | TP9 | TestPoint:TestPoint_Pad_D1.5mm | TP9 |
| 1 | TPS54302 | Package_TO_SOT_SMD:TSOT-23-6 | U5 |
| 1 | TRACK | TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal | J2 |
Questions
How big is the Dcc station PCB?
It measures 100 × 120 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Dcc station use?
82 parts, built around the 74HC08D, 74HC14, LM339 and TPS54302. 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 Dcc station KiCad files?
From the cc90202/DCC-esp32 repository on GitHub, at the commit this page was made from: the board is hardware/pcb/dcc-station.kicad_pcb and its schematic hardware/pcb/dcc-station.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Dcc station design in my own project?
Its repository states no licence, so its author keeps all rights: ask cc90202 before reusing the design.
Similar boards
- 2 layers177 × 35 mm

- 4 layers220 × 170 mm

Arpeggiator
EwoudVV/arpeggiator
12-note analog arpeggiator with a 1/2/3 octave range, custom pcb and printed case
360 parts3 - 4 layers53.3 × 68.6 mm

Unoq power shield
ramalamadingdong/pcb-agent
Design a PCB end to end with an agent: CSV source of truth, idempotent build passes, containerized KiCad+Freerouting, and checks that run on the fab output.
56 parts4GPL-3.0 - 4 layers100 × 80 mm

Pd brick
enkhbold470/pd-brick
USB-C Power Delivery bench supply: STUSB4500 sink, LM5176 buck-boost, INA228 monitor, 1.2-22 V set over I2C by an ESP32-S3. 4-layer KiCad 10 board.
120 partsCERN-OHL-S-2.0 - 4 layers118 × 250 mm

- 2 layers100 × 100 mm

HeatTable Base v0.9
DerSpatz/PCB-reflow-solder-table
Table version of the PCB heat plate with advanced features and swappable heat plate
82 parts14MIT - 2 layers93.4 × 42.6 mm

- 2 layers88 × 85 mm
