My father has two trains with DCC decoders that he wants to control. It should be the most simple controller, no interfaces with computer, no settings, no programming, etc.
I needed to do some changes on the DCC++ software (Basestation-1.2.1). I added a library to handle a pushbutton (copyright Polulo). I also changed the CurrentMonitor code to provide feedback in the function if an overload has occured. SerialCommand and PacketRegister are changed to include an optional register parameter for the train functions. Some decoders lost their setting after a power dip, so the registers were needed to refresh the functions data regular. The DCCpp_Uno.ino file is changed to handle the buttons and events. The Arduino code can be downloaded from here.