posted at 2025-12-21 in coding and electronics
This project was an exercise for improving my CAD and Python skills. An was inspired by a video of an overly complicated lamp, which I saw on Instagram.
A base with sliders and switches should control addressable LEDs. There were supposed to be different modes, that change the function of the sliders.
The plan was to fabricate a modular light, that can be extended or shrunken, easily. One to many modules, that get mounted on a base and contain 3 LEDs are supposed to be stacked on top of each other up to the desired height. First I thought about magnetic pogo pin connectors for the individual elements. Considering the price and the complexity, i switched to simple soldered connections between the modules, for the prototype. Now the modularity is limited to the standardized design of the individual modules, which simplifies production.
Deviating from the chaotic design of the inspiration, the elements of this light are arranged symmetrically. A slider and a switch on each side of the modules. One switch has 2 positions, the other 3, so that multiple programs can be selected.
All parts are made from black PLA. with some white highlights (the base walls, the topmost lid and the front panels of the light modules). The front panels of the individual modules are made with 20% infill, so more light will shine through them, and they will show an interesting pattern.
The brain of the light is a Pi Pico 2W. Its connected to the faders and switches as well as to the data input of the addressable LEDs. Power is supplied by a chunky 5V LED power supply.
The whole things was programmed in MicroPython by using the neopixel library. In the fist part of the code the status of faders and switches is checked. In the second part, the LEDs get manipulated according to the status.
The main mode was the one already existing in my brain, when planning the light: One fader should turn on one LED after the other, from bottom to top, until the slider reaches the half way. From there the LEDs are supposed to turn off again one after the other from bottom to top. The other fader will change the hue of the light.
Other modes I thought about implementing, other modes are a manual and automatic rainbow mode with changeable spread, a standard full height color changing mode with changeable speed and a single color mode. As of now, I still have one switch position left to set up another mode.
The picture below shows the finished light in the rainbow mode.
The lamp has a few flaws. The lamp stack is a bit curved, as the lids wouldn’t fit the modules perfectly, when I glues them in place. Maybe a different approach for fastening should be used in future.
The panels on the front block a lot of light, as they are very thick (5 mm). The infill works nicely, but there are too many wall layers. In future maybe thinner panels and less wall layers should be used.
Besides these shortcomings, the result is an interesting, interactive light.
Download the project files here.