

Dcc controller
Open source lightweight DCC controller written in Rust
- Size
- 100 × 77 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 88
- Nets
- 66
- Pads
- 273
- Tracks, vias
- 515, 33
- Pours
- 3
- Routed
- Yes
- KiCad
- KiCad 6 (file 20211014)
- Created
- 15 Jun 2022
- Updated
- 14 Feb 2023
Overview
Dcc controller is an open-source printed circuit board by sciguy16, from the sciguy16/dcc-controller-rs repository on GitHub. It is a 2-layer board of 100 × 77 mm with 88 parts on 66 nets, routed with 515 tracks and 33 vias.
It is built around the VXO7803-500 and IRF510PBF. Its parts include 27 resistors, 13 capacitors, 10 diodes, 6 transistors and 6 switches. It belongs with the STM32 boards of this library.
Main components
2VXO7803-500
SIP,10x7.2mm-40℃~+85℃ 1 10mm 11mm 150mVp-p 200uA 3.3V 4.75V~36V 500mA 680uF 7.2mm 850kHz 86% Open type Short Circuit Protection、Automatic fault recovery ±4% SIP,10x7.2mm DC-DC Power Modules ROHSCUIDC-DC Power ModulesIRF510PBF
TO-220AB-55℃~+175℃ 1 N-channel 100V 15pF 180pF 43W 4V 5.6A 540mΩ@10V 8.3nC@10V 81pF N-Channel TO-220AB MOSFETs ROHSVishay IntertechnologyMOSFETs
README
README.mddcc-controller-rs
Open source lightweight DCC controller with firmware written in Rust
Based on the STM32F103C8T6 "blue pill" board - specifically the C8 version rather than the C6 because the former has 64k of flash, and the graphics components push the binary size up to around 51k.


Features
- Two control potentiometers to control two locomotives, with short-mode addresses selected via dipswitches
- Potentiometers are centre-off; rotate left to drive the corresponding locomotive in reverse, and right to drive it forwards
- LED for each channel to show when it is active
- On-off-on mini slide switch to select programming mode
- programming mode disables all control functions and just sends out DCC IDLE packets until the "program" button is pressed
- Controller will then send out the programming sequence to program the locomotive with the address set on the selected channel
- Current measurement and overcurrent shut-off
- Overcurrent alarm LED
- Screw terminals to connect power supply and track outputs
- Pure-Rust open source firmware based on dcc-rs
- Open source hardware
Installation
Ensure that the thumbv7m-none-eabi target and the probe-run tool have
been installed and then cargo run --release will automatically flash the
compiled firmware onto the device.
rustup target add thumbv7m-none-eabi
cargo install probe-run
cargo run --release
DEFMT_LOG=off cargo run --release # Disable defmt loggingLicense
Source code for the software components is distributed under the terms of the Mozilla Public License Version 2.0.
Design files for the hardware components are distributed under the terms of the CERN Open Hardware Licence Version 2 - Weakly Reciprocal.
Parts
88| Qty | Value | Footprint | References |
|---|---|---|---|
| 13 | TestPoint | TestPoint:TestPoint_THTPad_D2.0mm_Drill1.0mm | TP3, TP4, TP5, TP6, TP7, TP8, TP9, TP10, TP11, TP12, TP13, TP14, TP15 |
| 7 | 100k | Resistor_SMD:R_0805_2012Metric | R10, R11, R21, R22, R25, R27, R29 |
| 6 | 100 | Resistor_SMD:R_0805_2012Metric | R12, R13, R23, R24, R26, R28 |
| 6 | 100n | Capacitor_SMD:C_0805_2012Metric | C1, C2, C6, C8, C9, C13 |
| 5 | 1R 1W | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R9, R16, R17, R18, R19 |
| 5 | 330 | Resistor_SMD:R_0805_2012Metric | R1, R2, R5, R6, R7 |
| 4 | 10n | Capacitor_SMD:C_0805_2012Metric | C3, C4, C11, C12 |
| 4 | D | Diode_SMD:D_MELF | D9, D10, D11, D12 |
| 4 | IRF520PBF | Package_TO_SOT_THT:TO-220F-3_Vertical | Q3, Q4, Q5, Q6 |
| 4 | MountingHole | MountingHole:MountingHole_3.2mm_M3 | H1, H2, H3, H4 |
| 2 | 10k | Resistor_SMD:R_0805_2012Metric | R14, R15 |
| 2 | 47µ | Capacitor_THT:CP_Radial_D5.0mm_P2.50mm | C7, C10 |
| 2 | 50k | Potentiometer_THT:Potentiometer_Bourns_PTV09A-1_Single_Vertical | RV1, RV2 |
| 2 | CMPDM7003 | Package_TO_SOT_SMD:SOT-23 | Q1, Q2 |
| 2 | SW_DIP_x07 | Package_DIP:DIP-14_W7.62mm_Socket | SW1, SW5 |
| 1 | 100µ | Capacitor_THT:CP_Radial_D5.0mm_P2.50mm | C5 |
| 1 | 25k | Resistor_SMD:R_0805_2012Metric | R20 |
| 1 | 2k2 | Resistor_SMD:R_0805_2012Metric | R8 |
| 1 | 4001 | Package_SO:SOIC-14_3.9x8.7mm_P1.27mm | U2 |
| 1 | ALARM | LED_SMD:LED_0805_2012Metric | D6 |
| 1 | CHAN_A | LED_SMD:LED_0805_2012Metric | D1 |
| 1 | CHAN_B | LED_SMD:LED_0805_2012Metric | D2 |
| 1 | E_STOP | Button_Switch_THT:SW_PUSH_6mm_H5mm | SW2 |
| 1 | FUSE_BLOWN | LED_SMD:LED_0805_2012Metric | D8 |
| 1 | Fuse | automotive-fuse-mount:automotive-fuse-mount | F1 |
| 1 | LM741 | Package_DIP:DIP-8_W7.62mm | U4 |
| 1 | PROG | LED_SMD:LED_0805_2012Metric | D5 |
| 1 | PROG_BTN | Button_Switch_THT:SW_PUSH_6mm_H5mm | SW3 |
| 1 | PROG_MODE | dp3t:dp3t | SW4 |
| 1 | PWR | LED_SMD:LED_0805_2012Metric | D7 |
| 1 | STM32F103C6Tx | stm32f103c6t6-blue-pill:stm32-blue-pill | U1 |
| 1 | SW_PWR | spdt-slide-switch:spdt-slide-switch | SW6 |
| 1 | Screw_Terminal_01x04 | TerminalBlock:TerminalBlock_bornier-4_P5.08mm | J1 |
| 1 | VXO7803-500 | Package_TO_SOT_THT:TO-220-3_Vertical | U3 |
| 1 | ssd1306-display | ssd1306-display:ssd1306-display | U5 |
Questions
How big is the Dcc controller PCB?
It measures 100 × 77 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Dcc controller use?
88 parts, built around the VXO7803-500 and IRF510PBF. 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 controller KiCad files?
From the sciguy16/dcc-controller-rs repository on GitHub, at the commit this page was made from: the board is hardware/dcc-controller/dcc-controller.kicad_pcb and its schematic hardware/dcc-controller/dcc-controller.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Dcc controller design in my own project?
Its repository states no licence, so its author keeps all rights: ask sciguy16 before reusing the design.
Similar boards
- 2 layers94 × 78.2 mm

- 2 layers176.4 × 133.2 mm

MainPCB v0.92
FilmNeverDie/Farbung
A open source project based on FilmNeverDie's CP800 film processing machine
207 parts25BSD-3-Clause - 2 layers123.8 × 65.8 mm

Hyperwiper 2020 production prototype
Hyperwiper/Hyperwiper
Data flow: audio source such as music player or smartphone connected to beat detector as embedded
47 parts3GPL-3.0 - 6 layers243.8 × 243.8 mm

Raven
agranlund/raven
Homemade MC68060 + DSP56303 Atari-compatible computer. Hardware, firmware, and software stack
231 parts87 - 2 layers100 × 35 mm

- 2 layers90 × 60 mm

Custom driver
Sussex-Neuroscience/ganzfeld-stimulator
1) Join 4 x 200mm beams to form a square, using the construction cubes in the corners. You need to make 2 of these for the top and bottom of the box.
27 partsGPL-3.0 - 2 layers142.5 × 106.3 mm

- 2 layers43.8 × 60.3 mm

Smallreplacement
c0pperdragon/C64-Video-Enhancement
Component video modification for the C64 8-bit computer
88 parts286MIT