JMRI: Multi-Decoder Control

Originally, DCC did not provide a convenient way to program configuration values (CVs) when you have more than one decoder installed in a locomotive. For example, if you have separate decoders to control the motor and provide sound, and they both use the same CV locations, programming one decoder would change the settings on the other, usually in an undesired way.

There are various tricks that can be used with long and short addresses and programming on the main, but they're not entirely satisfactory.

https://www.nmra.org/dcc-working-group https://www.nmra.org/sites/default/files/standards/sandrp/pdf/s-9.2.2_decoder_cvs_2012.07.pdf

Digitrax proposed a method for dealing with this to the DCC Working Group. This was accepted by the NMRA for inclusion in " Configuration Variables For Digital Command Control, All Scales, and has since been adopted by many manufacturers.

The method uses CV15 and CV16 to control writing and reading CV values. Before the decoders are installed in the locomotive, each one has a specific value programmed into CV16. (The recommended values are 1 for the motor decoder, 2 for a sound decoder, 3 for a function-only decoder, and 4-7 for other uses; decoders are supposed to ship with a value of 0 in both CV15 and CV16) A decoder will only do read and write operations if the values in CV15 and CV16 are the same, with the exception that you can always write CV15. In effect, CV16 is a lock and CV15 is the key.

Dual Decoder Window DecoderPro has a "Multi-Decoder Control" to make use of this feature easier. You can open it from the "Programmers" selection in the "Tools" menu. This opens a window, which you can also see on the right of this page.

The top section of the window consists of eight radio buttons. Clicking the buttons numbered 0 to 6 will unlock the decoder with the corresponding number in it's lock CV (CV16). DecoderPro then reads back the value in CV16 to confirm that the decoder has successfully unlocked.

Normally, one clicks the button for the decoder you want to program, and them moves over to the main DecoderPro window to read and write values.

The "Legacy" button writes a 7 to CV15, which is another special case. Many decoders, especially older models, do not have this locking mechanism present. In some cases, most specifically a Digitrax FX3 or later decoder and an early SoundTraxx decoder, it's possible to emulate the lock using sequential writing of CVs. Clicking the "Legacy" button activates. Unfortunately, it's not an entirely reliable method.

In the middle section are there buttons that can do more complicated operations.

The "Search" button sequentially works through the possible addresses, marking those decoder addresses that are found to be present.

"Reset" works through the possible combinations to unlock a decoder that has been inadvertantly locked. This should only be used if you have just one decoder in the locomotive. If you have more than one, it will unlock all of them, which may cause confusion later.

"Init DH163 + Soundtraxx" configures the "Legacy" mode discussed above.

Below that, the program displays status messages.

The bottom section allows you to directly set the programming mode in use. If you're using ops-mode programming (programming on the main), you wil also need to specify the address of the locomotive being programmed.