Skip to content
This repository has been archived by the owner on Jul 4, 2023. It is now read-only.
/ railessentials Public archive

RailEssentials is a software for controlling your Model Trains especially when ESU's ECoS 50210/50200 is used. RailEssentials provides a Track-designer, an Analyzer for automatic detection of all possible Routes between directly connected Blocks, and an Event-system (e.g. by use of S88-Feedback-Bus) for setup a fully automatic drive of all your …


MIT and 2 other licenses found

Licenses found

Notifications You must be signed in to change notification settings


Repository files navigation

RailEssentials - MIT License

Build and UnitTests Deploy Nightly

License: MIT

Buy Me A Coffee

RailwayEssentials is renamed to RailEssentials.

RailEssentials is a modern and intuitive software for creating and controling model railways. Currently, the only supported control unit is ESU's ECoS 50210/50200. The software is based on a client-server architecture, i.e the server is the brain and bridge between the control unit and any conntected webclient. The server is written in C# and .NET Framework and the client is written in JavaScript/TypeScript and can be used in Chrome, Firefox, and Vivaldi.

Table of Contents

Demonstration of RailEssentials (i.e. YouTube video, no sound)

I have created a small video of my modelrailway in my basement to demonstrate that RailEssentials just work. Just click the preview to jump directly to YouTube.

RailEssentials - Live demonstration with real hardware in my basement.

Tutorial: Welcome / First Steps

For making your first steps easier with RailEssentials, a welcome tutorial has been provided.

It is part of the Wiki Page

Daily/Nightly Builds


RailEssentials is automatically build everyday. During this build an always up-to-date Setup/Installer is generated and can be used to deploy the latest features on your personal computer. Currently, only Windows is supported, for other operating system the source must be used and build. The latest setup/installer is provided under the Releasetab: Daily Setup

  • download the Setup of your choice (e.g. Setup-20210322-4d9eb4.exe, where 20210322 stands for 22nd March 2021)
  • doubleblick the Setup and follow the instructions

Setup Screen Capture

Portable Zip-Archives

RailEssentials is automatically build everyday. The always latest version is provided under the Release tab: Daily Build

  • download the archive railessentials-dailybuild-*.zip
  • after unzip just call the included script startRailEssentials.bat

As default the workspace Basement is loaded and provided and can be used directly in simulation mode.



We do not provide any official releases yet, because the software is still under development, but we provide a Daily Build. In January'21 the RailEssentials team decided to do a full rewrite. To use this software, checkout the source, and just click "Build and Run (F5)" in VisualStudio.


Quick Start for Developer

  • install VisualStudio 2019 or the old variant VisualStudio 2017
  • clone the RailEssentials repository git clone or download the latest archive
  • open the solution railessentials.sln
  • set railessentials as Startup Project
  • click F5 or call VisualStudio Toolbar / Debug / Start Debugging

As a result the software will build and all relevant files are copied to the Output Directory, in general this is railessentials \ bin \ Debug|Release. railessentials.exe will be executed, a command prompt opens and shows some status information. If not browser opens automatially, go to your browser and open http://localhost:8081/?workspace=Basement.

Finally, you should see something like this: firstImpressionsAfterBuild

System Requirements

  • Windows 10
  • .NET Framework 4.8 or higher
  • Chrome, Firefox or Vivaldi

Bug Tracking

Have a bug or a feature request? Please open an issue here Please make sure that the same issue was not previously submitted by someone else.

Third-Party Components at Their Best

  • w2ui JavaScript UI Library for the Modern Web
  • WebSocket4Net A popular .NET WebSocket Client
  • SuperSocket SuperSocket is a light weight extensible socket application framework.
  • Newtonsoft Popular high-performance JSON framework for .NET
  • jQuery jQuery is a fast, small, and feature-rich JavaScript library.
  • jQuery colorpicker A full-featured colorpicker for jQueryUI with full theming support.
  • jQuery Boxfit Boxfit is a jQuery plugin for resizing text.
  • Contextual.js Javascript contextual menu library
  • select2 Select2 is a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results.
  • FontAwesome Get vector icons and social logos on your website with Font Awesome, the web's most popular icon set and toolkit.
  • emgucv A cross platform .Net wrapper for the Open CV image-processing library.


In the late of 2018 I wrote a book about programming the ESU's ECoS 50210.


  • ISBN: 978-1-790-36403-9
  • ASIN (Kindle): B07L4Z4MYL

The book introduces the basics of managing commands for remote control of your model railway by use of C# and .NET Framework/.net Core. The included examples and API information are all used in ecos, a software library hosted on GitHub which is completly used by RailEssentials (with few improvements and bug fixes). The source is completly merged into RailEssentials, i.e. check out the subdirectory ecoslibNet48.



  • Modern Web Frontend based on HTML5, JavaScript, Websocket-Communication
  • Frontend UI usable with Chrome, Firefox, Vivaldi, Edge on any device
  • Server-based architecture (currently the server is only running on Windows)
  • WebCam/Video support included by default for monitoring hidden yards (i.e. includes stream server and web viewer) Wiki
  • Import of Rocrail plans Wiki
  • Workspace support, to switch between different plan at any time
  • Track Designer based on modern web technology
  • Toolbox-support with drag&drop
  • Plan Item transformation directly by single clicks (i.e. move, rotate, remove)
  • Text Item support (i.e. bold, italic, underline, font size, font color)
  • Labels for Plan Items
  • Accessory can be changed directly by clicking the individual plan item at any time
  • Output/Button grouping Wiki
  • Report for Locomotives, Accessories, and Sensors Wiki, Issue #9


  • Block-based automatic mode, any train/locomotive can be controlled by a smart algorithmen and can travel between blocks without crossing routes
  • Accessory state change during AutoMode for individual routes Wiki
  • Route detection between blocks, any feasible route will be found and provided for your individual setup
  • Routes with direction are recognized
  • Route disabling/enabling on-demand
  • Block disabling/enabling on-demand


  • S88 Viewer


  • Locomotive lock/unlock
  • Locomotive direct control via mouse over controls in the plan
  • Locomotive speed curve editor (i.e. individual acceleration/deceleration)
  • Locomotive image visualization Wiki
  • Drag&Drop of Locomotives to Blocks for assignment
  • Locomotive Options for AutoMode (e.g. change of direction, different kind of trains, etc.)
  • SpeedLevel support like in RocRail (e.g. v_min is Level 1, v_mid is Level 2, v_cruise is Level 3, and v_max is Level 4) Issue #80
  • Kick Start to provide an additional nudge to start the motor during AutoMode Issue #90


  • Auto Mode of the whole model railway, work on your landscape during run of all your trains
  • Simulation Mode to test any functionality
  • Block entering visualization, see directly on which side the locomotive has entered the block and on which side it will leave the block
  • Statistics of accessory usage and when any Locomotive has been started/stopped (e.g. supports scheduled maintenance)
  • Accessory to Route weaving for changing accessory states on start/delay of Locomotive traveling Wiki
  • Lock Additional Blocks during Locomotive Traveling Wiki
  • Maintenance Mode - accessories can be set into maintenance mode and all routes which include the relevant accessories are not selected anymore Issue #79
  • Wait for Locomotives if AutoMode has stopped, i.e. finish all current journeys Issue #75
  • Drag & Drop of locomotives to assign a new block Issue #100, Wiki
  • Cleaning Robot / Cleaner mode, specific Locomotive have full access to all blocks/routes, can change direction at any time. Issue #20
  • Define Wait-period of locomotives when they reach target block of a route. Issue #107
  • Ghost Train detection Issue #104

Individual Supports for my personal needs

  • Light Control (i.e. currently hardcoded variant for my personal model railway, it is based on an invidual solution with LED-RGB-Stripes and Websocket-communication modeling repository).

Visual Impressions

Locomotive Control






WebCam/Video Surveilance for Fiddle Yards


Blocks and S88











RailEssentials is a software for controlling your Model Trains especially when ESU's ECoS 50210/50200 is used. RailEssentials provides a Track-designer, an Analyzer for automatic detection of all possible Routes between directly connected Blocks, and an Event-system (e.g. by use of S88-Feedback-Bus) for setup a fully automatic drive of all your …




MIT and 2 other licenses found

Licenses found