pyFIS allows you to control various kinds of passenger information systems.
This library currently supports the following devices:
- Bus and train displays
- IBIS devices
- All standard telegrams as well as some manufacturer-specific variants
- Connection via serial or TCP
- LAWO's MONO system (still quite rough)
- Support for sending bitmaps to some LED displays
- Support for XY10 flipdot pixel control
- IBIS devices
- Split-Flap displays
- KRONE / MAN System 9000/8200E "FBM" split-flap modules with ZiLOG microcontroller (in combination with the "FBUE" address board)
- KRONE / MAN System 9000/8200E "FBK" split-flap group controller boards
- KRONE / MAN System 9000/8200E "HLST" heater and light control boards
- KRONE System 8200 (doesn't require any modifications, can send commands to the integrated display controller)
- KRONE System 8200 PST boards (the piggyback boards on each split-flap module)
- OMEGA split-flap units with RS-485 data protocol
- Other displays
- AEG MIS LCD signs:
- Character-based displays with a Geavision Control Unit (GCU) using the MIS1 or MIS2 protocols
- Large LCD boards using multiple GCUs
- Graphical displays using the ECS protocol via network or the GSC100 controller via RS-422
- Oltmann VISTRA-I passenger information displays
- aesys DSA (single-line text displays found at smaller German train stations)
- microSYST migra industrial LED signs using TCP/IP
- My own "Cheetah" universal display controller
- My own very basic and generic split-flap interface protocol (you can use this to interface with any split-flap type display)
- My own protocol for controlling a single-line scrolling RGB text display
- AEG MIS LCD signs:
- Data Sources
- Frankfurt Airport (Fraport) API for arrivals and departures
- Other features
- Support for reading LAWO's font file format
The SplitFlapDisplay
class is an abstraction level you can use to represent a display made up of multiple split-flap modules. It functions as a wrapper for the various display controller classes. Using this class, you can create various fields such as a TextField
, which represents of one or more alphanumerical split-flap modules, or a CustomMapField
, which represents split-flap modules with texts or symbols printed on the flaps. Of course, the mapping of position code to displayed value can be set according to the modules you have.
It can even render the display layout as ASCII graphics in your terminal! For more details, take a look at the example script.
Probably most relevant is the pinout of the various devices. Here's a short, incomplete summary.
This system has a ZiLOG microcontroller on every split-flap unit and separate address boards, where the units are usually plugged in. This enables easy swapping of units without having to change the address, since the address boards would be permanently mounted in the display's backplane.
The address is set with DIP switches and transferred to the split-flap unit using a shift register.
The split-flap units have a 10-pin connector exposing the FBM single interface:
Pin | Function |
---|---|
1 | GND |
2 | 42V AC (Live) |
3 | VCC (9...12V DC) |
4 | 42V AC (Neutral) |
5 | 5V DC output for address logic |
6 | Address shift register data |
7 | Address shift register clock |
8 | Tx / Data from unit (CMOS logic levels) |
9 | Rx / Data to unit (CMOS logic levels) |
10 | Address shift register strobe |
However, this alone is rather impractical. Controlling these units in combination with the address boards is much easier. The address boards have a 20-pin connector which exposes the FBM bus interface:
Pin | Function |
---|---|
1...6 | 42V AC (Live) |
7...12 | 42V AC (Neutral) |
13,14,15 | VCC (9...12V DC) |
16,18,20 | GND |
17 | Rx / Data to units (CMOS logic levels) |
19 | Tx / Data from units (CMOS logic levels) |
If you don't have the address boards, you can order the remade version I created together with Phalos Southpaw, which is available here!
In case you're not sure what kind of display you have, here are some pictures:
KRONE / MAN split-flap unit with ZiLOG microcontroller. There is also a variant with a THT microcontroller, which is also compatible.
KRONE / MAN "FBUE" address board for "FBM" split-flap units
KRONE / MAN "FBK" board for controlling groups of FBM+FBUE split-flap units
OMEGA split-flap unit with RS-485 and DC input, commonly found in SBB (Swiss train operator) displays
pip install pyfis