This project provides Model Railway Distributed Automation for Raspberry Pi RP2040/RP2350 (and other MicropPython Micro Controller Units).
Automation covers:
RailCom is used for:
Currently communications between modules uses MQTT. MQTT follows a publish and subscribe model and requires a broker. The test environment uses the Mosquitto broker running on a Raspberry Pi.
Software is modular. Some software modules will support specific functionality e.g. DCC generation or RailCom response interpretation. Others will be more general and provide a common infrastructure (e.g. MQTT).
For development purposes, testing has been conducted in conjunction with JMRI using its MQTT interface. As result of this, using the software with the standard examples in the repository, will work directly with JMRI. JMRI ‘throttles’ may be used to control locomotives with mobile decoders. RailCom channel 1 and channel 2 responses are available within JMRI tables.
The software is written and developed using MicroPython. Version 1.26 or later Micropython runtime is required. All software dependencies are resolved using modules within this repository or modules built into the standard MicroPython runtime.
The run-time application is split accross three packages. Package documentation provides further details. In addition to packaged modules there are example main.py modules and test modules.
The packages and other softare need to be installed on the target device. This is covered under Software Installation.
Setting up local installation details such as network and operational paramaters is described in the configuration section.
The hardware environment primarily uses Raspberry Pi Pico or Pico2 processeors. More detail is provided in the hardware section.
High level softare design is covered in the design document.
Full API details and additional design information are in the API section. This documentation is generated from Python ‘docstrings’ in the code modules. There are also API details for key components.
Details of diagnostics and testing are in the testing section
Each software package has a directory:
In addition to the package directories, there are three other software directories:
main.py modules.The docs directory contains project documentation.