User Tools

Site Tools


Extension of RocDisplay by Walter Sax


I got hold of nice little displays that were only slightly too big to be in scale for H0. But nevertheless I wanted to do something with those. The content of the display should look similiar to the displays that are used by Deutsche Bahn. The controller of the displays is a SEPS525 and the display is an OLED with RGB colours and a resolution of 160x48.


To be able to use this displays with the syntax Walter invented I needed to extent the command set. As Walter only used monochrome displays there was no command to change the colour. I therefore added a few commands all making use of lower case letters as all sensible letters were taken for other commands. I added 'b###' for background colour (with ###=RGB), 'c###' for text colour (with ###=RGB), 'i' for inversion and 's####' for a scrolltext (first#=id, other ### for length of text field). Inspired by Ellards Eltraco I decided to use an ESP8266 as processor for the display. I also used Ellards code and modified it to suit my needs. After being able to receive text content by rocrail and being able to show it on the display I found out that RocNet has only a payload of less than 127 bytes. As this was not enough to transmit the whole content of the display I tried to find other solutions.

From Rocnet to Node-RED

During that time Gerrit put quite some work into his "Fahrplananzeiger" that held all information I needed for the train destination displays. Another benefit of using Node-RED instead of the scripting inside rocrail was the greater flexibility. Also all the needed text fields inside rocrail weren't neccessary anymore because rocrail provides all scheduling information via MQTT and the Node-RED flow processes them. To be able to use the display with the Node-RED server I decided to stay with MQTT as protocol as it was working already anyway. I just had to create another topic that the display processor than had to subscribe to. But that made it much easier again, as I could provide a topic for each individual display (=platform) and didn't have to bother with header information etc. I took Gerrits flow and added four function nodes, one for each platform of my station. I took his code and modified it for the function nodes to put out another MQTT message. This message is now put together in the syntax Walter invented for his RocDisplay and transmitted as topic with the appropiate station name and platform number.

msg.payload = "{EcFFFb0DET0L2F1} "+train+" {L0F2} "+ptime+" {T3L3} "+des+" {L2F1} "+via+" {is1000L1} "+scrolltext+" {T4F3} "+track+" {P}";
return msg;

Attached the flow I took from Gerrit (nice2have) and I modified:

userpages/drblack/expansionrocdisplay.txt · Last modified: 2019/04/24 20:29 by drblack