When it was clear that nobody was asking for or needed my BART Train Monitor with ESP8266 and SSD1306 display, I knew the obvious response was to invest more time into the project by creating a model for a 3D printed case.
I made a few hardware adjustments from the original build, and I am using the much smaller NodeMcu ESP-12F for the board, and this SSD1306 0.96 Inch OLED I2C Display Module, which features a full text row in yellow and the rest of the screen in blue. Finally, I added a button to the project, because everything needs a button (I happened to use these).
The case isn’t fancy, but it works… the final build is approximately 1.25″ x 1.5″ x 1″ (width x depth x height), or 3.5cm x 4cm x 2.25cm for most of the planet. One challenge with the size is everything is extremely tight in the case, so I recommend using very thin wire in your build. There are two 3D models, the base and the cover, assembly is just cramming everything in and gluing the case together. I was using relatively thick wires and everything is so compressed I didn’t even need to glue the boards in place, but it would probably be a good idea to use a little hot glue to secure things inside.
I really like the two color display, which was more of an accident than anything as one of the original all blue displays seemed to go bad and was very dim, so I ordered replacements.
With the addition of the button, I was able to add some new functionality. A quick press of the button will toggle the screen off and pause network updates, effectively a screen saver sleep mode. Another quick press turns the screen back on. A long press will enter menu mode. While in menu mode, a short press will iterate through the menu items, and a long press will select the menu item.
All of the source code, 3D models, and wiring instructions can be found on my Github page bdurrett/BART-watcher-ESP8266. The project still needs work to be generic enough to be useful to anyone, but since this works for me (and I don’t think anyone else actually needs this), I will likely stop further development. That said, if anyone wants to contribute, I’d be happy to collaborate with anyone!