Drive Board

The drive board handles all the timing and multiplexing for flipping single dots. They are refreshed every 5 seconds in case pixels are stuck. Frames are transmitted over Serial with a pretty simple format.

Raspberry
The Raspberry Pi inside handles all the higher level stuff. It also gets the current time over NTP and auomatically adjusts for DST. Normally it runs Snips for voice recognition + a custom python application which receives the recognized commands and draws the right Frames. It also handles getting weather and departure data from different services. It also features a light sensor which is able to detect darkness. It doesn't light up but the sound of the flipping dots can be pretty loud at night - so it turns off when it is dark in the room. Since last Month there is a Pi Hole on it too!

Games

The Games can be started via an ssh terminal to the raspberry pi (it would be quite easy to also do that with voice commands - but i don't use it for games very often). The raspberry serves the HTML + CSS + a small javascript to the smartphone. This connects to a websocket server on the pi which can then process the inputs. The source code for the Smartphone side is a modified version of https://github.com/RetroPie/RetroPie-Setup/wiki/Virtual-Gamepad from the Retro Pie Virtual game pad. In theory it can support up to 4 connected Smartphones - but at the moment the maximum number of people i tried are 2 (for Pong).


Here is a small video of it working: