What is Railroad Automation?
Railroad Automation started out in 2002 as a project I gave myself to quickly get up to speed on what was, at the time, Microsoft’s new .NET platform. Combine that with my love for DCC (Digital Command Control) model railroads and the application grew to become a full featured toy box for model railroads based on Digitrax’s Loconet network. Over the years as the .NET feature set has evolved, I have been able to add many interesting features to the application both as a learning tool and because it made the application that much more fun to operate.

I found that other model railroad DCC solutions available suffered from one or more of these problems which I wished to improve upon: un-user friendly, antiquated, and sometimes downright ugly UIs, closed and not componentized, stiff and un-programmable. My goal was to provide prototypical model railroad command and control utilizing modern technologies and providing a great deal of flexibility for third party developers or tinkerers. The latter was achieved by breaking the application into distinct layers so consumers can choose the level of usability vs. flexibility they require.
Component Stack
Element File Namespace Description
Loconet API RRAutoLib.dll RRAutoLib.Loconet The .NET library providing basic packet communication to/from Loconet.
Automation API RRAutoLib.dll RRAutoLib.CTC A higher level .NET library which is a Loconet library consumer; engine for Centralized Traffic Control.
Railroad Automation Application RRAuto.exe not exposed The WPF application that consumes both libraries wrapping them with a user friendly UI. Both libraries are also exposed through the scripting interface from within the application.
API Hierarchy
Features
In current version:
  • Real time slot inspector with purging
  • Loconet packet traffic inspector
  • Full featured LocoIO programmer
  • DCC decoder programmer
  • Multiple throttle control
  • Editable vector based switchboard display
  • Supports virtual objects such as: Tracks, Turnouts,
    Blocks, Routes, Sensors, Signals, Accessories
  • Event Binding and Scripting
  • Speech recognition control (Vista and above only)
For future versions:
  • Multi-track command sequencing
  • Signaling based on routes
  • Lines and Successors
  • Quadratic speed acceleration/deceleration curves
  • Speed tables
  • Virtual positioning
  • Dynamic brake distances
  • Best pathway finding with gridlock prevention
  • Early resource release
  • Automatic throttle operations
Screenshot
Screenshot (Click for larger image)
Downloads and Resources
Railroad Automation v2.0 is now complete. The UI has been completely rewritten in WPF and the API now supports both Win Forms and WPF. I recommend using the new version especially if starting a new layout as the file format is not compatible with v1.x.
Please send bugs or requests to Perecli@dslextreme.com.


Build v2.0.0.166 - Released 02/03/10

Launch - Railroad Automation ClickOnce deployment.

Download - Railroad Automation sample layout file.

View - Railroad Automation class library documentation.

Download - Railroad Automation standalone DLL library and VS2008 sample projects. (for developers)


Build v1.1.26 (depricated)

Download - Railroad Automation standard .MSI installer.


Other References:

Download - Free copy of Visual Studio 2008 Express.

Loconet Checker - Application built on top of this Loconet API for management, configuration, and monitoring your Digitrax devices. This is a great utility, written by Stefan Trachsler.