oorail-system: The Model Railway Layout System

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 or future module videos on YouTube.

Wait wasn't this project called Digital DC (DDC) ?

Yes, when we originally released the project it was called Digital DC or DDC. We listened to all the feedback and requests we received about the project. There was a lot of interest from DCC folks who didn't want to be excluded from the fun. So after listening to everyone, we decided that Digital DC (DDC) was more a feature of the system than the core of the system itself. Taking this approach made the system accessible to everyone, whether they wanted just one feature or all the features.

So we spent some time moving things around a little and the oorail-system is what emerged. Digital DC (DDC) is still a very powerful feature of the project and is still the primary way we power the layouts here at oorail. The Digital DC (DDC) pages have been updated to reflect this. Probably as clear as mud but anyway...

Latest Video

Our latest video for the project explains all the different electronic hardware options you can use for building modules as part of the oorail-system:

Model Railway Computer Control
Learn all about controlling your model railway layout using off the shelf components such as the ESP32, ESP8266 and Arduino.

Upcoming Project Events

Date Event Status
Feb 4th 2020 Initial Release Completed
Apr 21st 2020 Subscriber Only 1.0.11 release Released
Apr 28th 2020 Subscriber Only 1.0.12 In Development
May 5th 2020 General Release 1.1.0 Planned

Introducing the oorail-system

Welcome to the oorail-system project. The oorail-system is a new digital model railway control system. It is a highly modular system where you can pick and choose which modules you want on your layout. You can use the system to control all aspects of your layout or you can use it to supplement an existing DCC or computer controlled layout.

The oorail-system is completely FREE to download and is licensed under the GPLv3 Open Source License. Unlike expensive proprietary systems, the oorail-system gives you complete access to the source code and complete access to your train data.

The oorail-system gives you the railway modeller the opportunity to customize the code, build your own modules, contribute code changes back to the project or simply enjoy the system as-is. The goal of the oorail-system 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.

Its all about Modules

The oorail-system is built around the concept of modules. These modules can work on their own or work with other modules as part of a larger layout system. You can pick and choose what you need for your layout. You can start off small by adding one module and build up to a larger system. You can stay using just the one module. It is completely up to you, its your layout.

For example, you might like the look of our Level Crossing Module and want to add it to your layout. You would simply watch the videos related to it on our YouTube channel, buy the electronics components you need to build it and then download the level crossing module software. Following the videos and the companion articles on this site. It might seem a little daunting but its really very straight forward once you give it a try. Just make sure you follow all the instructions.

Most modules will work with any existing system whether its DC, DCC or a complete oorail-system.

All of our modules have a base level code which provides:

  • WiFi support
  • Built-in Web Server
  • Web Server is Asynchronous (this just means it can handle lots of requests at once)
  • Over the Air (OTA) updates - this means you can update it via WiFi
  • Basic HTTP API (basically means you can send it commands via your browser)

The HTTP API is important because it is how things can control, trigger or interact with the module. The modules can communicate with each other, for example you can use a train detection module to trigger the level crossing module to activate and deactivate without needing anything else.

However as you add more modules things can get a little complicated, which is why we designed the oorail-system controller.

The Controller

The oorail-system controller is add-on software for the Raspberry Pi computing platform and the Raspbian Linux Operating System. The oorail-system controller is under development but is functional today. You can use it to program, interact and manage various modules. The ultimate goal with the controller is to enable you to use it either headless (access it via web or an app) or add a touchscreen to use it as the physical controller. The controller is what will collect and store very cool analytics data about your layout.

Digital DC (DDC)

Digital DC (DDC) is a train power control technology developed by oorail. DDC uses off-the-shelf DC components and Internet of Things technologies to provide Digital control without needing a decoder. You can simply swap out your old DC controller with a Digital DC module. DDC is the primary power control system used on the oorail layouts.

Digital DC is now a module in the oorail-system. We have an upcoming DCC module in the works and the means to use existing DCC systems with the oorail-system for control. So check back here for updates.

Watch the Digital DC (DDC) 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.

Probably the best train control system in the world...

We created the oorail-system because existing train control systems were outrageously expensive, didn't really do what we wanted to do or were just painfully bad. Sometimes all three.

We built the oorail-system for the oorail layouts, we just decided to be really generous and share the technology. The idea to share the technology came from a comment Dave Watson over at Dean Park Station (you are probably already subscribed to his channel but if not check it out later) routinely makes that Model Railways is a hobby, its about sharing your skills with everyone in the community and learning from each other.

The sole purpose of this project is to share it with the community, you can pick and choose which parts you want to use. We don't care if you use it or not. What we do care about is giving people a choice, so this content is here to learn about the project and how it could potentially be of use to you. Its pretty cool and we'll let it stand on its own merit.

This project gives you another choice in train control, is it better than most, we think so, but we're a little biased. Its your layout, your money and your choice. Its a bit like beer, down to personal taste. The cool thing about this project is that its basically like really good free beer...

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 https://github.com/oorail/oorail-system.git

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.

oorail-system: Choosing Information and Control

The oorail-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 all the aspects of the oorail-system running it along side existing DCC systems, such as for train detection, train identification, lighting, point control and much more. As the oorail-system is open source, there are plenty of opportunities for modelers and manufacturers to build plug-ins to interface with their favorite systems.

The oorail-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 oorail-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 the oorail-system with a new train set, replacing that basic analogue DC controller to run multiple trains on the same loop with Digital DC. We'll show you how to use the oorail-system 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. We will also show you how to integrate with existing DCC systems so that you can leverage what you have already invested in.

Control through HTTP (Web)

Whether you are sending commands or retrieving information from a module. All of the software components in the oorail-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 oorail-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.

Learn More...

Model Railway Computer Control
Learn all about controlling your model railway layout using off the shelf components such as the ESP32, ESP8266 and Arduino.

Upcoming Features

Before starting the oorail-system 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 oorail-system 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 - Digital DC 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.

DCC Track Module

We are currently developing a stand alone DCC track module but we have also added modules that support some popular existing DCC systems.

Mobile App Control

We are currently testing both an Apple IOS and Android mobile application for controlling oorail-system 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 the oorail-system to your layout check out our Quick Start Guide.