Digital DC (DDC) Module

oorail-system update

Digital DC (DDC) is now a module in a much bigger Model Railway Layout Control system called the oorail-system. If you are interested in reading about upgrading from DC to Digital DC, then continue reading below. However if you are looking for things like computer automation, controlling signals, train detection, lighting, level crossing control and so on, please check out:

oorail-system: The Model Railway Layout Control System
The oorail-system is a next generation train control system that is free and open source. The project was created and is maintained by oorail. The system is highly modular. It can be used as a standalone system or supplement an existing DC or DCC system.

Next Generation of DC Train Control

Welcome to the Digital DC (DDC) module page. DDC is a new model train control technology developed by oorail. DDC or Digital DC is now part of the oorail-system.  DDC is 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 features, contribute code changes back to the project or simply use the system as-is. The goal of the DDC project is to provide many of the features available in DCC without requiring a decoder in the locomotive. The project aims to also provide more features than are available in DCC today using off the shelf technologies to put an embedded computer inside the locomotives.

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.

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. The easier one is to subscribe to the oorail YouTube channel and make sure you hit the notification bell. Check out our videos, like and comment from time to time.

We typically try to make a release build and code changes for the month available to everyone on the first Tuesday of the month. However we are actively working on the project daily. If you would like access to builds between releases or just want to support the project, you can subscribe for $5.00/month using the link below. This will get you a zip file delivered with interim releases. So for example, between release 1.1.0 and release 1.2.0, we will do interim beta builds (eg. 1.1.1, 1.1.2 and so on) that have new features, bug fixes etc. Subscribers using the link below get those interim releases.


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.

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.

Under Development

Block Operation Support - DDC 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.

More Information

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