I recently came across an “ESP32 SEPTA Bus Monitor” project that would query a SEPTA Transit API and update a large scoreboard-like display with information about the predicted arrival time of the next SEPTA bus. Since project author [grandpasquarepants] lives right next to a bus stop, this format is perfect to be able to not only see when the next bus will arrive, but share this information with other riders.
I live half a block from my bus stop. It’s too far to be in easy sight from the bus stop, but a similar clock would be a useful addition to my entryway, helping me decide whether to walk or to wait for the bus when I head out. (If it’s more than a ten-minute wait, I’ll get to work faster by walking.)
So I asked GPT5.1 to take a look at the original ESP32 SEPTA Bus Monitor site and modify the code to simply print out the information to the serial port, as a test. After adding in my WiFi credentials to the sketch, this worked quite well, and a few prompts later, I had the world’s weirdest wall clock…


When one or more buses are inbound to the stop, the estimated time to the first bus to arrive is displayed. Sometimes there’s an incoming bus and therefore a time displayed, sometimes not. When there is, it usually counts down (bus making forward progress) but sometimes stands still (bus stuck in traffic) or even counts up (I don’t want to know.) The script can be modified to show buses in both directions; as it is, it only shows inbound buses (towards city center), since that’s all I use the bus line for.
Here’s the Github, including source code and .stl files for the wall-mount case, as shown. It seems pretty reliable, if you leave a minute or so slack. Enjoy!



