DCC++ Stand Alone Controller

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.

An Arduino, motordriver board, two slider potmeters, a duo led (Red/Green), 3 pusbuttons, a reset button, a swith and some connectors. I also installed dipswitches for optional future use, but did not yet connect it.
Apart from a reset button on the back, this is it. Two buttons for direction changes, one switch to enable all lighting and functions for the two trains and a button to enable power. Power is coming from a laptop power adapter.