DCC decoder building remains fun… I spent at least five hours on an issues that was caused by one standard (RCN-214) saying “always set this bit”, while another older standard (NMRA S 9.2.1) said “sometimes set this bit”, and it turns out the command station that I have would simply never set this bit.
Specifically, it’s the “C” bit (bit 3 of the second byte) of the address for operations mode programming for basic accessory decoders. That took me way too long to figure out. My tip for people trying to build their own DCC decoders: Use an Arduino to output DCC signals to serial (or a small OLED screen) and read what is actually being sent over the wire (ignore idle packets), you won’t believe how much it helps.
And if you clicked the links, you may have realised that the newer standard is only available in german while the older standard, created by a completely different organisation, is only available in english. If you want, there is also a third organisation that also publishes standards for this, in german, french and rarely english. This third organisation, MOROP, seems to have realised that there’s no point in them trying to define the same thing again, so these days their standards documents start with “actually read these other standards by these other guys instead”, which is probably for the best. But the net effect is that if you want to build your own DCC decoder, you can mostly get by with knowing only either english or german… up to a point. Admittedly a fairly advanced point, the things only start to diverge once PoM and RailCom get into play, but still. It’s all a big ball of weird.














