A subway arrivals sign using an off-the-shelf sign and a Raspberry Pi. Powered by the goodservice.io API.
Each time the display updates, the sign will display Load
, ok ok
,
HC-1
, and the display resolution. This process takes about 3 seconds.
signpi.webm
You will need
- A Raspberry Pi Zero W. These are unfortunately hard to get right now, but should be more widely available soon.
- A 192 x 32 LED sign with a HC-1 controller. These can be found on ebay, aliexpress, amazon.
Now, download the release zip: https://github.com/mdejean/signpi/releases/download/v0.2/signpi-0.2.zip
-
Insert your microSD card into the reader and open up rpi-imager. Choose Raspberry Pi OS Lite
-
Adjust the advanced settings, especially the wireless network settings. Uncheck the eject after complete option.
-
Write the microSD card.
-
Open up the 'bootfs' drive
i. edit
cmdline.txt
: Afterrootwait
addmodules-load=dwc2
ii. editconfig.txt
: At the bottom of the file, under[all]
add a line withdtoverlay=dwc2
iii. Renamefirstrun.sh
tofirstrun2.sh
iv. Copysignpi.deb
andfirstrun.sh
to it. -
Eject, put the microSD card in your Pi and plug it in to the sign.
-
Wait about 6 minutes for the first-run process on the Pi to complete. When it's done you should have a functioning sign, displaying northbound arrivals at Nevins Street.
-
To change the station, unplug the Pi from the sign and plug it into your computer. It will appear after 15-20 seconds as a flash drive. Open the
config.ini
file on the flash drive and edit the station. To find your station's code, go to https://goodservice.io/stations and click on your station. The station's code is at the end of the page's address. For example Nevins Street ishttps://goodservice.io/stations/234
so the code is234
These displays allow the user to program the sign using some software
which puts a file (COLOR_01.PRG
) on a flash drive which is then plugged
in to the sign. signpi makes the Raspberry Pi Zero W pretend to be a
flash drive containing that file, and 'unplugs' itself once a minute to get
the sign to display the image it has created.
Except as otherwise noted, this software is distributed under the terms of the GNU General Public License, version 2 or later. See LICENSE for the full text.