It started simply enough: I needed a new kitchen island lamp for my house because the old one was very ugly. It should light up the room and make it easy to cook by. It would be nice to be dimmable too. And controllable via Home Assistant. But why stop there? Why not make the ultimate kitchen lamp with all the trimmings?

I’ve been playing with addressable LEDs for a while and always want to have an excuse to build them into more things. I made a couple giant LED walls out of them – surely I could also make a classy lamp for my house too. My design criteria:
- Nice diffuse white light for cooking
- Dimmable
- Light can shine up and down
- up and down lights are controllable independently via Home Assistant
- The lamp also has addressable RGB LEDs shining both up and down
I decided on 12V DC for all the electronics, which led me to use WS2815s for the addressable LEDs and some standard non-addressable 12V strip LEDs for the white lights. While I could have used RGBW addressable LEDs, my experience with them is that they wouldn’t put out a good enough and bright enough white light for my use case.
Fabrication
I started with an 80/20 frame, which would double as a heatsink for all the LEDs. This frame lets me easily mount both the LEDs (using their adhesive backing) and the wooden side-walls, using bolts.
The two strips of LEDs (white and RGB) sit next to one another. Both measure 10mm wide, so the 20mm-wide 80/20 frame fits perfectly. I sized the 80/20 to break along the LED stride (60/m) so that they would be as contiguous as possible.

For aesthetic reasons I wanted the lamp to be floating, held by white cables. It turns out that standard CAT-6 cable is good at passing power, data, and also holding up a lightweight lamp. I stripped off the markings on the cable with acetone and did my best to straighten it.
Currently only one of the cables is active – the other 3 are simply there to hold it up – though I’ll be changing that eventually to work around an intermittent flickering problem I’ve encountered.
To mount the cables to the ceiling, I went with industrial chic plumbing fittings because they’re cheap, effective, and ubiquitous if I ever wanted to reproduce the project. I designed and 3D printed some threaded plugs that I fed the wires through and used zipties to secure the wires on the opposite side of the plugs.

For the wooden side panels, I ordered some thin sheets of hardwood that I then cut grooves into using my router table in order to hold the diffusers. I painted the inside of the wooden panels white so that any internal reflections would stay bright. I had to join a couple strips together with a wide lap joint to make a single contiguous piece too, which was a fun challenge, considering how thin the woods is.
Control

My original design for the control of the lamp was – in hindsight – overly complex. It involved using a 16 channel LED driver, a differential receiver, a DMX512-based LED driver for the white channels, and a python script running on my NAS controlled via MQTT. I used this for a number of years and it worked well enough, but ultimately I realized that I should probably simplify things to make my life easier, and so that I could have fun animated lights without a relatively heavyweight system like TouchDesigner or LEDFx.
I reworked the entire controller and replaced it with a single ESP32 running WLED, and MOSFETs to drive the white channels. Not only does this mean that I could ditch the MQTT + python script setup, but I could still drive the whole thing via TouchDesigner if I wanted to over DDP/sACN, and can fall back on built-in WLED patterns for everyday party use (yes, my house has a party button).

Next steps
This project is ever-evolving, as I learn more about fabrication, electronics, lighting, and control systems. Next up is replacing the white strips with a better higher CRI strip, routing the white channel power to a different injection point to minimize interference with the RGB data lines (the PWM is causing interference), and adding a second run of power injection.
I also want to redo the wooden sides (or at least some of them) because I’ve learned a lot since making them and can make the edges cleaner.
