While there is a time and place for wirelessly controlled devices, sometimes you want something you can just reach out and touch to interact with, no apps to install or devices to configure. In this case [John] wanted a lamp that was just that. Drawing inspiration from the rotary phone, he created the LightComposer.
This small lamp, just a bit smaller than a hockey puck, uses a 3D printed enclosure and a straightforward PCB. It’s a very accessible project to recreate. The 3D prints are well thought out including a TPU ring on the bottom to keep the lamp from sliding around. The light source comes from 32 SK6812 LEDs, which are very similar to NeoPixels. An ATmega328P microcontroller powers the project and can easily be programmed using the Arduino IDE. A rotary encoder in the center, coupled to the top diffuser, lets you control LED brightness and color by turning it. The firmware also includes some fun hidden light-effect modes.
Head over to [John]’s site for all the files needed to make your own LightComposer, or links to buy a premade one. What devices have you made that use a straightforward physical user interface in lieu of an app? Be sure to check some of the other lamp builds we’ve featured before.

Yes, bunch of RGB LEDs and three trimpots. Bunch of RGBW and four trimpots, if you desire True White in addition to. No Arduino. A bit of tuning (LEDs responses are non-linear, since they are rated for slightly different voltages) is required, but the result is even simpler than that. I thought about adding dials to the trimpots, but later decided it is already good enough for my humble nighttime illumination.
“A significant improvement would be to use a compass or an HMC5883L magnetometer, or a 9‑degree‑of‑freedom IMU 9DOF
i didn’t understand the project…the lede motivated a lamp with an on-off switch but the the body of the article was…something else.
but i just wanted to share my bespoke lamp. i wanted a reading lamp for my bed. i started with an LED gooseneck desk lamp from the store. it worked great but it was way too bright. i added a 555 adjustable PWM dimmer to it, but it turns out its wall wart is ‘smart’ and turns itself off if you do anything less than the full brightness. so i started over from scratch.
next version had a single 3mm white LED, dumb 5V wall wart, on-off push button, and a series resistor selected to ‘barely’ broadcast a beam in a dark room. i settled on about 0.5mA. it’s impressively dim — it doesn’t light the room hardly at all (i.e., no complaints from the wife) — but so long as it’s pointed at my book it’s perfectly readable.
i put it in a 3d printed case, a plain box about 40mm x 40mm x 25mm. Just big enough for 4 stacks of 4 pennies each for ballast. the first version could be aimed up and down but that was unnecessary because i happen to have a shelf right by the bed at just the right height. the first version, the push button stuck out a few mm and was destroyed by me knocking it over, so the next one the push button is flush / recessed. first version was held together by a pair of 4/40 screws at opposite corners but the PLA warped so the other corners were separated a little bit so the second version is held together by a couple zip ties that mate to dents in the outside of the case.
use it most nights for about a year now and it’s a huge improvement over all of its predecessors.
probably an example of how projects designed for use don’t usually receive adequate write-ups :)
Looks like a nice unit!
For our boat, I made a one-button PWM dimmer for 12v LED strip lighting, using a PIC 12F675 8-pin microcontroller. PWM frequency is about 250 Hz. Operation is as follows:
– when 12v DC is first applied (from the boat’s breaker panel), the lighting comes on at about 60%.
– short pushes of the button cycle through 100% – 60% – 30% – off
– if you push and hold the button, the PWM duty cycle slowly ramps up and down (triangle wave, about ~ 5 sec cycle) between 100% and 0% and back, holding the PWM value when you release the button, for fine control of dimming.
The button I used was a big arcade-style momentary pushbutton, but it could be anything, even some sort of touch sensor.
It’s been in service now for maybe 9 or 10 years.