DCC Decoder Addressing

From Train Control Systems Documentation
Revision as of 01:30, 17 July 2021 by TCSDanM (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search


Overview - Decoder Addressing

When programming a decoder address, there are two address "ranges" you can program: Two-digit "Short" addresses, and Four-digit "Long" addresses. The word "digit" refers to the number of 4-bit "nibbles" used to represent the address in binary. The word "digit" does not mean there needs to be specific numbers in your address! The address type, short or long, is configurable using CV 29.

Short Addressing:

The two-digit "Short" address is stored in CV1 and has a valid range of values from 1 to 127. A value higher than 127 is invalid for short addressing. If you would like to program your locomotive with an address (such as a road number) which is greater than 127, you must use a 4-digit "Long" address. Per the NMRA spec, CV1 cannot be modified on the main via operations (OPS) mode programming; therefore, you must use a dedicated DCC programming track to make that change.

NOTE: By default, all DCC decoders ship in the two-digit "short" addressing format with a value of 3.

Programming a "Short" Address

  1. Place your locomotive/decoder onto a DCC Programming Track.
  2. Use your throttle and command station to select CV 1 for programming.
  3. Set and program the value you want your address to be.
  4. Exit the programming track and select the programmed address without any placeholder zeros.

Long Addressing:

A 4-digit "Long" address may be any address between "0000" and "9999" (*some systems actually support address above 9999). That does mean that you may have overlapping values between short and long addresses. For example, long addresses with values less than 128 are typically expressed with an asterisk (*) and/or placeholder zeroes. Since a long address uses four "digits" that means it also uses two CV's. The CV's used to set a long address are CV 17, CV 18, and CV 29.

NOTE: The default long address is 0000, which is also sometimes referred to as the "Broadcast Address."

Programming a "Long" Address

To enter a long address manually, you first need to convert the road number or other desired address number to "binary-coded decimal." This is most conveniently done using a Calculator Tool. After entering the number for the address you would like to use, program the values calculated into CV 17 and CV 18 to set the address.

After those values have been entered, you need to change the addressing type for that decoder to LONG addressing. To do this, you need to set Bit 5 of CV 29. If you have already done so, or aren't sure, first READ CV 29. If Long Addressing is not already enabled, then ADD 32 to the current value, and program the SUM into CV 29. You can also use TCS' CV 29 Calculator to determine the necessary value based on your desired configurations. Keep in mind that CV 29 is a Bitwise CV, and failure to properly modify the CV can result in other features being inadvertently modified.


Most command stations have a method of automatically entering a 4-digit "Long" address which will automatically calculate and program these values, including CV 29. You can refer to your command station user manual or manufacturer for more information. In most cases, you can program a long address with a value of less than 128 IF you add the placeholder 0's when programming. Ergo, a value of 28 would be programmed as 0-0-2-8. It is a common issue to have your command station automatically change the address type based on the number address you enter. !Warning! Not all systems support long addressing below long address 128.

NOTE: If you do mainline address programming, ANY value entered will become a long address. This is because CV 1 cannot be modified on the main.

Loss of Control or Lost Address

Question: I programmed my address but lost control of my decoder. Now it won't respond to my commands! OR My decoder powers up but I have no control! What gives?

In this situation, it is likely that a button was not pressed correctly or the programming was not completed successfully; additionally, if you programmed your address on the MAIN using OPS-mode programming, the address programmed into the decoder will ALWAYS be a long address (even if the address number was less than 128). As mentioned previously, short addresses MUST be programmed on a DCC Programming Track, and cannot be modified on the main per the NMRA standard. If you have programmed a long address that is within the short address space (0 to 127), you need to include the placeholder 0 when selecting your address. For example, long address 3 would be selected by entering "03" rather than just "3" when entering the address into your throttle. Similarly, long address 100 would be selected by entering "0100". DO NOT enter the placeholder "0" if you wish to select a decoder with a Short Address programmed.

If you have lost or scrambled your decoder address resulting in a loss of control of your decoder, TCS decoders allow for a simple resolution! By placing your locomotive on a DCC programming track, you can reprogram CV1 to a valid value in order to revert the addressing. For example, if you write a value of 3 to CV1, the decoder will revert to short addressing on the default address of 3. All TCS decoders behave in this way.

*Note for Digitrax users: Digitrax command stations do not support Long Addresses within the range of 0000 to 0128. If you have a locomotive with an address within this range, it will not operate and cannot be selected on the system. Additionally, if you attempt to program an address between 1 and 128 on the main, the programming operation will not take place or could result in a random address being programmed instead.