The node script continuously polls a Tomato router for real-time bandwidth, then provides JSON to an Arduino or ESP8266 to visualize bandwidth on a strip of neopixels.
The pixels animate as a downward flow to show download speed or up when upload speed is larger. Both download and upload are not visualized simultaneously, only the largest of the two values is shown. The Arduino script uses the excellent WS2812FX library to create the neopixel animations.
REQUIRES A ROUTER RUNNING TOMATO FIRMWARE or a router that has an API for real-time bandwidth.