Ping Pong Lamp

This LED lamp is a quick project that can be done within a day. Only a few cheap components are needed to create a nice looking ambient lamp. No programming is needed, only the WLED firmware is uploaded to a micro controller via a simple tool. A 3D-Printed version simplifies the build process a lot but the cardboard version is also quickly made and can be made huge in size. WLED is open source and provides many IoT interfaced including a web front end and an app that allows to control all the lamps in the local WIFI.

This page is still under construction


The lamp is built from a tube where the LED strip with 30 LEDs/m which is wrapped around the tube like a spiral. With specific slope so the distance between the balls and rows is similar. The following table show what measurements to take for which LED count. This is only for an interleaved design where each row is shifted by half a ball (that’s why the .5)
At bigger diameters the tolerances are tighter. Any errors while gluing on the ball will accumulate and nothing wont fit. Rather add on or two mm to the row distance to be on the safe side. Try small diameters first for practice.

LEDs per rowDiameterCircumferenceRow distanceFrom video
7.57924740small 3D printed
15.516451531medium 3D printed
16.517554931big cardboard


The WLED wiki has a good explanation how to connect things.
Basically the microcontroller either ESP32 and ESP8266
GND of the ESP -> GND/- of the strip
To be able to at least communicate. The ground needs to be connected between the strip and the micro controller.
GPIO 2 of the ESP -> Data In of the Strip
The wiki says you should put a 470 Ohms resistor in between but I never had problems with my setups. If the signal integrity is too bad on long lines, you might need to add a voltage changer from 3.3v of the ESP to the 5V signal level of the strip. But a simple wire is worth a try in the beginning.
5V of the ESP-> 5V of the strip
Both, the strip and the micro controller need to be supplied with 5V power. If it’s a small lamp or the current limit of WLED is set up to 1000mA the the strip can be powered from the 5V of the micro controller. The micro controller needs to be connected to a USB power supply or a port that can supply that current.
But also the micro controller can be supplied by 5V from the strip if the strip is connected to external 5V power (i.e. over the extra power leads).
If the lamp is big and a long strip is used the power needs to be supplied from both ends. Otherwise a red discoloration will show at the distant leds and the current might be too high for the connector/wires on one side.


The software used for the lamp is WLED. It’s open source and can be easily uploaded to the micro controller as binary.
The current binaries can be found in the release section of the github repository.
For the ESP32 you need to download the esp32_bootloader.bin and the WLED_0.10.2_ESP32.bin.
The bootloader is uploaded at the address 0 and the image at address 10000.

The ESP8266 only need the image WLED_0.10.2_ESP8266.bin at address 0.

The tool used in the video is the Espressif Download Tool that can be found on their website.
When selecting the images to upload make sure to check the box of the image.
Last step is to select the correct serial port. To find out which one it is just check the drop down menu before and after the device is connected.
A reset might be necessary after the successful download.

The WLED App can be found in the app stores.

The WLED wiki provides additional information.

3D Files

The 3D models as blender and STL files can be found here.

Links to the Parts

These are affiliate links which help support my channel.
RGB LED Strip $10:
RGBW Strip $20/5m:
Ping Pong Balls $9 (150pcs):
ESP32 Mini KIT $7:
ESP8266 D1 Mini $4:
WAGO Nuts:
AC to DC PSU with Barrel Jack:
5.5mm Barrel Jack $3 10pcs:
5.5mm Barrel Jack with terminal $0.90: