I ran into my buddy Kevin a few years back and he was thinking the same thing— so I drew up a quick circuit for him to try:
My buddy Kevin beat me to the punch by creating a DCC_Decoder library and DCC_Monitor example sketch:
Fast forward a few years, and I managed to design a shield version of the circuit when I had some vacation time stacked up. A few weeks ago I got my PCBs and spent about an hour this weekend putting together the first prototype:
After some fumbling with the attachInterrupt API (I'm using a Leonardo), I'm now decoding DCC packets: