Subway arrival times in my living room with Raspberry Pi
I set up a touch display in my living room that shows arrival times from the New York City subway and bike and dock counts from CitiBike. It looks like this:

I was inspired by Benjamin Arnav's subway arrivals board, which he demoed at the Recurse Center in 2024. Ben's arrival board uses an LED matrix display and a microcontroller. For my display, I opted for a Raspberry Pi 4 Model B, the official Raspberry Pi touch display, and a case from SmartiCase. Assembling the case was not hard, but you will need a 4 mm hex socket wrench to remove the brass standoffs from the display board.
The Pi runs stock Raspberry Pi OS. The UI itself is a web page served by my homeserver on a private Tailscale VPN. I did not want the screen to be constantly on, so I set it to turn off after 45 seconds of inactivity, and I wrote a tiny bit of JavaScript that triggers the page to reload and fetch the latest information upon the first touch. Other than that, the web app is just static HTML generated server-side.
The source code for the web server and frontend is available from my monorepo at https://github.com/iafisher/monorepo-redacted/tree/master/app/kiosk. It uses the official CitiBike API and the Transiter web service for subway times. Both of them are free and require no sign-up.