LCCTurnoutController
vsi5004·LCCTurnoutController·PCB/pcb.kicad_pcb
About the LCCTurnoutController PCB
LCCTurnoutController is an open source ESP32 PCB design by vsi5004, published on GitHub. It is a 2-layer board measuring 116 × 74.5 mm, with 170 components from 37 distinct parts.
Its main chip is the MOUDLE-SEEEDUINO-XIAO-ESP32S3, from the ESP32 family. Other key parts include the PCA9685PW, MCP23017_SO, AP63205WU, AP2114-3.3 and LM358. By type, the board carries 68 resistors, 37 diodes, 16 transistors, 14 capacitors, 8 modules and 8 connectors.
It belongs with the robotics & motion and iot & wireless designs in this gallery.
From the project
A PCB that controls servo-actuated turnouts via LCC for Model Railroads
An open-source OpenLCB (LCC) turnout controller node that drives up to 8 servo-based turnouts with automatic frog polarity switching. Designed for N scale layouts where there isn't room for a mechanical frog switch, but powered frogs are still needed for reliable locomotive operation.
The board is built around a Seeed XIAO ESP32 module and communicates on the LCC bus via CAN (TWAI) through an RJ45 connector. Two I²C peripherals handle the outputs:

Main components on the LCCTurnoutController
LCCTurnoutController bill of materials (BOM)
170 components, 37 distinct parts.
| Qty | Part | Footprint | Refs |
|---|---|---|---|
| 1 | PCA9685PW | TSSOP-28_4.4x9.7mm_P0.65mm | U2 |
| 1 | MCP23017_SO | SOIC-28W_7.5x17.9mm_P1.27mm | U3 |
| 1 | AP63205WU | TSOT-23-6 | U4 |
| 1 | AP2114-3.3 | SOT-223-3_TabPin2 | U5 |
| 1 | LM358 | SOIC-8_3.9x4.9mm_P1.27mm | U6 |
| 1 | TJA1051T-3 | SOIC-8_3.9x4.9mm_P1.27mm | U7 |
| 1 | MOUDLE-SEEEDUINO-XIAO-ESP32S3 | MCU_Seeed_ESP32C3_TH | U8 |
| 8 | Motor_Servo | PinHeader_1x03_P2.54mm_Vertical | M1, M2, M3, M4, M5, M6, M7, M8 |
| 16 | MMBT2222A | SOT-23 | Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8 +8 |
| 1 | EXT POWER | TerminalBlock_Phoenix_PT-1,5-2-3.5-H_1x02_P3.50mm_Horizontal | J1 |
| 1 | TRACK POWER | TerminalBlock_Phoenix_PT-1,5-2-3.5-H_1x02_P3.50mm_Horizontal | J2 |
| 2 | RJ45 | RJ45_TE_CONNECTIVITY_5555164-1_Horizontal-Low_Profile | J3, J4 |
| 1 | FROG0-1 | TerminalBlock_Phoenix_PT-1,5-2-3.5-H_1x02_P3.50mm_Horizontal | J5 |
| 1 | FROG2-3 | TerminalBlock_Phoenix_PT-1,5-2-3.5-H_1x02_P3.50mm_Horizontal | J6 |
| 1 | FROG4-5 | TerminalBlock_Phoenix_PT-1,5-2-3.5-H_1x02_P3.50mm_Horizontal | J7 |
| 1 | FROG6-7 | TerminalBlock_Phoenix_PT-1,5-2-3.5-H_1x02_P3.50mm_Horizontal | J8 |
| 1 | VCC SOURCE | PinHeader_1x03_P2.54mm_Vertical | JP1 |
| 8 | G6SK-2 | Relay_DPDT_Omron_G6SK-2 | K1, K2, K3, K4, K5, K6, K7, K8 |
| 1 | Factory Reset | SW_Tactile_SPST_NO_Straight_CK_PTS636Sx25SMTRLFS | SW2 |
| 1 | User | SW_Tactile_SPST_NO_Straight_CK_PTS636Sx25SMTRLFS | SW3 |
Show 17 more
| Qty | Part | Footprint | Refs |
|---|---|---|---|
| 1 | WiFi | LED_0603_1608Metric | D1 |
| 1 | Activity | LED_0603_1608Metric | D2 |
| 16 | 1N4148W | D_SOD-123 | D3, D4, D5, D6, D11, D12, D13, D14 +8 |
| 8 | RED | LED_0603_1608Metric | D7, D9, D16, D18, D26, D28, D34, D36 |
| 8 | GREEN | LED_0603_1608Metric | D8, D10, D17, D19, D27, D29, D35, D37 |
| 1 | NUP2105L | SOT-23 | D15 |
| 1 | CAN TX | LED_0603_1608Metric | D24 |
| 1 | CAN RX | LED_0603_1608Metric | D25 |
| 1 | 4.7uH | IND_B1047AS-4R7N=P3 | L1 |
| 3 | 10uF | CP_Elec_5x5.3 | C1, C8, C9 |
| 2 | 10uF | C_0603_1608Metric | C2, C4 |
| 7 | 100nF | C_0603_1608Metric | C3, C5, C10, C11, C12, C13, C14 |
| 2 | 22uF | C_0603_1608Metric | C6, C7 |
| 22 | 10k | R_0603_1608Metric | R1, R12, R13, R14, R15, R16, R17, R18 +14 |
| 12 | 220R | R_0603_1608Metric | R2, R3, R4, R5, R6, R7, R8, R9 +4 |
| 32 | 1k | R_0603_1608Metric | R21, R22, R23, R24, R25, R26, R27, R28 +24 |
| 2 | 4K7 | R_0603_1608Metric | R29, R30 |
LCCTurnoutController design files
The KiCad project lives in the vsi5004/LCCTurnoutController repository on GitHub; these links point at the commit this page was built from.
- LayoutPCB/pcb.kicad_pcb
- SchematicPCB/pcb.kicad_sch
LCCTurnoutController: common questions
What microcontroller does the LCCTurnoutController use?
The LCCTurnoutController is built around the MOUDLE-SEEEDUINO-XIAO-ESP32S3, from the ESP32 family.
How big is the LCCTurnoutController PCB?
The LCCTurnoutController measures 116 × 74.5 mm, has 2 copper layers and is 1.69 mm thick.
How many components are on the LCCTurnoutController?
170 components, from 37 distinct parts. The full bill of materials is listed on this page.
Where can I download the LCCTurnoutController design files?
From the vsi5004/LCCTurnoutController repository on GitHub, which has the KiCad layout and the schematic; the links under Design files point to each one.
Can I use the LCCTurnoutController design in my own project?
The repository has no license, so all rights stay with vsi5004. Use it as a reference, and ask the author before reusing the design.
Can I test firmware for the LCCTurnoutController without the hardware?
Yes. HardLabs builds a simulation of the board from its netlist and BOM, so you can run and debug ESP32 firmware against it before you order a PCB.
Similar boards
ESP32
Open Book Abridged Edition
joeycastillo
85 × 115 mm65 parts2LCC-BY-SA-4.08.1kESP32
Badge
atopile
56.3 × 39 mm239 parts4LMIT4.0kESP32
Esp32 minimal
atopile
36.2 × 26.8 mm20 parts2LMIT4.0kESP32
Racer
StuckAtPrototype
36 × 50.2 mm70 parts4LApache-2.03.8kESP32
Controller
StuckAtPrototype
29 × 74 mm58 parts4LApache-2.03.8kESP32
Bitaxe
skot
56.5 × 99.8 mm86 parts4LCERN-OHL-S-2.01.4k