I had a bit of a problem with ordering random LEDs on Ali so when I saw 8x32 WS2812 LED arrays for a good price I jumped on them. A while after the displays arrived I was looking at the train signs on the MBTA platform and was inspired. I did some measurements and designed an enclosure in Inkscape. I wanted it to be visible from across the room. It features an acrylic diffusal layer infront of a grid of holes on the layer below, which allows the light to be contained to the segment below and then has it diffuse on the layer above. After some initial trouble with scaling to fit the array, I finished cutting all the parts at the local space.
The box was assembled and the electronics put inside. A hole was cut on the other side to run a USB cable in to power the ESP8266 and Array.
A quick of the back-of-the-napkin calculation notes that the display at full white will draw over fifteen amps, so I had to be careful to limit the number of lit pixels and thus the style of the display.
The first test involved figuring out the electrical order of the array. This was done by iterating over values and noting how the array was filled.
From there an incredibly abstract implementation was created using a series of lines representing trains and how far away from the stop they were. This was done by publishing to an MQTT topic and doing some transformation on the time and spreading it across the display. In the image above, there are four trains within twenty minutes of the station, the green ones ten+ minutes away, the yellow one less than ten and more than 3, and the red one imminent.
This implementation however, was not super friendly to people reading it. Which led to the creation of the Extensible Signage Architecture and gave it the data sources for time, weather and train distance.
In the next post I detail the architectural considerations in building the Extensible Signage Architecture.