DCC Basics: Control Systems

In a DCC layout, something has to send commands to the decoders mounted in the locomotives, and that or some other system optionally also has to manage stationary decoders (such as those controlling turnout switches) and receive information back from trains or other devices. In many layouts, these functions are separated with more advanced features being performed on a computer. That same system can do other things as well.

Command Station

In DCC, the command station is the functional element that converts information about what the train is to do into DCC data that can be sent over the rails to the decoder. The command station function is usually integrated with a Power Station in a single box. A Power Station mixes the DCC data control signal with power to actually run the trains. Separate Power Stations (called Boosters) are also sold. And there are some solutions which separate the command and power functions. A command station must include either a throttle or a way to connect one or more throttle to it. Many use a Control Bus to connect multiple throttles.

Example 1: a simple DCC command station, Digitrax’s Zephyr, integrates a throttle, command station and 3 Amp power station in one case, while including a “power station interface” and control bus via a pair of loconet connections. On it’s own, it’s a complete solution. If more power is needed, additional power stations can be added (and those don’t even need to come from Digitrax since part of the NMRA standard allows for interoperability, although a minor amount of wiring skill is needed.

Example 2: a computer equipped with the USB “Sprog II” and appropriate software, such as JMRI, allows the computer, and some smartphones, to act as the throttle and the computer/Sprog combination as both command and a small 1 Amp power station. Although intended for benchtop programming of DCC decoders, this will work as a simple system for one train (possibly a couple in N-scale). If more power is needed later external power stations can be connected to the Sprog (documentation is thin on this topic, but it’s very likely they’re using the same standard approach as both Digitrax and Lenz do, and any booster could be connected).

A command station doesn’t just run trains. Most also support throttles that have some degree of control for stationary decoders, typically designed to allow someone running a train to throw a turnout switch from their throttle by entering its number and pushing a button. Command stations may also incorporate more or less sophisticated decoder programming capabilities or other features.


Sending commands isn’t the only control activity. With stationary decoders, keeping track of their state may be desirable: for example, to create a dispatcher’s panel showing which turnouts are thrown. There are also more complex feedback systems, such as block occupancy detectors and decoder status reporting systems.

For most of these things, a simple command station is of limited utility (although some European systems like the ESU ECoS pack a lot of functionality into the command station). What is really needed is a computer and a way to connect the computer to the control bus being used to interface to the devices. For most modern computers a USB interface is used, although some older ones used serial ports.

The control bus depends on the equipment used, and doesn’t have to be the same as the bus used with the command station for hand-held throttles. For example, Digitrax’s Loconet can be used with their occupancy detectors and other systems even if the command station doesn’t support LocoNet. Similarly, Lenz’s XpressNet can be used to communicate with RailComm detectors even if the command station does not support XpressNet (there’s a small “gotcha” with RailComm, noted below).

I’ll cover both Control Bus options and Detection systems in more detail, but the following provides a brief overview of their capabilities.

Cab, Feedback and Control Busses

A system used to tied multiple devices together with one set of wires is called a bus. Originally these were used simply to connect hand-held throttles to DC power packs, and were called Cab Bus systems. These worked in one direction (from throttle to power pack). These were eventually elaborated to allow control of other devices, like turnouts. Then similar systems were developed that could be used to report back things like the occupancy of a section of track. These were called Feedback Bus systems. Finally, as electronics became cheaper, more complex systems were developed that did both, known as Control Bus systems.

Which of these you use most often depends on the DCC command station (or other train-running system) you chose. But often you can mix multiple systems, particularly if you have a computer. Of course, having multiple of them defeats the purpose of simplifying everything to one set of wires. Ideally there’s be just one, and that’s the future promise of what the NMRA is doing with NMRAnet (recently renamed Layout Command Control, or LCC), but it’s not quite there yet.

Occupancy Detection

The simplest form of feedback is occupancy detection. You connect the detector between one of the DCC bus wires and the rail it would normally connect to (meaning it’s in the middle of the feeder) and isolate that rail from adjacent ones. When a train is on the connected section of track, the power it uses flows through the detector, which reports “I’m occupied”. If there’s no train, there’s no power use, and the detector reports “I’m not occupied”. Occupancy detectors can be quite simple, although unless all you want is a red light on a physical panel some more complex system to report their status back to the computer or command station is required (i.e., either a feedback bus or a control bus).

Decoder Transmission

A more sophisticated approach to detecting trains is called Decoder Transmission, and it allows the decoder to send information back over the rails, either to the command station or to a detector through which is routed power for a section of the layout (so you can know where the decoder is, as well as what it’s doing). Decoder transmission can be used by decoders that provide tracking of fuel or water levels (some decoders will stop the train if a fuel/water level is set and goes to zero). Or it can be used in conjunction with occupancy detection to say “I am train 2137” to the detector, which can then report “I’m occupied by train 2137”.