Skip to main content

model-railway-signalling

A fully featured DCC Command Station, with a focus on enabling prototypical operation of your model railway in terms of route setting, signal interlocking and signalling automation. Layout schematics can be be designed and configured via the UI without the need for any code or bespoke electronics. The application is primarily intended for the Raspberry Pi, but will also run on other platforms (albeit without some of the Raspberry-Pi specific interfacing functions).

  • Provides a full DCC Command station for your model railway layout:
    • Control your locos via on-screen throttles or via your tablet/smartphone.
    • Control all your DCC accessories intuitively via the on-screen schematic.
    • Includes a DCC programming utility for both 'one touch' and CV Programming.
  • Enables signalling schematics to be easily created with route lines, points and signals:
    • Supports most types of UK colour light signals, semaphore signals, and ground signals.
    • Supports complex trackwork formations such as crossovers, slips and 3-way points.
    • Get the schematic looking how you want by changing the styles of objects as required.
  • Enables intuitive and prototypical control of your DCC Accessories via the schematic:
    • Supports all standard DCC signals, points and other DCC accessory decoders.
    • Provides full interlocking of the signals and points on your layout.
    • Simply click the schematic to change the signals and points on your layout.
  • Enables full signalbox simulations to be realised for your layout:
    • Add virtual 'Signal box Levers' to the schematic to control your signals/points.
    • Add virtual 'Block Instruments' for communication and coordination between signal boxes.
    • Supports integration with physical levers (such as the Cobalt-S Levers)
  • Uses the RPi GPIO inputs (connected to external track sensors) to detect train movements:
    • Add 'Track Sections' to the schematic to provide a mimic diagram of train location.
    • Watch the trains 'move' through the schematic based on 'signal passed' events.
    • Alternatively, use 'track circuits' for an absolute indication of block occupancy
  • Provides "one click" or 'NX' (Entry/Exit) set-up and clear-down routes:
    • Interlocking is preserved - Routes are disabled if conflicting movements are set.
    • Routes can be highlighted on the schematic to show they have been successfully set.
    • Supports automated set-up and clear-down of routes based on GPIO sensor events.
  • Incorporates MQTT networking to allow multiple signalling applications to be linked.
    • Allows multiple signalling areas or signal boxes to be created for larger layouts
    • Multiple applications use the same DCC command station for control of your layout.
    • Provides easy expansion of the number of external Track Sensors that can be used.
  • Full documentation and several example layout files are packaged with the application.

The application also provides a Public API to support custom layout control interfaces.

Example Screenshot

Configured / pre-installed systems are now available to purchase from: https://www.model-railway-signalling.co.uk/ The website also included a number of user guides that can be downloaded (in PDF format).

My youTube channel also has a number of videos demonstrating the use of the application: https://www.youtube.com/@DCCModelRailwaySignalling

What's new for Release 6.4.1:

  • Fix Loco Roster compatibility issue with latest version of Engine Driver
  • Bugfix to WiThrottle server to prevent occasional application freeze
  • Bugfix to Scripting API 'wait_for_gpio_port' to prevent missed events
  • Bugfix to move of selected objects (in edit mode) after they have been updated
  • Bugfix to scripting interface delays/logging (set_signals_off and set_signals_on)
  • Improve application upgrade utility for forward compatibility (later OS versions)
  • Improvements to keep Layout warning window on screen (last 20 warnings displayed)
  • Improved scripting API use of on-screen throttles to make more deterministic
  • Further improvements to GPIO event processing (minimise risk of missing events)

Example Screenshot2

Bug reports and feedback is welcome and appreciated:

  • What aspects are intuitive? What aspects aren't?
  • What aspects do you particularly like?
  • What aspects particularly irritate you?
  • What new features would you like to see?

email: enquiries@model-railway-signalling.co.uk (if reporting bugs then please attach the sig file, application logs and any relevant screenshots)

Installing the application (Raspberry Pi or Linux)

For a first time installation use:

$ python3 -m pip install model-railway-signals

When installing the application on later versions of python you may get the following error:

error: externally-managed-environment

To overcome this, add the '--break-system-packages' argument to the command - i.e.

$ python3 -m pip install --break-system-packages model-railway-signals 

To upgrade to the latest version use:

$ python3 -m pip install --upgrade model-railway-signals

To remove the application:

$ python3 -m pip uninstall model-railway-signals

To install a specific version of the application the application:

$ python3 -m pip install model-railway-signals==4.5.0

Running the application

The python package should be run as a module (note underscores):

$ python3 -m model_railway_signals

If required, a layout schematic can be loaded at startup:

$ python3 -m model_railway_signals -f layout_file.sig

If required, the logging level can be specified at startup (ERROR, WARNING, INFO or DEBUG)

$ python3 -m model_railway_signals -f layout_file.sig -l DEBUG

Full documentation is packaged with the application (access by selecting Help => Docs from the main menubar).

A number of example layout files are also packaged with the application (access by selecting File => Examples from the main menubar)

My youTube channel also has a number of videos demonstrating the use of the application: https://www.youtube.com/@DCCModelRailwaySignalling

Note that I have seen problems running the application on some of the more recent Debian releases (such as Bookworm) that use Wayland as the backend compositor rather than X11 - specifically significant degredation in GUI performance (especially when editing a schematic), button rendering issues (not fully rendered until the cursor hovers over them) and window management issues (e.g. windows not being bought to the front when un-minimised). I also saw these issues with other applications/

The fix was to switch the GUI Compositor back to X11 - Run "sudo raspi-config", select 'Advanced Options' then 'Wayland' and select X11.

Metadata

Release files for model-railway-signals 6.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for model-railway-signals 6.4.1
File Size Uploaded Provenance Actions
model_railway_signals-6.4.1.tar.gz 13.1 MB Without provenance Details for model_railway_signals-6.4.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for model-railway-signals 6.4.1
File Interpreter ABI Platform Actions
model_railway_signals-6.4.1-py3-none-any.whl Python 3 none any Details for model_railway_signals-6.4.1-py3-none-any.whl

Total release size: 26.3 MB

Release files / model_railway_signals-6.4.1.tar.gz

Download URL model_railway_signals-6.4.1.tar.gz
Size 13.1 MB
Tags Source
SHA-256 checksum
How to use checksums
282c69a10ddb905ca2428074df32e6cd5d53157a1eca0724e503bebf860fdb47
BLAKE2b-256 checksum
How to use checksums
25fcce9607d706238fe6609d3d3b2eab4e5c824dd2943b8de7c991c735713af4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.2

Release files / model_railway_signals-6.4.1-py3-none-any.whl

Download URL model_railway_signals-6.4.1-py3-none-any.whl
Size 13.2 MB
Tags Python 3
SHA-256 checksum
How to use checksums
eef7872411959997ccb2c5dc4176fbf1df282646ca873bcf0d4b3656b4e7f467
BLAKE2b-256 checksum
How to use checksums
86401ba6e6b24365fd027b9f88fd936556eebb93135f3977e4a6894cc8017a93
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.2

Security for model-railway-signals 6.4.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

6.4.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page