Model Railroad Electronics and Control




Site Map



Projects & DCC











Disclaimer : While every effort has been made to thoroughly test and verify all functions incorporated into the software and hardware items described here, please note that all information is supplied on an "as is" basis and without warranty of any kind. You use the information presented at your own risk. The author and designer will not in any event be held liable for any improper operation of the software or hardware items or interference with any other equipment, nor be held liable for any incidental or consequential damages of any sort arising out of their use.

The following projects are covered on this page -

ARCC - Automatic Railroad Crossing Controller

DCC Decoder Tester

DCC Track Monitor

A-STILE - a utility program to organise locomotive rosters for use with the original Atari version of A-TRACK


DCC - Digital Command Control





DCC allows the simultaneous operation of almost any number of model locomotives on complex track layouts without the use of conventional block switching, ie. each locomotive does not have to be controlled within a single section of track allocated specifically to it. The speed and direction of each locomotive can be set independently regardless of where it is on the track (a feature, naturally, which has to be used with care!). Control can also be exercised over multiple locomotives treated as a single unit (MUs or consists) and over accessories such as lighting, signalling, and points (turnouts).

The basis of DCC is to supply power to the track in a form which also contains coded information to control the model locomotives and accessories. A fixed voltage (nominally 14 volts for HO scale) is applied to the track. The voltage polarity is continuously reversed electronically between positive and negative, such that the time periods between polarity reversals represent the required control data. A period of 58 microseconds positive followed by 58 microseconds negative represents a binary '1' bit, while consecutive positive and negative periods of 116 microseconds represent a binary '0' bit. Defined sequences of bits are used to represent commands to change speed, for example, and by how much, and to identify which locomotive should respond to each command.

Since the polarity of the applied voltage is positive and negative for equal lengths of time, the net voltage on the track, as seen by a normal (non-DCC) model locomotive, is zero (especially as the polarity reversals are occurring at around 6000 times a second), and the locomotive will remain stationary.


WARNING :  While most model locomotive motors will not react to the DCC track voltage, other than by making a 'buzzing' noise, in some cases the motor will become very hot and can fail. It is recommended, therefore, that non-DCC locomotives are NOT placed on a track where DCC is in operation.


 Top of Page




Unlike a normal model locomotive, a locomotive intended for DCC contains a decoder unit which performs two functions. The decoder picks up and rectifies the alternating voltage applied to the track and makes it available as a direct voltage which can be applied to the locomotive motor. The decoder also interprets the stream of bits encoded in the track polarity reversals as a set, or packet, of command bytes (a byte is a group of 8 bits) and acts upon them to apply an appropriate proportion of the rectified track power to the motor, making the locomotive move forward or backwards at the required speed. Each decoder is given a unique identity (or address) and will only act on command packets which have that address value encoded into them.

As well as controlling locomotive speed, decoders normally provide several auxiliary outputs which can be used to drive locomotive lights or sound units, or other effects when activated by receipt of an appropriate command packet. Because power is always present on the track when using DCC, operation of these auxiliary functions is totally independent of the locomotive speed. Lights, for example, operate at constant brightnesss even when the locomotive is stationary.


Further Information

See the Links page for links to suppliers and other websites with information on DCC.

The definitive guide to DCC ‘Digital Command Control’ was written by Stan Ames, Rutger Friberg & Ed Loizeaux in 1998 (revised 1999) and is published by Allt om Hobby, a Swedish company, in cooperation with the NMRA. More details can be found on Rutger Friberg’s website. Other useful publications are available from Digitrax, who also provide a lot of data in PDF format while you can freely download.


 Top of Page




ARCC – Automatic Railroad Crossing Controller

The Automatic Railroad Crossing Controller (ARCC) is designed to operate signals and/or barriers as a train approaches a crossing, and then switch the signals off (and raise any barriers) once the end of the train is clear of the crossing.

The system works by having four infra-red light beams across the track, as shown in the diagram below. The source of each infra-red beam is a suitable LED, positioned on one side of the track, and its light is detected on the opposite side of the track by a matching phototransistor. Each of the four beams will be broken in sequence by the train as it travels along the track and over the crossing.

Automatic Railroad Crossing Controller - Position of Across-Track Sensors

If a train is approaching from the left, for example, the crossing signals, etc., are activated as the front of the train (locomotive) breaks beam 'A'. The signals stay activated until the last car in the train has passed through beam 'C', and the beam is intact again. Similarly, for a train approaching from the right, the crossing signals are activated as beam 'D' is broken, and continue until the complete train has passed through beam 'B'.

It is important to appreciate that all four beams are broken as the train moves through. When travelling from left to right, breaking beam 'B' before beam 'D' effectively tells the ARCC to ignore the breaking of beam 'D' until the train has passed completely through the set of sensors, ie. until the last car has travelled beyond beam 'D'. The ARCC is then returned to its "Ready" state, where the breaking of either beam 'A' or 'D' will trigger the crossing signals. A similar sequence applies for trains travelling from right to left, where the breaking of beam 'C' stops the ARCC from re-triggering the crossing signals as soon as beam 'A' is broken.

The ARCC is designed to handle only a single track, but it is possible to handle a railroad crossing with dual tracks, by fitting a second ARCC module, with its own set of four infra-red beam sensors. The two ARCCs are coupled together so that a train running in either direction, on either track, will operate the crossing signals. If you have trains running across the crossing on both tracks simultaneously, then the first train to reach an 'outer' sensor (its own 'A' or 'D') will activate the crossing signals/barriers. These will stay active until BOTH trains are clear of their own inner sensors (the relevant 'B' or 'C').

This project has been designed so that anyone with a reasonable level of skill can assemble an ARCC (or two) for themselves. Full details of the ARCC circuitry, and suggestions for its construction on stripboard, are given in the User Guide which is available for download.


 Top of Page




DCC Decoder Tester

Before fitting a new DCC decoder into one of your locomotives, it makes sense to check that it is operational. This can be done with a simple Decoder Tester, shown in the schematic below, which is constructed from a set of resistors and light-emitting diodes. Any colour or type of LEDs can be used, and all resistors, with the exception of R1 are 0.5 watt rated. R1 should have a 2 watt rating as a minimum (and preferably 3 watt), since it is intended to provide a load which stands in for the locomotive motor during programming, and will have to withstand the full DCC track voltage – nominally 14 volts for HO-scale.


DCC Decoder Tester - Version 2 - Schematic


Connections to the track and the decoder can be made using flying leads from the Tester, terminated in miniature crocodile clips (preferably insulated to avoid inadvertent short circuits), and which are plugged on to sets of pin headers. Alternatively, you can make up wiring harnesses with appropriate sockets to take the NMRA plugs fitted to some decoders, or you can fit sets of spring or screw terminals.

To use the Decoder Tester, connect to the decoder first, then attach the final two input leads to the track, or direct to the programming outputs from your DCC Command Station. If all is well, both LEDs L1a and L1b should light when power is applied to the track by the Command Station. If only one of these LEDs is lit then it indicates that plain DC is being applied to the Tester instead of DCC power (14 volts AC). The other LEDs are driven from the outputs of the decoder under test. New decoders come with their address set to the default value of 03, so send DCC commands to this address and check that the appropriate LEDs light -


L2a  =  Motor Forward

L5   =  Function 1

L2b  =  Motor Reverse

L6   =  Function 2

L3   =  Forward Light

L7   =  Function 3 (if present)

L4   =  Reverse Light

L8   =  Function 4 (if present)


L9   =  Function 5 (if present)


A higher-quality copy of the schematic, together with a suggested layout for constucting the tester on stripboard, and photographs of a built Decoder Tester (as shown below) is available for download.


DCC Decoder Tester - Version 2


 Top of Page




DCC Track Monitor

This simple device shows you whether you have DCC power and signal on your track. It can either be permanently wired in place at some suitable point on the layout, or built with flying leads attached to the ends of the 270 ohm resistors, and used to check different sections of the track as required. Any convenient type of light-emitting diode can be used, but both resistors should have 0.5 watt rating.

DCC Track Monitor - Schematic

Both LEDs will light when DCC is present on the track, but only one LED will be lit, depending on polarity, if straight DC is present.


 Top of Page




A-STILE - the A-TRACK Standalone Tool for Item List Editing

This is a utility program for the Atari XL/XE range of computers which is designed to complement the A-TRACK software. A-TRACK implements the NMRA Digital Command Control (DCC) system for the operation of model railroads.

The operation of A-TRACK is based around the use of an Item List in which each Item contains a description and operational parameters for one of the locomotives, consists, or accessories to be controlled on the model railroad layout. The user can view the Item List and select any individual Item in order to control it or to amend its operational parameters. Item Lists are loaded from disk and, when updated, can be saved back to disk for future use. This ability is a major advantage of A-TRACK over current commercial DCC systems, where the operating characteristics of your locomotives are stored within the equipment itself, and there is generally no provision for maintaining a back-up copy of all the parameters.

However, each Item List may only contain a maximum of 64 Items and, although use of the editing facilities in A-TRACK does provide some scope for adding, deleting, and moving Items from one Item List to another, the limit of 64 Items can prove restrictive when trying to handle the full roster of locomotives in a Club, for example.

A-STILE provides a more flexible set of Item List editing facilities and the ability to handle Lists containing up to 128 Items on a standard Atari 800XL computer, 640 Items on a 130XE, and more than 1600 Items on any Atari machine with a 256KB memory extension. Item Lists can be merged, Items sorted and edited, and then saved selectively to smaller Lists which can be used with A-TRACK to give you, for example, the right set of Items you need for a particular operating session. A-STILE incorporates all the smart editing features that I had originally intended to incorporate in A-TRACK but had to leave out due to limited Atari computer memory space.

A-STILE also allows you to print a hard copy, on an attached printer, of any Item List or of the operational parameters of any selected individual Item. Although the program incorporates facilities to edit, adjust, save, and print locomotive operational parameters, it cannot program them directly into the actual locomotive decoder. For this you have to transfer the Item details to A-TRACK and use its on-track programming facilities through the DIU hardware.

Further details of A-STILE can be found within the User Guide which is available for download.


 Top of Page




Copyright © JT Chamberlain 2004-2013  All rights reserved

All trademarks and logos used in these pages are the property of their respective holders

Page Last Updated  11 November 2013