JMRI: DecoderPro User Guide

How DecoderPro Identifies Decoders

To properly program a decoder, DecoderPro needs to be able to find a "definition" for the decoder. That definition specifies which CVs are understood by the decoder, what they mean, what values are valid, etc.

DecoderPro allows a user to pick which decoder model they have installed, in which case it can automatically find the right definition. But it also provides an "Ident" function which attempts to locate the right definition based on information it reads from the decoder.

Ident starts by reading the manufacturer code from CV8. The NMRA has defined a set of unique values for this CV. Since (almost) all decoders properly provide this information, DecoderPro can use it to narrow-down the list of possible definitions to just those from a particular manufacturer.

Next, DecoderPro reads the value from CV7. The NMRA has defined this as the "version" number. Unfortunately, not all manufacturers use this number in a way that provides necessary information. There are two ways that this can go wrong:

  1. Too many decoders with the same version number:

    If many different types of decoders have the same version number, and if those versions differ enough, then the version number doesn't provide enough information to pick a specific definition.

    For example, if version number 3 can be found in both a low-cost decoder with few CVs, and in a high-function decoder with lots of CVs, finding a 3 in CV7 doesn't provide enough information.

    This problem happens most often when a particular model can have a range of version numbers in CV7, and those ranges overlap from one model to another.

  2. Not enough information available about what a version number means:

    This is particularly a problem when the version number changes because new features have been added, but the model number of the decoder stays the same. For example, consider the confusion that's caused when a manufacturer adds BEMF to their XYZ123 without calling it a new model. Now we find that some XYZ123 decoders have BEMF, and some don't. Further, we find that there are two version numbers: 23 and 51, and have no official information on what the differences are. It's very hard to sort that out, and customers get very frustrated.

In addition to using the version number in CV7, DecoderPro can look at values in other, manufacturer-specific CVs to identify the decoder. This can be very powerful, as manufacturers can use their own CVs to make as much information available as desired.

Unfortunately, even those manufacturers who use additional CVs for identification information rarely make the meaning of values in those CVs publicly available. We then have to deduce what a 103 in a particular CV means, and we often get it wrong.

It's important to note that there are good business reasons for some of the things that manufacturers have done with identification information so far. For example:

Recommendations

What should a responsible manufacturer do?

Generally:

Beyond that: