Open source WiFi LED effects package for ESP32 strips

Oct 18, 2026 Last reply: 1 hour ago 4 Replies
Jump to replies (4)

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:

formatting link


How does the WiFi streaming actually get the pixel data to the strips? Is each frame pushed from a host application and rebuilt on the ESP32, or does the controller run effects locally once told which one to pick? The spectrum analyzer demo on the 48x16 matrix makes me wonder how much of that is computed on the board versus streamed in.

I think recommending the ESP32 board with 8M flash and no PSRAM is a smart call for keeping the barrier to entry low. The trade-off is obvious though: big matrices like three 16x16 panels for the spectrum analyzer could outgrow that memory. Still, for someone starting with a single strip at 144 pixels per meter, fewer requirements means fewer things to go wrong on a first build.

A fun variation would be pairing the MAGICMIRROR configuration with an infinity mirror and hanging it near the window trims or chandelier frame shown in the demos. Since the built-in web server lets you pick effects from a smartphone, you could switch looks without touching anything. The microphone support in the sample project would make the whole display react to music in the room too.

From what the maker described, the system can receive streaming pixel data compressed over WiFi from Python, C#, or Unity applications, and it can also display effects locally. So both paths exist: effects run on the microcontroller itself, or frames stream in from a host app. The maker has not given a deeper breakdown of which approach the spectrum analyzer demo used, so that part remains unconfirmed.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required