The Open Source DCC Locomotive Decoder is built on an open-source platform, designed for hobbyists who want the ability to customise, enhance, and evolve their model railroad systems. It is powered by the RP2040 microcontroller from the Raspberry Pi Foundation, providing high-performance and different control schemes.
It is fully compatible with DCC standards, and features advanced PID motor control for smooth acceleration, deceleration, and maintaining speed under varying loads. Programmable outputs provide realistic sound and lighting effects, and the open-source software, built on Raspberry Pi’s C-SDK, allows complete customisation of your model locomotive. With community support and continuous upgrades, it keeps your system future-proof with the latest features and improvements.
Features
Microcontroller: RP2040 by the Raspberry Pi Foundation.
Compatibility: Fully compatible with DCC standards.
Programming: Open-source software built on top of Raspberry Pi’s C-SDK.
Motor Control: Advanced PID control for maintaining speed under different loads as well as smooth acceleration and deceleration.
Sound and Lighting: Programmable outputs for realistic lighting effects.
Sound: Not yet, but with direct access to some GPIO’s and the source code anyone can have a stab at it.
Connectivity: Supports additional sensors and actuators for extended functionality.
Community: Access to a vibrant community for support, ideas, and collaboration.
Specifications
Memory: 264KB of SRAM, and 8MB of onboard Flash memory.
Core: Dual-core ARM Cortex-M0+ processor, up to 133 MHz, overclockable (how is that even a word) to 250MHz.
Input/Output: 6 Digital I/O logic IO signals and 4 30V/450mA outputs.
Communication: UART, I2C, SPI can be configured for communication with external devices.
Dimensions: Compact form factor (20x25mm) for easy integration into model locomotives.
Motor current: 2.8A max continuous, with motor driver mounted to chassis.
PCB:
4-layer board with solid ground plane for improved heat distribution.
Big solder pads for easy soldering of wires to the PCB.
Weight: 8g
Dimensions: 2.5 x 2 x 0.5 cm
Firmware
The device is flashed with the latest available firmware at the time of shipping so if you are just aiming to run the decoder you can do so.
Locomotive Control: Precise control over speed, direction, and operational characteristics.
Environmental Effects: Dynamic control of lighting to enhance realism.
Automation: Integration with sensors for automated control scenarios and feedback.
Dynamic GPIO control: Allows you to dynamically assign GPIO functions using CV’s.
Getting Started
The OpenDec02 board is based on Gabriel Koppenstein's open-source project found here. All kudos for this project goes to Gabriel, the only thing we have added is an optimised layout and our knowledge in production. His GitHub pages describe the architecture and how to work with the device in a very clear manner.
On our boards we have brought out the D+/D- signals for the USB interface which can simplify flashing of the device when we produce them in bulk. Feel free to use them any way you want. A cut-off USB cable can be used to connect with the device, remember though that the USB stack causes overhead which can conflict with the tight timing of the DCC protocol decoder.