Hello alltogether, recently I ordered a bunch of D&H 10 C decoders to assemble them into a herd of locos. As I purchased a decoder tester recently, I hooked the first up to it and tried to read the adress - nothing, not a blip. Tried the next, the next after the next and so on, no reaction. I could operate them with regular main track signals, but programming was impossible. Even worse, formerly purchased DH10C performed completely normal. I guessed that Doehler&Haass has changed some firmware code. The initial feedback there was "well - a homebrew solution for the DCC controller... the error could be anything" :-( After a deepdive into the base station C++ code, long nights in front of the oscilloscope, and absorbing the NMRA standards in full, I have figured out what it was. I can imagine that others might run into the same snag, so I want to share this here with you. The culprit is the packet sequence that is used to trigger programming, e.g. in RegisterList::readCV in PacketRegister.cpp loadPacket(0,resetPacket,2,3); // NMRA recommends starting with 3 reset packets loadPacket(0,bRead,3,5); // NMRA recommends 5 verfy packets loadPacket(0,resetPacket,2,1); // forces code to wait until all repeats of bRead are completed (and decoder begins to respond) This is the original code from the BaseStation. The DH10C does not perform the acknowledgement because of the last resetPacket that is used to wait until all bRead Packets have been digested. I changed the resetPacket to another bRead Packet and all works fine. loadPacket(0,resetPacket,2,3); // NMRA recommends starting with 3 reset packets loadPacket(0,bRead,3,5); // NMRA recommends 5 verify packets loadPacket(0,bRead,3,1); // forces code to wait until all repeats of bRead are completed (and decoder begins to respond) Similar changes are necessary in the routines for WriteCVByte and WriteCVBit. So essentially this post is question and answer in one, but I hope it helps . Happy model railroading, Thomas.