MyRailIO (maɪreɪlio) provides a peripheral I/O backend to model railway controllers such as JMRI, RockRail, etc. (at current only JMRI is supported).
MyRailIO provides flexible and configurable capabilities for the model railway controller to throughout the layout capture diverse types of sensors-, control multiple types of signaling masts-, diverse types of light-effects-, and maneuver actuators such as turnouts-, servos-, and solenoids.
Goal and background:
The MyRailIO project started as stealth project in 2020, although always as open source, with full visibility, and with the hope that it would eventually become a lively community contributing to it's future. The hope is that MyRailIO will bring joy and nostalgia to enthusiasts and "Do it your self" personas, fostering a sense of creativity and community through our shared passion.
Architecture:
The myRailIO decoders run on a set of cheap ESP32 micro controllers, each connected to multiple I/O satellites; All managed and supervised by a centralized management software which in principle is OS independent. The MyRailIO management software provides a Graphical User Interface for overall MyRailIO configuration-, status-, alarm-, performance metrics-, and log/event overview. Apart from a view of the current state of these metrics, the history of these metrics is stored and can be viewed with associated time-stamps for later trouble-shooting and post-mortem debugging.
The design is entirely open source and licensed under the Apache version 2.0 license (ASLv2).
You contribution of features-, code-, CI/CD-, testing-, trouble reporting and bugfixes are highly appreciated.
MyRailIO features a scalable and distributed wireless (WIFI) architecture for model train control peripherals such as:
Signal masts (any signal system supported by the Train controller)
General Light groups where several (tri-colored) pixels work together creating various light effects.
Sensors (currently only digital sensors)
Actuators (on/off, pulse, solenoid, PWM)
Special attention has been paid to scalability and extensibility.
MyRailIO can easily be extended with new Light group effects such as multiple road-work lights playing in concert, or simulation of Television ambient flicker, etc. Although it currently only integrates with the JMRI Train controller it should be straight forward to integrate with other Train controllers. Scalability is achieved by adding more MyRailIO decoders and satellites, all managed by one central MyRailIO server.
Although not redundant, the goal is to fail fast and reliably apply fail-safe measures avoiding unsafe track movements and keeping the safety as a center pillow.
Moreover, MyRailIO supports the following features:
A decoder CLI for debugging.
NTP time synchronization.
RSysLog for log aggregation and log rotation.
Statistics and performance metrics.
Alarms and alarm lists.
The alpha testing is concluded, resulting in a stable Alpha-1 release.
Release expectancy: Q4-24
Commitment: Committed
The Beta-1release will include vital feature additions, uplift to latest JMRI release, CI/CD and remote OTA upgrade capabilities.
Release expectancy: Q2-25
Commitment: Committed
First production release with a healthy community machinery, including further features, stability, etc.
Release expectancy: Q3-25
Commitment: Plan
Continuous production releases will be released quarterly, with new features and bug-fixes.
MyRailIO will be applying a single track maintenance/release policy.
That means that bugfixes will only be provided on the latest release, and not as cumulative bug-releases on previous releases.
Bug reports (PR's) should be verified on the latest stable release before reported.
Once we are on production releases, MyRailIO configurations will be supported and automatically updated for an N+4 release cadence.
Filing a bug report:
You can file your bug-reports here: Issues · jonasbjurel/myRailIO (github.com)
Filing a feature request:
You can file your feature requests here: Issues · jonasbjurel/myRailIO (github.com)
Architect and Senior Principle Engineer @ Ericsson
Founder of MyRailIO
Jonas has 30+ years of experience with mission critical system design - both hardware- software and architecture.
Jonas has a long track record with open-source projects and has served as community maintainer in OPNFV.
2024-08-11
Alpha-1 testing in progress
We are approaching the first Alpha-1 release which is scheduled for Q4-2024.
Final testing is ongoing, and a first glimpse of the documentation under the "Resource" section.
2024-08-11
Help wanted
The Satellite implementation is today based on an ICE FPGA which has reached end-of-life. This implementation needs to be rebased to something more sustainable - E.g. ESP8266.
If anyone is willing to rebase the implementation it would be really valuable.
The Satellite implementation can be found here:
jonasbjurel/genericIOSatellite
License:
Apache License, Version 2.0 and
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC BY-NC-SA 4.0)
With library- and component licenses complying to the above.