Skip to the content
PCBKitNew board
2 layers100 × 77 mmDcc controller, the printed circuit board in 3D

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

2

README

README.md

dcc-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.

DCC controller with an N gauge BR pannier tank

Overview of DCC controller

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.

bash
rustup target add thumbv7m-none-eabi
cargo install probe-run
cargo run --release
DEFMT_LOG=off cargo run --release # Disable defmt logging

License

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
QtyValueFootprintReferences
13TestPointTestPoint:TestPoint_THTPad_D2.0mm_Drill1.0mmTP3, TP4, TP5, TP6, TP7, TP8, TP9, TP10, TP11, TP12, TP13, TP14, TP15
7100kResistor_SMD:R_0805_2012MetricR10, R11, R21, R22, R25, R27, R29
6100Resistor_SMD:R_0805_2012MetricR12, R13, R23, R24, R26, R28
6100nCapacitor_SMD:C_0805_2012MetricC1, C2, C6, C8, C9, C13
51R 1WResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR9, R16, R17, R18, R19
5330Resistor_SMD:R_0805_2012MetricR1, R2, R5, R6, R7
410nCapacitor_SMD:C_0805_2012MetricC3, C4, C11, C12
4DDiode_SMD:D_MELFD9, D10, D11, D12
4IRF520PBFPackage_TO_SOT_THT:TO-220F-3_VerticalQ3, Q4, Q5, Q6
4MountingHoleMountingHole:MountingHole_3.2mm_M3H1, H2, H3, H4
210kResistor_SMD:R_0805_2012MetricR14, R15
247µCapacitor_THT:CP_Radial_D5.0mm_P2.50mmC7, C10
250kPotentiometer_THT:Potentiometer_Bourns_PTV09A-1_Single_VerticalRV1, RV2
2CMPDM7003Package_TO_SOT_SMD:SOT-23Q1, Q2
2SW_DIP_x07Package_DIP:DIP-14_W7.62mm_SocketSW1, SW5
1100µCapacitor_THT:CP_Radial_D5.0mm_P2.50mmC5
125kResistor_SMD:R_0805_2012MetricR20
12k2Resistor_SMD:R_0805_2012MetricR8
14001Package_SO:SOIC-14_3.9x8.7mm_P1.27mmU2
1ALARMLED_SMD:LED_0805_2012MetricD6
1CHAN_ALED_SMD:LED_0805_2012MetricD1
1CHAN_BLED_SMD:LED_0805_2012MetricD2
1E_STOPButton_Switch_THT:SW_PUSH_6mm_H5mmSW2
1FUSE_BLOWNLED_SMD:LED_0805_2012MetricD8
1Fuseautomotive-fuse-mount:automotive-fuse-mountF1
1LM741Package_DIP:DIP-8_W7.62mmU4
1PROGLED_SMD:LED_0805_2012MetricD5
1PROG_BTNButton_Switch_THT:SW_PUSH_6mm_H5mmSW3
1PROG_MODEdp3t:dp3tSW4
1PWRLED_SMD:LED_0805_2012MetricD7
1STM32F103C6Txstm32f103c6t6-blue-pill:stm32-blue-pillU1
1SW_PWRspdt-slide-switch:spdt-slide-switchSW6
1Screw_Terminal_01x04TerminalBlock:TerminalBlock_bornier-4_P5.08mmJ1
1VXO7803-500Package_TO_SOT_THT:TO-220-3_VerticalU3
1ssd1306-displayssd1306-display:ssd1306-displayU5

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 mmBirdNest pcb, the printed circuit board in 3D

    BirdNest pcb

    VorosEgyes/BirdNest

    BirdNest Camera

    33 parts1MIT
  • 2 layers176.4 × 133.2 mmMainPCB v0.92, the printed circuit board in 3D

    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 mmHyperwiper 2020 production prototype, the printed circuit board in 3D

    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 mmRaven, the printed circuit board in 3D

    Raven

    agranlund/raven

    Homemade MC68060 + DSP56303 Atari-compatible computer. Hardware, firmware, and software stack

    231 parts87
  • 2 layers100 × 35 mmQrp1, the printed circuit board in 3D

    Qrp1

    brucemack/kc1fsz-pa

    Various PA modules

    50 parts
  • 2 layers90 × 60 mmCustom driver, the printed circuit board in 3D

    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 mmLily58, the printed circuit board in 3D

    Lily58

    kata0510/Lily58

    6×4+4keys column-staggered split keyboard.

    88 parts2.3k
  • 2 layers43.8 × 60.3 mmSmallreplacement, the printed circuit board in 3D

    Smallreplacement

    c0pperdragon/C64-Video-Enhancement

    Component video modification for the C64 8-bit computer

    88 parts286MIT