Digital Command Control (DCC) is a scheme for controlling locomotives on a model railroad layout. It allows more than one locomotive to occupy the same electrical section of track. It allows for multiple operators to control multiple locomotives simultaneously, even in the same block (electrical division), which in analog (or DC power) is difficult at best, if not impossible.
What It Does: DCC puts digital control information into the electrical power. I'll call this the DCC signal, although its both power and control information. The DCC signal is put on the model railroad's tracks. Then DCC "mobile decoders" in locomotives on the tracks use the DCC signal to power and control their locomotive's speed, direction, and lights. "Stationary decoders" may also be connected to operate the track's turnouts and other accessories.
How It Works: The user operates a throttle or "cab" equipped with a numeric keypad and other control buttons. Information from the throttle is sent to a DCC "command station" which converts it into DCC control information. This DCC control information is then fed to a "booster" which uses it to create the DCC signal and feed it to the tracks.
The DCC standards specify voltage levels, pulse durations, and digital information formats. This means that a decoder from any manufacturer will respond to commands and programming signals from DCC systems made by any manufacturer.
Connection of DCC control system components has been left up to the individual manufacturers. Unfortunately this means that throttles, command stations, and boosters from different manufacturers aren't usually compatible.
Sound: Some manufacturers offer "sound decoders". In addition to implementing all the standard DCC locomotive control functions, these decoders are connected to a small audio speaker that play locomotive sounds. Diesel locomotives play a diesel motor hum which changes pitch relative to engine speed. Steam locomotives emit the characteristic chuff sounds at speed appropriate rates. Brakes squeal and valves hiss. High end sound decoders feature programmable sound tables. Using a computer equipped with proprietary sound decoder programming software, and interfaced to the DCC controller, users of high-end sound decoders may customize the sounds played by their locomotives.
Control Execution: Each locomotive on the track layout is equipped with a uniquely addressed DCC mobile decoder. Using a throttle, the operator can select any locomotive on the track by its address and alter its speed, direction, lighting, and other features. DCC allows multiple throttles to control different locomotives simultaneously. Unselected locomotives continue running at their last settings. The brand and model of command station determines how many locomotives may be run simultaneously on your layout.
The DCC decoder has a power circuit that converts the DCC power signal into DC power for the motor and lights. The decoder also has digital logic which uses the power signal information to control the locomotive.
Decoder Programming: Decoder programming has evolved a bit since the introduction of DCC. Originally locomotives could only be programmed on a "programming track". DCC controllers have special terminals for connecting a programming track. The locomotive cannot run on the programming track, it can only be programmed there.
Decoders are configured by setting "configuration variables", or CVs. Today some decoders allow CV values to be programmed while the train is running on the main track. The one exception is that the CV values specifying the locomotive's unique address cannot be changed while running; addresses can only be changed on the programming track.
Decoder Addressing: Most decoders are shipped with their locomotive address set to 3. Each locomotive on a layout must have a unique address, so new DCC equipped locomotives and those that have just had decoders installed need their addresses reprogrammed. Many modelers program a locomotive's address to the locomotive's road number, the number painted on the locomotive itself.
Programming addresses can only be done when the locomotive is on a programming track. This is because the programming signal would change the addresses of all locomotives on your track if you didn't isolate the locomotive you want to program on the programming track.