I've been working on Arduino-based control system for several years. In my setup the Arduino:
- Reads block occupancy sensors
- Controls layout signals
- Identifies locomotives on the layout with RFID
- Interfaces with the Legacy command base and the DCS TIU
- Provides fully automated multiple locomotive running (if desired)
- Interfaces with JMRI running on a computer to provide an interactive panel controlling layout switches, accessories, and operating cars.
The Arduino (a Mega in this case) is the board in the middle of the picture. The other two boards are ones I designed for block occupancy sensing and a 64-line I/O expander:
The control panel is implemented on a computer with a touchscreen, running the open-source JMRI software. It sends commands to the Arduino, which passes them on to the Legacy base: