Next Generation of Digital Train Control

Welcome to the Digital DC (DDC) Project. DDC is a new model railway control system built using off-the-shelf DC powered electronic components and modules. The software that enables the DDC system is available to download for FREE under the GPLv3 Open Source License. Unlike proprietary systems, DDC gives you the railway modeler the opportunity to play with the code, build your own modules, contribute code changes back to the project or simply use the system as-is. The goal of the DDC project is to not only provide a very affordable state of the art model railway control system but to enable the system to be used as an educational tool for electronic and software engineering, whether you are 13 or 93!

Watch the latest demo from oorail:

The latest demo walks you through basic operation of the Digital DC Track Module which is used for locomotive control. Digital DC provides 10-bit resolution (up to 1023 speed steps in each direction, note: DCC is only 128 steps) and eliminates the problem with lighting in DC where the speed of the locomotive impacts how bright the running lights are. Please feel free to ask questions or post feedback in the video comments on YouTube.

New Project so please excuse the dust

This is a new project, over the coming weeks we will expand the documentation, add videos via the oorail YouTube channel and provide diagrams. If there is some information or something you'd like us to explain, please get in touch. The easiest way is to comment on the demo video on YouTube.

Upcoming Project Events

Date Event Status
Feb 4th 2020 Initial Release Completed
Feb 5th 2020 Demo Video Editing
Feb 9th 2020 Track Module How-To Video -
Feb 11th 2020 Subscriber Only 1.0.1 release -
Feb 18th 2020 Subscriber Only 1.0.2 release -
Feb 25th 2020 Subscriber Only 1.0.3 release -
Mar 3rd 2020 Release 1.1.0 -
Mar 3rd 2020 Release Video -

Time for new innovation

Digital Command Control (DCC) was developed in the early 1990s and the standard was published for review in October 1993. The solution is over 30 years old, developed at a time that pre-dates many modern day technologies such as WiFi and 3G. The technology is from a time where people still used corded phones, telephone boxes, cassette recorders, Windows 3.11 was new, Intel 486 processors were state of the art and when dial-up Internet was just starting to be a thing.

The first analogue DC control for model railways was introduced in the late 1920s, according to Hornby's History Page, 6v DC was an innovation evolved by Hornby due to safety concerns surrounding 110v-220v AC power. While the technology has seen innovations such as transistor control and smaller more efficient units, there hasn't been a major innovation in model railway power control for almost three decades.

Today we live in a world of the Internet of Things, Smart Homes, AI voice assistants and advanced mobile devices. There are much better communication methods than trying to push a control signal down metal rails that are also trying to power the locomotive. What we have done with the Digital DC (DDC) project is go back to the fundamental 12V DC power supply and redesigned a model railway control system that leverages the very latest in IoT, WiFi and Internet technologies to provide a low cost, modular and open system that is limited solely by your imagination.

Interested in our design approach, check out the additional information below.

Supporting the Project

There are a number of ways you can help support this project. We make a release build and code changes for the month available to everyone on the first Tuesday of the month. However we do weekly private release builds every Tuesday. These builds contain early access to the features coming in the monthly build. We offer three subscription levels, one at US$5.00 per month which gives you access to the private mid-month release build and the public release build. The second subscription level is US$10.00 per month and gives you access to all the weekly private builds and the public release build. The third subscription level costs US$25.00 per month, gives you access to all the weekly private builds and gives you the ability to request priority on a bug fix or feature request.


New releases are made available for download on the first Tuesday of the month. You can download the latest releases from GitHub, these can be found at:

Alternatively you can pull the source code via git using:

git clone

Ready to give it a try? Check out the Quick Start Guide.

Source Code

The entire project is Open Sourced under the GPLv3 license. You can find the source code over at our GitHub code repository. We release new code on the first Tuesday of every month. This code has been tested and developed throughout the previous month.

The day after each public release, we duplicate the latest release and use a private repository to work on the next releases features. Every Tuesday we build a private beta release that has upcoming new features, enhancements and bug fixes that will be in the next public release. To help fund the project we offer a paid subscribers access to those private builds. This gives our paid supporters the opportunity to gain early access and provide input on new features. The weekly releases should be considered beta quality. This is a great way to help support the project and gain exclusive early access to upcoming features.

Digital DC: Choosing Information and Control

The Digital DC system is a modular system that is all about choice. While the system can easily replace DC or DCC control, it doesn't have to. We understand that many modelers have invested hundreds and thousands of pounds into sophisticated DCC systems such as the ESU ECoS or the z21, and many decoders. They can still leverage many aspects of the Digital DC (DDC) system running it along side existing DCC systems, such as for train detection, train identification, lighting, point control and much more. As the Digital DC system is open source, there are plenty of opportunities for modelers and manufacturers to build plug-ins to interface with their favorite systems.

The Digital DC system is designed to obtain information from your layout, whether this is identifying whats on the layout, where on the layout things are, pulling state information from points or other components, then making that information available to other modules. The system is also designed to enable control and automation. Whether you just want to control signals and points, or everything. The choice is up to you.

From Train Set to Layout

The Digital DC system is designed to be modular and work on layouts of all sizes. We have designed and develop the system on three separate layouts.

  • The Mallard Pullman Train Set by Hornby
  • 16' end-to-end shelf layout
  • The large scale complex oorail layout

As the project progresses, we will show you how to integrate Digital DC with a new train set, replacing that basic analogue DC controller to run multiple trains on the same loop. We'll show you how to use Digital DC to achieve various levels of automation on our 16' end-to-end shelf layout and ultimately, we'll show you how to integrate DDC into the large DC/DCC layout used for the oorail project.

Standard DC Power means off-the-shelf DC components

The Digital DC system uses standard 12V and 5V DC power, unlike DCC which uses an AC-like power that is applied constantly to the track. The DCC signal is unique to DCC, so components have to be specifically designed and produced for it. This proprietary technology has a much smaller market, which translates to more expensive components.

By using standard DC power, Digital DC (DDC) benefits from a very large market consuming DC electronics. DC electronics are used in everything from Smart Home devices, Internet of Things, Drones, RC vehicles, Electric Vehicles, Renewable Energy Solutions, Cars, HVAC systems, Computer Systems, Information Technology Solutions, Appliances, Consumer Electronics and many many other applications. By choosing to build upon a base of standard DC power, we are gaining access to millions of DC components that can be re-purposed for Railway Modeling.

Not only does it give us access to a wide selection of components, those components are extremely cheap and available for many different vendors.

Our prototype Digital DC Track Module uses:

  • Standard DC 12V Power Supply (US$10 - US$25)
  • L298N motor controller (US$2.60)
  • ESP32 System on a Chip Microcontroller (US$6.67)

Total cost: US$19.97 - US$34.27

The ESP32 is an off-the-shelf system on a chip microcontroller designed for IoT applications, enabling us to benefit from WiFi and Bluetooth capabilities, on a platform designed to work with the Internet. The ESP32 can be easily programmed using the C-style programming interface provided by the Arduino IDE.

Control through HTTP (Web)

Whether you are sending commands or retrieving information from a module. All of the software components in the Digital DC (DCC) system provide a HTTP (web) interface into the module. This technology is used in Cloud Computing and is called an API. All you need to know is that each "command" or each bit of "information" we want to access, is controlled by a specific URL for example:



The first URL provides status information, while the second URL tells the track module to increase the speed of the locomotive on Track A (0).

API First

The approach we have taken with the modules is called API First. Its a software engineering design where you develop the API first, and then build other components that leverage the API. There are a number of advantages to this including faster development, easier to understand software and a very modular approach. By using this approach for our components, such as the track module, we can build multiple solutions that can access the module. This might include a mobile app, a centralized controller or an automation system. Once the API for a particular module is in place, other components can pull information or control the module by simply sending HTTP (web) requests to the desired URL on the module.

Degrees of Automation

The API first approach makes it very simple to enable different degrees of automation on your layout with the Digital DC system. You can quickly and easily build systems that are fully automated, partially automated or that allow you to select different aspects to control. The reason for this is that automation is merely a series of API (HTTP Web requests) to different URLs to issue command and retrieve information/status/state from components on your layout.

Upcoming Features

Before starting the Digital DC project, we have spent the last couple of years testing out and experimenting with different proof of concept solutions. You may have seen some of these solutions through our Tech Tuesday videos including Arduino point control using relay boards, train detection and other projects. Now that we know what works and what doesn't work. We're taking the steps to make the code ready for consumption and available through the Digital DC project on GitHub.

Here are some of the features you can expect to see throughout 2020, we have other features in the works as well but have chosen to keep some of these to ourselves due to the highly competitive market. The following are intended to be just a teaser...

Block Operation Support - Track Module

The current release of our Track Module supports Track A and Track B, and is intended to be for basic control of two loops. However, the same track module can be used to control two blocks as part of a larger block system. The upcoming block operation support in the track module enables multiple track modules to be used together to seamlessly control multiple locomotives across multiple blocks on the same loop of track.

Decoder and Decoder-less modes of operation - Track Module

The current release of our Track Module supports "decoder-less" operational. Basically our track module is a type of digital control, its a bit like having a decoder strapped to the track that is controlling the locomotive, rather than having the decoder in the locomotive. As we build out the software features in the track module, you will be able to do more close control and better speed control than is even possible with DCC.

One of the features we have recently finished prototyping is a Digital DC decoder. This is a small piece of electronics that plug into the DCC Ready pins in your locomotive, and enable the same type of control you expect with DCC from Digital DC. The Digital DC decoder provides some interesting features including advanced sensor data and other really neat innovations.

The Track Modules are capable of running Digital DC (DDC) decoder and decoder-less operation on the same loop of track provided the track is fully controlled by the Digital DC track modules.

Mobile App Control

We are currently testing both an Apple IOS and Android mobile application for controlling digital DC modules. We expect the app to be available around mid-2020, it will be fully open sourced.

Train Automation

Programmable train automation enabling realistic operation is currently under development.

Accessory Control

We have a number of advanced modules that provide accessory control and information to the system under development.

More Information

To learn how to add Digital DC to your layout check out our Quick Start Guide.