Accessory decoders (at least the ones made by DCC Specialties and several other manufacturers) will not respond to Program on Main [PoM] instructions unless they are in the program mode. This is usually set by moving a jumper or similar device from a "normal" or "operate" position to a "program" position. So, if none of the accessory decoders have their jumper in the "program" position, you can send PoM instructions all day and nothing will happen. If you want to program a specific unit, move its jumper to "program" and proceed. Note that generally, you remove power, move the jumper, and then apply power.

So to program a specific unit:

  1. Remove Power to the Accessory decoder
  2. Move the Program Jumper  to "Program", 
  3. Apply power. 
  4. Use your throttle to select Program on Main (or the equivalent for your system). 
  5. Program the desired CV's and values. 
  6. Remove power. 
  7. Move the jumper back to "Run" or "Normal". 
  8. Apply power 
  9. The unit should operate with the new values you just programmed.

If you want to program two or more units to EXACTLY the same data, you can set all of them to program, and then send the instructions once. They will then all use the same new values.

Note Digitrax Users: if you are trying to program just the DCC Address of the accessory decoder, you place it in program mode and then use the SWCH command to send a c or t (either works) command. The accessory decoder sees the address, knows it is in the program mode, and stores the address as its own for further use. If you are programming CV values in the accessory decoder (such as CV63=42 to reset) THEN you use the Program on Main method. Hope this makes the Digitrax answer clearer.