model-railway-signalling

A model railway signalling system written in Python for the Raspberry Pi. Can be used with the Pi-SPROG command station for full DCC control of points and signals. Also supports train detection via the GPIO ports.

GPL-2.0 License

Downloads
738
Stars
13
Committers
1

Bot releases are visible (Hide)

model-railway-signalling - Release 4.5.0 - Schematic Routes Feature Latest Release

Published by johnrm174 2 months ago

New User Focussed Features:

  • Schematic Route Buttons Feature:

    • 'One click' select/deselect of routes, changing all points and signals as required
    • Point and signal changes can be instantaneous or sequenced with a user-specified time delay
    • Once successfully set up, routes can be highlighted on the schematic in user-defined colours
    • Automatic clear-down of highlighting if routes are invalidated (e.g. point or signal changes)
    • Track-sensors can be used to automatically de-select routes when the trains have cleared the routes
    • Interlocking is preserved - If a route isn't possible the button will be disabled (with a tooltip)
  • Removed constraint on interlocking with conflicting signals - more than 4 signals can now be specified

    • The Signal Configuration Window used to be 'fixed' at 4 conflicting signals per route
    • This now uses a new UI element where additional rows can be added/deleted as required

For this release, I'd specifically welcome feedback on the new schematic routes feature

model-railway-signalling - Release 4.4.0

Published by johnrm174 3 months ago

New User-focused features:

  • Support for 'complex trackwork': single slips, double slips, scissor crossovers, trap points, Y-points and 3-way points can now be represented on the schematic and incorporated within your layout signalling scheme.
  • The position of point control buttons can be 'tweaked' via the UI to de-conflict with other schematic objects when developing complex and/or 'busy' track schematics

Behind the scenes changes:

  • Loads of tech-debt addressed in the library functions to simplify the structure of the code and improve consistency across the wider code base
  • New library module tests added to increase code coverage of the library functions
model-railway-signalling - Release 4.3.0

Published by johnrm174 4 months ago

New User Features in Release 4.3.0:

  • 'Y' points can now be created on the schematic (select in the point configuration dialog
  • Improvements to the 'look' of signal objects on the schematic
  • Bugfix to 'Track Sensor' selection when toggling modes

Other updates in Release 4.3.0:

  • Button positioning for signals and points now takes into account lib.common.fontsize - to support possible future configuration of button sizes via the editor (please let me know if this feature would be useful to you)
  • Track section library functions re-factored to simplify code across library and editor
  • Signals library functions re-factored to simplify code and support maintainability
  • DCC Model Railway Signalling logo added to the main menubar
  • System test coverage extended and improved
model-railway-signalling - Release 4.2.0

Published by johnrm174 6 months ago

Release 4.2.0:

  • New 'Track Sensors' feature - extends track occupancy into non-signalled areas such as goods yards and MPDs.
  • Improved 'signal passed' logic - will now detect (and warn the user about) Signal Passed at Danger events.
  • New DCC Mappings utility - to display all mapped DCC addresses and the signals/points they are assigned to.
  • Improved DCC validation - Prevents DCC addresses being mapped if already assigned to another signal or point.
  • Improved GPIO Sensor Settings window - now includes a back reference to the mapped Signals / 'Track sensors'.
  • GPIO library updated - GPIO inputs are now fully functional on the most recent versions of RPi-OS/Python.
  • A new Public API - to enable integration of your own custom layout interfaces via the MQTT network.
model-railway-signalling - Release 4.1.0

Published by johnrm174 9 months ago

Changes for Release 4.1.0:

  1. Hidden files and folders now supressed in file load and save dialogs
  2. Network heartbeats and monitering to check the status of other network nodes
  3. Ability to trigger application shutdown of connected network nodes on application exit
  4. Support for the Pi-SPROG3 V2 DCC Programmer / Controller (higher baud rate)
  5. Quickstart guide updated to reflect settings changes for the Pi-SPROG3 V2
  6. BREAKING CHANGE - GPIO Ports 16 and 17 no longer selectable for track sensors
  7. Minor bugfixes and application enhancements to improve the overall user experience
model-railway-signalling - Release 4.0.0

Published by johnrm174 10 months ago

Release 4.0.0 is now 'complete' will all the main features envisaged at the start of the development.

Specific enhancements for Release 4.0.0 include:

  • Application documentation in the form of a 'quick-start' guide (downloadable PDF)
  • 'Arrow keys' will 'nudge' objects in edit mode (or scroll canvas if nothing selected)
  • 'Escape' key can be used to cancel 'in progress' object moves and area selections
  • 'Cntl-r' will reset the main window to fit the specified canvas size (after user re-sizing)
  • 'Cntl-m' is now the keyboard shortcut for toggling Edit/Run mode (for consistency)
  • Improvements to layout load - errors/warnings simplified (no more spam messages)
  • Text boxes - Ability to add/edit text boxes on the schematic to annotate the layout
  • Canvas configuration - Ability to change the grid size and toggle 'snap-to-grid'
  • Toggle signal automation - Be an active signalman or just watch the trains go by
  • Signals can be overridden (to DANGER) on up to 3 track sections ahead
  • Signals can be interlocked with up to 3 occupied track sections ahead
  • Basic DCC Programming - 'one touch' and Configuration Variable (CV) programming
  • Consolidation of library functions (deprecated library API functions removed)
  • Minor bugfixes and application enhancements to improve the overall user experience
model-railway-signalling - Release 3.6.0

Published by johnrm174 12 months ago

Completion of MQTT networking functions (to include publish and subscribe for Track sensors)
Numerous minor bugfixes and enhancements to (hopefully) improve the overall user experience)
Consolidation of library functions - resulting in some API functions being DEPRECATED

model-railway-signalling - Release 3.5.0

Published by johnrm174 about 1 year ago

What's new in Release 3.5:

MQTT networking - large layouts with multiple signalling areas can be split across multiple platforms

  • Simple configuration for connecting to a local (you'll have to stand-up) or internet-based MQTT broker
  • Publish and subscribe to signals, track sections and block instruments from each application instance
  • Publish and subscribe to DCC feeds - allows multiple applications to share the same R-Pi/Pi-SPROG
model-railway-signalling - Release 3.4.1

Published by johnrm174 over 1 year ago

What's new in Release 3.4.1:

  • Minor bug fixes and enabling work for MQTT networking
  • Improvements to the operation of single line block instruments
  • Some block instrument library API functions have been DEPRECATED (see PUBLIC_API.md)
model-railway-signalling - Release 3.4.0

Published by johnrm174 over 1 year ago

What's New in Release 3.4.0:

  • Point and line colour selections - to enable colour coding of routes
  • Line end-style selections - end-stops and arrow styles can now be specified
  • Help text is now displayed in a scrollable window (so it can be extended)
  • Enhanced error/warning reporting via popups - reduced reliance on logs
  • Layout 'info' function (under Help) allows you to add notes for your layout
  • Fixed issue when selecting objects if Canvas is scrolled within the main window
  • Various window geometry improvements to keep key UI elements visible on resizing
  • Track section occupancy logic corrected for passing shunt-ahead ground signals
  • Bugfix to correctly display interlocked signals on Block Instruments 'interlocking' tab
  • Bugfix to fit window to schematic following load of a new schematic
  • Enabling work for future editor MQTT networking configuration functions
  • Note that as a result of this some of the current MQTT library functions have been DEPRECATED
model-railway-signalling - Release 3.3.0

Published by johnrm174 over 1 year ago

Main updates for Release 3.3.0 are:

  1. Tidy up of imports
  2. Refactor of menubar and main editor modules
  3. Popup error messages (to reduce reliance on logs)
  4. Block instruments - configuration and interlocking
  5. Improved/expanded system tests
  6. Various minor bugfixes
model-railway-signalling - Release 3.2.0

Published by johnrm174 over 1 year ago

Main focus of this release has been improving application stability and robustness via system tests. Also general refactoring to improve code quality. Other features added:

  1. Ability to specify a layout file (to be loaded at startup) on the command line
  2. Function to reset layout state (clear down the layout into its default state)
  3. Undo and Redo functions added for schematic editing
  4. Override distant signals to display caution if any home signals ahead are at danger

As always - suggestions for future releases gratefully appreciated

model-railway-signalling - Release 3.1.0

Published by johnrm174 almost 2 years ago

Enhancements to baseline editor functionality to support track sections and signalling automation
Additional configuration examples also added to demonstrate the interlocking and automation functions
Deprecated library functions removed to tidy up the code base

model-railway-signalling - Release 3.0.0 - Layout Editor MVP

Published by johnrm174 over 2 years ago

Initial release of MVP Layout Editor functionality to enable signalling schemes to be created and modified without the need to write code (all configuration is done via the UI).

What's supported in Version 3.0.0:

  • Schematic editing - points, signals and lines
  • SPROG interface - DCC control of signals and points
  • Basic interlocking of signals and points
  • Save and load of layout schematic and state

What's coming next:

  • Interlocking - of distant signals with the home signals ahead
  • Schematic editing - Track sections and block instruments
  • Automation - sensor events and integration with track sections and signals
  • Application documentation
  • MQTT networking

Any bug reports and feedback you may have would be gratefully appreciated - specifically:

  • What aspects are intuitive? What aspects aren't?
  • What aspects do you particularly like?
  • What aspects particularly irritate you?
  • what features would you like to see next?
model-railway-signalling - Release 2.6.3

Published by johnrm174 over 2 years ago

Enabling functions to support schematic editor (in development)

model-railway-signalling - Release 2.6.2

Published by johnrm174 over 2 years ago

  1. Added support for Block Instruments (with networking)
  2. Tech debt - major refactor of file interface to make more generic
  3. Tech debt - major refactor of MQTT interface to make more generic
model-railway-signalling - Release 2.5.0

Published by johnrm174 almost 3 years ago

Added the ability to Save and Load layout state - enabling point, signal and section settings to be preserved between running sessions

model-railway-signalling - Release 2.4.0

Published by johnrm174 almost 3 years ago

  1. Enhancements to Track Occupancy Sections enabling users to enter/edit a train descripyor (e.g. a Train Headcode) and then pass these descriptors between sections as the train proceeds across the schematic

  2. Addition of MQTT broker networking functions allowing different applications (potentially running on different computers) to share information about the current state of signals and track occupancy sections and "signal passed" events. This enables collaborative signalling schemes to be developed by splitting a layout into different signalling sections. Functions are also provided to publish/subscribe to the DCC command feeds from different applications - enabling a single host (with a Pi-Sprog) to act as the DCC command station for all connected applications.

model-railway-signalling - Release 2.3.0 - semaphore improvements

Published by johnrm174 about 3 years ago

Improvements to the operation of semaphore signals
Improved test coverage

model-railway-signalling - Release 2.2.0

Published by johnrm174 about 3 years ago

Refactored to consolidate duplicate code and thread safe improvements

Package Rankings
Top 18.97% on Pypi.org
Related Projects