2008 NMRA Convention - Anaheim. California logo
DCC

Topic 0307122 - Service Mode Decoder Lock Proposal

September 6, 2004

This is now planned to go into RP 9.2.3 as an appendix. A draft is available, along with a background note.

Original proposal

Bernd Lenz, on behalf of a new manufacturer, is proposing an additional Service Mode instruction to prevent the programming of decoders in low-end systems where there is no programming track.  Using this method would eliminate the problem of re-programming every decoder on the layout to the same address. This proposal also eliminates a conflict between RP-9.2.1 and RP-9.2.3.

The service mode instruction (0xF9) would be modified to match the format defined in RP-9.2.1.

RP-9.2.3, Appendix A defines the 0xF9 command as follows:

long-preamble 0 AAAAAAAA 11111001 0 EEEEEEEE  1

RP-9.2.1 defines all Configuration Variable access instructions as having the overall format:

preamble 0 AAAAAAAA 0 1111CCCC 0 DDDDDDDD 0 EEEEEEEE 1

To resolve both the problem and the document conflict, Bernd proposes the following broadcast version of the packet:

Upon receiving an 0xF9 command, a decoder which implements this feature will check it’s short address against the address contained in the packet (see below).  If the address does not match the address in the packet, the decoder will ignore further service mode commands (even after a power cycle).

If the decoder receives any packet that is not a valid service mode packet, it will stop ignoring service mode packets.

Existing decoders that implement the existing 0xF9 would reject the packet because the checksum will not match.

The proposed sequence of events would be:

1. <User selects an existing locomotive address & enters programming mode>

2. The system broadcasts the 0xF9 instruction along with the address entered, and turns off power to the track.

3. The command station indicates that it is ready for a new locomotive to be placed on the track, or that an existing locomotive can be re-programmed.

4. <User places new locomotive on the track.>

5. <User selects new address to program (or reprogram) the locomotive to.>

6. The command station sends the normal service mode sequence to program the address.

The format of the instruction is:

1111111111111 0 00000000 0 11111001 0 0aaaaaaa 0 EEEEEEEE 1

where:

aaaaaaa - short address of a decoder to be programmed

EEEEEEEE - Error Byte