Skip to content

Open source lightweight DCC controller written in Rust

License

Notifications You must be signed in to change notification settings

sciguy16/dcc-controller-rs

Repository files navigation

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.

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.

About

Open source lightweight DCC controller written in Rust

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published