wbmra track+turnout+signal+abs_logic+ctc design and implementation
This s/w is being designed for a system that has a computer&display for every control panel.
Assumed hardware is
- A Raspberry Pi4 and 7" touch panel used for each control panel
- Pi4 and a HDMI or 4K monitor for the ctc display; keyboard and mouse for input
- Uses the Pi's I2C to interface to standard boards which drive motors (Tortoises) and LEDS or get current readings (determine track occupancy)
- All communication between computers uses Pi's built-in wifi and the MQTT protocol; one Pi4 is used as a router - no internet needed
Features:
design
- interactive graphical design of track and control panels
- interactive graphical picking of which track is mainline
- interactive graphical picking of track where a switch throw affects adjacent switches
- interactive graphical picking of which switches have signals (switches on mainline automatically have signals)
- automatic generation of ctc display
- automatic determination of what state changes have to be communicationed between computers
wiring
- interactive graphical clicking to set which i/o pin corresponds to which switch/LED/current detector
operation
- operation, with and without ctc
About 6): A CTC panel codes not need to know about yard switches. And most CTC inputs only affect a single panel.
This project is being written in js and is heavily biased toward using functions which implement design rules and logic. User input to design or operate does not entail filling out forms.
To control i/o one has the choice
- Johnny-5 to interface javaScript to hardware io
- rewrite in Python, which on Pi's has native support for controlling io
The above design does not use the command stations, buses (Loconet) or software (JMRI) that are currently popular.
The control of locomotives may still be done by DCC.
JMRI may still be used to connect phone throttles.
Although this project is based on IOT technology, no consideration has been given to remote operation (yet?).