Introduction: Music-Reactive Christmas Tree With WLED and ESP32




In this project, we will build a music-reactive Christmas tree made of wood, ping pong balls, and LEDs controlled by an ESP32. The tree will follow the beat using an integrated microphone, combining aesthetic design with electronic assembly. It’s a great way to add a tech touch to the holidays and learn how to use WLED in audio-reactive mode.
Supplies
Required Materials
ESP32-D1 mini: Link
Led strip WS2812B 5V 30led/mt: Link
Ping-Pong Balls: Link - Unfortunately, fully white balls are no longer available. You can simply make the hole where the printing is to remove it. The link is indicative; you can buy the cheapest balls, as they are all the same size.
INMP441 Microphone: Link
LED Strip Connectors: Link
5.5x2.1 mm Power Connector: Link
Perfboard PCB: Link
Female Pin Strip: Link
5V 3A Power Supply: Link
Screw Connectors: Link
3D Printable Files: Link
Step 1: 🪚Wooden Structure Assembly




We start by laying all wooden parts on the table to check their arrangement. Before permanently fixing anything, we dry‑fit the pieces and mark an overlap of about 2.5 cm for each joint. We also mark the center line of both the base and the foot to keep perfect alignment.
Next, we apply a thin layer of wood glue on the marked areas and secure everything with small screws (If you want, you can also use nails): 3×30 mm for the slats and 3×40 mm for the top ends. Continue this process for the entire structure until the full tree frame is assembled.
Step 2: 🪵Back Panel Preparation




We take the 400×430×3 mm plywood sheet and mark the position of the LED strips (see attachment). We place the tree structure on the plywood, aligning the left edge and the bottom side. Using a pencil, we trace the complete outline of the shape. When cutting, we follow the line while staying slightly inside, so the panel won’t protrude once mounted.
Finally, we secure the panel with small hooks or finishing nails.
Step 3: 🏓Preparing the Ping-Pong Balls




To fit each LED, we cut a 30 mm opening into every ping‑pong ball. A 3D‑printed jig makes this process quick and consistent: place it on the ball, trace the contour with a marker, and trim the excess using a cutter.
Repeat this procedure for all 33 balls.
Step 4: 🔧Assembling the Rows of Balls




We glue the balls in pairs using hot glue. Each row must contain a precise number of balls (for example 7, 5, 4, etc.), so starting from pairs makes assembly easier.
Using a wooden strip as a reference helps keep everything aligned.
Continue until all the required rows are completed.
Step 5: 💡Electronics Assembly




On the 30×70 PCB, we solder:
- Internal pin headers on the ESP32 D1 mini.
- Female pin headers on the PCB.
- INMP441 microphone module.
- Two‑pole terminal block.
- Female connector for the LED strip.
After soldering everything according to the wiring diagram, we place the board into the enclosure, aligning the USB port, and secure it with M2×5 screws.
Step 6: ✨LED Strip Application and Wiring




Take the wooden structure and, if you wish, paint it as you like. Drill two holes for each LED strip one at the beginning and one at the end to allow the cables to pass through. Apply the LED strips onto the wooden frame, making sure to follow the correct direction of data flow. Before fixing them permanently, it is helpful to pre-tin the pads to make soldering easier in the tighter areas.
Continue by connecting all the segments using very flexible silicone wires. Once all the wiring is complete, perform a power-on test to ensure everything is working correctly. Finally, secure the controller with a drop of hot glue.
Step 7: 🧪WLED Installation



Before attaching the ping‑pong balls, we install WLED on the ESP32. Connect the D1 mini to the PC and go to install.wled.
Choose the version, click Install, and wait for completion.
Then configure:
- Wi‑Fi credentials
- Custom DNS (e.g., "christmastree")
- LED count: 33
- Data pin: 19
- Audio Reactive mode
- Microphone I2S settings (SD 26, WS 5, SCK 21)
Save all settings.
Step 8: 🔥Gluing the Rows of Balls


With LEDs turned on, we position each row of balls to check alignment over the strip. Apply small drops of hot glue where the balls touch and hold them in place until the glue hardens.
Repeat for all rows until the entire structure is filled.
Step 9: 🎶Final Test and Result



Now we can control our tree using a smartphone or PC through the WLED interface. The audio‑reactive effects light up the tree in sync with music.
Despite the technical issues while recording, the final result is a unique, bright, and fully customizable Christmas decoration.
Step 10: 🎁Happy Holidays!
Thank you for following this guide.
We hope this project was fun and inspiring. Merry Christmas and Happy New Year!
If you enjoyed this project and found it inspiring, please leave a heart 💖and share it with your friends.
See you in the next project!

