When everything is running, this package drives addressable LED strips with effects that can come from the microcontroller itself or stream in over WiFi. Strips light up roof eaves, patio umbrellas, window trims, a chandelier frame, glass insulators and desktop enclosures. There is even a 48x16 matrix running real-time audio spectrum analysis, and a web server interface built in so effects can be picked from a smartphone. The whole thing arrived in time for Christmas light season, which feels fitting for something this showy.
The maker behind Dave's Garage built it as an open-source C++ package under a GPL license, targeting the Arduino platform on the ESP32. Compilation happens in Visual Studio Code with PlatformIO on Windows, macOS or Linux. Hardware suggestions are specific: WS2812B strips at 144 pixels per meter, a pair of ESP32 Heltec modules, two M5 sticks, a matrix, and an ESP32 board with 8M of flash and a built-in blue TFT. The M5StickCPlus packs an OLED, microphone, buttons, battery and PSRAM into the deal.
What stands out to me is the depth of the explanation. The material walks through the WS2812B pinout, the internal IC architecture, and microsecond-level binary timing handled by the ESP32 RMT hardware pins. Effects can be written in C++, Python, VB, C#, Javascript and more, and compressed pixel data can stream in from Python, C# or Unity applications. Dozens of effects ship with it, and users can write their own.
One trade-off is worth noting: the recommended ESP32 module has 8M of flash but no PSRAM, so anyone planning bigger matrices should weigh that carefully. The maker also programmed the package while recovering from spinal laminectomy surgery after injuring a neck working under a 1969 Pontiac dashboard. That is dedication, and I hope the recovery went well.
Project by Dave's Garage. Watch it on their YouTube channel: