Digitrax Decoder Lock CVs 15 & 16

 

DCC users sometimes wish to install more than one decoder in a single locomotive and have them work together from the same commands sent to one mobile decoder address.  One example of this is using separate decoders for motor control and sound.  Because these decoders may need to have their CVs configured separately, a mechanism is needed to communicate with only one decoder at a time during programming without affecting the programming in the other decoder/s.  Digitrax calls this the Decoder Lock feature.

 

This mechanism must be able to:

1) Perform Service mode and Operations mode programming on a specific decoder, with no need to physically disconnect other decoders with the same address in the same locomotive.

2) Determine which individual decoder is to be programmed, without disassembly, and despite multiple decoders being present.

3) Work with existing DCC control systems and programmers without modification.

 

In the fall of 2001 Digitrax, Inc. followed the NMRA DCC Working Group’s procedure for requesting authorization for use of reserved CVs 15, 16, & 47 for experimentation and development of a method of being able to individually program CVs in one of a group of decoders installed in the same locomotive using the same mobile decoder address without affecting the programming in any of the other decoders in the group. 

 

This request was granted by Brian Barnt, Committee Chairman.  This request was granted with the understanding that the implementation would be evaluated and results reported back to the group in the form of a proposal within 2 years.  Subsequently, Digitrax evaluated and tested several methods for implementing this feature.  Digitrax solicited suggestions from other DCC manufacturers, dealers and end-users and incorporated their input into the final design.

 

Digitrax included the decoder lock feature in all Series 3 decoders released beginning in late 2001 so that it could be field tested and evaluated by interested parties.  In our opinion, enough field testing has now been done to prove the merits of this approach.  This is based on our experience with real products and real customers in the field over an extended period of time, or about 18 months.

 

This proposal has been submitted to the NMRA DCC Working Group for consideration and adoption as an RP.

 

 

Proposal Made to NMRA DCC Working Group:

 

CV16 can be programmed to a value from 0 to 7 inclusive. This is called the "ID number". This value identifies a single decoder, so a unique value must be assigned to each decoder in a particular locomotive.  Because most users will use this mechanism with decoders that provide different functions, the recommended coding is:

 

   0: Reset value, as shipped

 

   1: Motor decoder

 

   2: Sound decoder

 

   3: Function-only decoder (e.g. for additional lights)

 

CV15 is used to select the target decoder that will respond to programming commands.  When the values in CV15 and CV16 are equal, all CVs in the target decoder can be programmed.  When the values in CV15 and CV16 are not equal, only CV15 can be programmed.

 

Manufacturers may want to provide a bit in a CV to enable/disable this feature.  Digitrax uses CV54 bit 6=1 to disable the decoder lock feature.  This is a manufacturer specific CV.  It would be useful for a bit in CV47 to be used as the enable/disable control for the decoder lock feature. 

 

Note that a command to reset the decoder to factory default CV values (CV08=08) must not be acted upon unless the CV15 and CV16 values are equal.  This prevents the user from accidentally resetting multiple decoders at the same time, and losing the ability to separately address them for programming purposes.

 

Implementation Specifics:

 

Note that if the user is installing only one decoder in a locomotive, there is no need to modify the default values of zero in CV15 and CV16.

 

To configure unlocked decoders at installation:

 

Each decoder is shipped from the factory unlocked with both CV15 & CV16 programmed to a value of 0.   

 

Before installing each unlocked decoder in the locomotive:

 

a)     Connect the target decoder to the programming track all by itself

 

b)     Optional: Write a value of 08 to CV08 to ensure CV15 and CV16 are both zero

 

c)     Optional: If desired, read CV15 to confirm that the decoder is unlocked.  (This should a read a value of 0)

 

d)     Program CV values desired into any CVs in the target decoder. 

 

e)     When you are finished programming the CVs, lock the decoder by writing CV16 to the desired ID number, for example 02 for a sound decoder.  This step locks the target decoder to ID 02.

 

f)      Disconnect the target decoder from the programming track and install it in the locomotive

 

g)     Repeat in turn for each decoder to be installed in the locomotive.

 

Note that this decoder lock method can be performed even when only a write-only programming method is available. Also, it is possible to use a “legacy” non-lock version decoder along with new lock capable decoder(s).  In this case, program the decoders with the lock feature first, locking each one when programming is complete, and leave the non-lockable decoder to be programmed last.

 

To access a decoder after installation:

 

a)      When you want to program CVs in the target decoder with ID XX again, unlock it by programming CV15 to match the ID XX programmed in CV16.  In the case of the example decoder, program CV15 to 02.

 

b)     Once the decoder is unlocked, program CVs as desired.

 

c)     When programming is finished, lock the decoder by programming CV15 to 0.

 

To identify the decoder(s) present in a locomotive:

 

    a) Write a 0 to CV15

  

    b) Attempt to read a 0 from CV16.

  

    c) If no acknowledge is received, there is no decoder with ID 0.

        If an acknowledge is received, a decoder with ID 0 exists. 

      

    Repeat this process for ID 1 through 7 to check for those IDs.

 

Because the ID values are low, a successful read is quite fast.  An unsuccessful read, i.e. when the decoder is not present, will take some time on many existing command stations, but eventually give an answer.  This can be made faster in the future by having command

stations attempt to read just the expected value, instead of 0 to 255, in the absence of an acknowledge.

Return to Digitrax Home Page

 

This page, and all contents, are Copyright (C) 2003 by Digitrax, Inc., Norcross, GA, USA.

Page updated 05-29-03