> ## Content Index
> Fetch the complete content index at: https://broddin.be/llms.txt
> Use this file to discover other available public pages before exploring further.

# The light parade
- URL: https://broddin.be/the-light-parade/
- Published: 2022-12-28T14:30:00.000Z
- Updated: 2026-07-19T19:04:29.000Z
- Author: Tim Broddin
- Tags: 3d-printing, wled, #english, #wordpress, #Import 2024-02-03 13:15, #broddin, #Migrated-1784487752640, #wp, #wp-post, #Import 2026-07-19 19:02

Before COVID hit the world, the school of our kids organized **a parade** each year. All the kids carry small candles and walk across the neighborhood, accompanied by a big fanfare.

Because small candles are kind of boring, I decided I was going to **go big** the next edition, and make **super cool LED lights** for my kinds. I made plans and ordered plenty of LED panels. Unfortunately, the editions of 2020 and 2021 were both canceled.

I was afraid there wasn’t going to be a light parade in 2022 as well, because we didn’t receive any info that it was going to take place. Until, just one week beforehand. Which left my with **little to no time** to create three lamps.

## The setup

My original plan for the 2020/2021 light parade was to have **ESP32**‘s connected to **flexible** **WS8212B** LED panels, inside 3D-printed enclosures. One of the ESP32’s would have a **microphone** sensor and communicate the sound data to the other ESP32’s. They would all run a custom Arduino sketch, which would display sound-controlled effects on the LED’s. I would then be able to control the colors & effects using a custom React Native app. They would receive power by using USB-battery packs.

Sounds way too complicated? It is.

Enter the plan for 2022.

Instead of using a powerbank, I opted for a **18650 battery**. This only delivers 3.6 volts, which shouldn’t be enough for driving the WS8212B LED panel, as it needs 5V. I was expecting to have to deep dive into level shifting and other electronics stuff, but to my surprise, the panel works just fine on the 3.3V PIN of the ESP32.

![](https://broddinblog.on-forge.com/storage/241/image-template-nkon19-0068-layer-76.jpg)

I opted for the [LILYGO® TTGO T-Energy ESP32](http://www.lilygo.cn/prod%5Fview.aspx?TypeId=50033&Id=1170&FId=t3:50033:3&ref=broddin.be) board because it’s cheap (€12) and it includes a battery holder. The fewer wires, the better.

![](https://broddinblog.on-forge.com/storage/306/image.png)

Instead of writing the firmware and controller myself, I decided to use [WLED Reactive](https://github.com/atuline/WLED?ref=broddin.be), a fork of the excellent WLED project, that includes **sound input & reactive effects**. Never write things yourself, when you can stand on the shoulders of giants.

An early test

I was planning to do **synchronization** between the lights over **Bluetooth LE**. The WLED firmware does support synchronization, but only over IP (UDP). At first, I was considering running one of the nodes as a Wi-Fi access point, but since the range of the ESP32’s antenna probably isn’t that great, I decided to go for a **standalone Wi-Fi router**.

A couple of weeks ago, I learned about an outstanding [travel Wi-Fi router](https://www.amazon.com.be/dp/B08MKZXGBY?keywords=gl.inet&ref=broddin.be) from a video by [Snazzy Labs](https://youtu.be/LUILw91hiEY?t=23&ref=broddin.be). It’s cheap, it runs **OpenWrt**, and it’s powered via **USB-C**. I bought one, and powered it with my trusty [Anker PowerCore 24K power bank](https://www.amazon.com.be/-/nl/Anker-PowerCore-24-000mAh-oplader-vermogen-compatibel/dp/B09VPHVT2Z/ref=sr%5F1%5F4?keywords=anker+powercore&qid=1672228349&sprefix=anker+power%2Caps%2C144&sr=8-4&ref=broddin.be). All lights and my iPhone would connect to the WiFi-network that was being transmitted from my **backpack**. This allowed one light to be the master controller, and sync the chosen effect & color settings to the other lights.

![](https://storage.ghost.io/c/07/26/07263624-ccbd-43f7-8802-4e22129ea722/content/images/2026/07/51hckvlgsel-ac-sx679.jpg) 

![](https://broddin.be/content/images/wordpress/2022/12/71LinfGHuL._AC_SX679_.jpg?resize=679%2C849&ssl=1) 

For the microphone sensors, I used dirt cheap **MAX4466** modules. Next year I’m going to use more expensive digital microphone sensors because the MAX4466 picked up a lot of static, and was not reliable at all. They also seem very easy to break. Thankfully, WLED Reactive also allows you to sync sound data over UDP, so I only needed one working MAX4466 to drive three lights.

![Everything, in its right place.](https://broddinblog.on-forge.com/storage/244/3bf9102f-15f8-4047-ace4-f8bad207bd81-1-105-c.jpg)

Everything, in its right place.

I was able to adapt the design I made for **the case** last year. Since there didn’t need to be a big power bank inside it, I was capable of making it a bit more compact, reducing print time to 8 hours a piece.

![Not gorgeous, but functional](https://broddinblog.on-forge.com/storage/245/cleanshot-2022-12-28-at-130657-at-2x.png)

Not gorgeous, but functional

Assembling all three lights, tuning the microphone’s gain, and configuring a playlist of presets took most of the time. I was thrilled when I finally saw **three LED panels doing crazy effects in sync**.

Final test

## The result

![](https://broddinblog.on-forge.com/storage/246/22fce060-eb36-4157-98f6-286bd1198afe-1-105-c.jpg)

It was a rainy day, but everything worked. The lights, the effects and the sound reactivity. It was an amazing project to be able to work on in my spare time. Of course, I didn’t take enough pictures ????

![](https://storage.ghost.io/c/07/26/07263624-ccbd-43f7-8802-4e22129ea722/content/images/2026/07/img-3354.jpg) 

![](https://broddin.be/content/images/wordpress/2022/12/IMG_3349.jpeg?resize=768%2C1024&ssl=1) 

![](https://broddin.be/content/images/wordpress/2022/12/IMG_3334.jpeg?resize=1024%2C768&ssl=1) 

![](https://broddin.be/content/images/wordpress/2022/12/IMG_3332.jpeg?resize=768%2C1024&ssl=1) 

![](https://broddin.be/content/images/wordpress/2022/12/IMG_3347.jpeg?resize=768%2C1024&ssl=1) 

![](https://broddin.be/content/images/wordpress/2022/12/IMG_3329.jpeg?resize=768%2C1024&ssl=1)