The newest addition to our living room is a Hue-controlled LED light sculpture we’ve built, inspired by the REFLEKTION light art. It’s pretty awesome if I do say so myself! This is not a full build guide, but we’ll provide a list of the materials we used and give you a good starting point to build your own. We’ll also show you how we’ve automated the LED sculpture using Home Assistant and Node-RED.
About a year ago we found this handy guide on Charged about creating cheap Hue-compatible LED strips. Our house lighting runs on the Hue system, so we’d already looked into official Hue strips – pretty damn expensive. Now, according to this guide, you could simply go to AliExpress and buy cheap RGBW LED strips and a Hue-compatible controller. A 5 meter strip would run you about 40 euros. Considering the official Hue LED strip costs 80 euros for just 2 meters, that’s a pretty good deal.
We figured we could build something cool with this, but didn’t know quite what yet. Then my girlfriend discovered the most awesome light art sculpture online: REFLEKTION. They build a variety of metal frames fitted with hidden LED strips. When the frames are hung on the wall they’re raised off the surface and the LEDs light the wall with a diffuse halo of light. Check out their Instagram, it is SO cool.
A making-of video on the REFLEKTION website revealed a lot about how they’re built. And that’s when we realised this was a great idea we could pick up as our Hue LED strip project! Even better, we could upgrade the concept from just white light to full RGB colours!
Aside from LED strips, the video gave us a good idea of what REFLEKTION uses for their models. We just needed aluminium LED profiles, 3D-printed connectors, transparent plastic spacers and nylon fishing line to hang the frame. All parts we could source online or design ourselves!
These types of aluminium profiles are normally used to mount LED strips to the ceiling or under cabinets. We picked this slim black model, designed for 10mm wide LED strips. With a metal hacksaw we could cut this down to the proper lengths and angles for our design. They also make matching diffuser strips that help even out the light from the LEDs and end-caps that give the open ends of the profile a finished look.
For spacers we took a good look at the REFLEKTION making-of video and decided to buy a 3mm thick plastic rod made out of transparant acrylic (also known as plexiglass or perspex). From normal viewing distances the acrylic will become nearly invisible to the eye, giving the frame a floating look.
We still had some nylon fishing line from a previous project and we’ve got an ample supply of 3D-printers in our apartment (Ultimaker FTW!) to print custom connectors. Game on!
We bought the LED strip and controller the Charged article linked to from AliExpress, and bought our other parts from online suppliers in the Netherlands that could ship parts to us quickly. They probably won’t be great choices for you, but using the descriptions you should be able to find similar products locally. I’ve split off all shipping costs, so you have a reasonable idea of pricing per part.
|12V RGBWW IP20 LED strip||5m||AliExpress||€6.16|
|Gledopto RGBW 1ID Zigbee controller1||1||AliExpress||€22.45|
|12V 3A power supply2||1||LEDstripXL||€12.95|
|Slim black aluminium profile with diffuser||2m||Profielgigant||€13.45|
|Slim profile end-cap||1||Profielgigant||€0.75|
|Transparent acrylic 3mm rod||1m||Letterplex||€8.47|
|3D-printed corner connectors||3||3D-printed||–|
|3D-printed end connectors||2||3D-printed||–|
|Nylon fishing line||2m||Owned||–|
|Shipping (all combined)||–||–||€20.71|
Note 1: If you follow the Charged article you’ll probably buy the wrong controller, as we did at first, because their explanation is confusing. The RGBW controller is the proper model for RGBW and RGBWW LED strips. For a correct explanation of RGBW vs RGB+CCT and 1ID vs 2ID controllers, see this guide.
Note 2: The power supply needs to match your LED strip and deliver enough current for the desired length. We could have ordered a 12V 3A power supply from AliExpress for a lot cheaper, but I have had very bad experiences with cheap power supplies from China – the kind of experiences that leave behind molten plastic and smoke damage.
The REFLEKTION model that we’d first seen was the ‘Simple Mountains’ shape. So that ended up being our inspiration! We started sketching out some options and thinking about how to cut the aluminium profile and connect the pieces again. 3D-printed connectors are the obvious solution, but no design exist for our profile so we’d need to design custom connectors. We decided to give our final design just 3 corners, as we expected this first attempt to be hard enough without making the shape really complex.
That led into our first design problem: we hadn’t accounted for how we were going to make the LED strips take corners. You can buy 90-degree clip connectors, but those are big and don’t fit into the profiles. We could cut the strip and re-solder with separate wires, which is what you’re supposed to do, but my soldering skills are rusty and RGBW strips have 5 connectors. With our design having 3 corners, that’d mean 30 points to solder perfectly without shorting any and killing the strip. I was pretty sure I wouldn’t be able to do that.
So instead – and this will piss off LOTS of more experienced DIY’rs – I simply folded the strips. These cheap LED strips are so flexible that we could fold the strip over itself to make corners (after taping the connectors to prevent shorts). If you bought quality strips your mileage may vary, especially the IP65 waterproof variants probably won’t fold like this, but for us it works.
With our corners folded into the LED strip we laid out the design and started measuring the final dimensions. A metal hacksaw and a miter box was all we needed to match those dimensions to the profile with some 45 degree cuts. I was surprised to be honest – I hadn’t sawed through aluminium before and it went really smoothly. But we’d later find out there was still a lot of roughness to my cuts that would make it hard for the corners to line up smoothly, so if you’re building one: now would be a great time for you to properly finish and level the edges with a file or sander or something.
Now we needed to design our connectors. We created a first iteration printed in rubber-like TPU that we could just easily push into the profiles without dealing with the specific shape, but when we picked the frame up they sagged under the weight. We needed something more solid and fitted to the profile that would take the weight.
My girlfriend started designing new iterations of the connector to fit the slots in the aluminium profile, tracing the shape outline from the vendor. This time we printed in good old standard PLA. After a few different versions to get the fit just right, things were looking good. Vertical space was tight, considering the folded LED strip needed to go underneath, but it fit! During testing they worked SO much better – no sag or flex at all – but it was clear they could still come loose over time due to gravity’s pull. The profile and connectors would need to be joined permanently with glue.
Next step: we needed to make room in the connector for the spacers that would raise the frame up from the wall, so we added a 3mm hole to the design. Normally you’d need to take print tolerances into account when designing friction-fit holes in prints, but we decided that it was much simpler to just sand down the spacer rods until they’d fit this hole and then glue it into place.
On the off-chance that you’re using the same aluminium profiles for your build and also want to use 3mm rod spacers, we’ve made our final connector design (both corner and end variants) available on Thingiverse.
One last step before we glue everything together! We wanted to hang the frame on the wall using nearly-invisible monofilament fishing line. This nylon fishing line is very thin, but can take a surprising amount of weight! So using a tiny 1mm drill we poked 2 holes in the frame for the line to run through. With the connectors and the frame finalised, we inserted our LED strip and permanently glued the frame together using superglue. Using a toothpick we spread thin layers in the profile’s slots before sliding the connectors in, firmly glueing the aluminium to the plastic.
Time to close up! The milky-white translucent diffuser that came with the profile would help mix the light from all the LEDs into a single glow. We cut the 2 meter long strip into matching lengths for our frame. You’re really supposed to slide it in, but because we’ve already glued everything together so we can’t. Instead, with some pressure you can pop the strip in from the top.
The LED strip came with a standard 5 wire connector at its end. You can strip each of these wires and plug them into the matching holes on the Gledopto controller directly. For some strange reason, we did need to swap the red and green wires for the RGB colours to be controlled correctly – it might just be a misprint on our controller or on our strip. The cables come out one end of the frame, the other end is closed off using the end-cap that we ordered with the profile.
With the LEDs now powered we leaned the frame against a wall at an angle, to measure the optimal distance between frame and wall. We wanted a diffuse but still distinctly shaped glow, without having either visible LED highlights or washing out too much of the wall. The REFLEKTION site says they use a 7 centimeter spacer on their models, but the optimal distance is dependent on your combination of strip, profile and diffuser. For our build a distance of 3.5 centimeter turned out to be perfect!
We cut 5 spacers from the acrylic rod, each at the desired 3.5 centimeter length, sanded one end to fit the connector holes, and installed them with a drop of superglue at every corner and frame end. With the entire frame now assembled, we hung it from an existing nail in our hallway for a final test. The glow was looking good!
So, now we have to talk about the 2 problems we did have in this build… For one, the profile corners I cut were far from perfect and you can see some of that roughness up close. It’s not visible from normal viewing distances, but it’s annoying because some light shines through the spots where the profiles don’t line up flush. I’d recommend a bit more care finishing your cuts.
Our second problem was a more direct issue… The Gledopto controller lets you use the RGB and white LEDs in separate modes. The RGB mode worked fine, but when we tried the white LEDs 3/4 of them didn’t respond anymore. It must have resulted from damage during construction, because they were fine when we tested the entire strip when it arrived. I guess we broke a trace somewhere. Honestly, with all the repeated folding and shit, we were abusing these strips pretty badly throughout the build so I’m kinda surprised all of our RGB LEDs turned out to be fine. It’s not a huge issue, we can live with just the RGB range.
With everything assembled, tested and (mostly) working we moved the art to its final location over our computer desk. Our Meural digital art-frame on the same wall is hanging at museum-height, so we aligned our light sculpture to approximately the same centerline. As you can see the transparent spacers and the monofilament fishing line are almost invisible to the eye from this distance. It genuinely looks like the frame is just floating over the wall. It’s so cool that even with the LEDs turned off, this is an amazing piece of sculptural art on our wall.
But okay, let’s be honest, it’s the LEDs that make this cool. We’re SO hyped that our first go at this was actually a succes! I had kinda expected our first prototype would be a total disaster, but this went far smoother than we ever anticipated.
We’re actually not done yet. The physical LED frame is finished, but we still have to integrate it into our house!
Adding the frame’s 1ID Gledopto controller to Hue – and probably any other Zigbee-compatible hub – is straightforward: simply follow the normal Hue procedure and it will register as an “Extended Color Light” that lets you switch between RGB and white mode. If you bought a 2ID controller, it will register as 2 separate lights for your RGB and white LEDs. This gives you the additional manual control in combining RGB and white light, but makes using the light more complex. For our purposes the 1ID controller was fine.
Because our Hue hub is connected to Home Assistant, we have full control of color and brightness from both the Hue app and the Home Assistant interface. And because we can control it from Home Assistant, we can also automate it! There’s LOTS of things you could do here, but we already had 3 simple ideas that we wanted to implement for our home. We run our automations in Home Assistant over Node-RED, a visual programming system that lets you easily build complex automations with drag-and-drop nodes. We highly recommend it! I’ve added code gists to each flow that you can import into your Node-RED as a base to adapt to your home.
First we automated the frame so it would automatically turn on and off, independently from us controlling the other Hue lights in the living room. With this flow the frame turns on at 8 in the morning, which is usually when we enter the living room, and turns off around midnight, when we usually go to bed. But it doesn’t just turn on and off based on time, it also checks whether there are people at home to appreciate it. If the system detects both me and my girlfriend aren’t home, the frame turns off. When either of us comes back home, it turns on again.
Next, we automated the brightness of the LEDs. We have a separate ambient light sensor in our Home Assistant setup to measure the amount of ambient daylight outside. Depending on how much daylight is measured, the frame automatically switches to 1 of 3 pre-set brightness levels to compensate. This way the LED light would still be visible if the sun was shining brightly, but would go back down to a less harsh setting in the evening.
Last, we automated a color flow so the frame LEDs would slowly transition through our favourite colours over the day. We used a – fairly arbitrary – transition delay of 23 minutes. We were worried a shorter delay would make the color changes distracting. A more rounded delay time, on the other hand, would make it feel like color changes were timed to the hour. We also made a switch in the Home Assistant interface that lets us turn the color flow on or off. This way we can also keep the frame set to a specific color. But since we probably want to have this flow running throughout the day, the system defaults to turning the color flow on.
And that’s our setup for now! We have some other ideas we haven’t implemented yet – flashing the LEDs in specific colours to alert us of certain events, for example – but for now we’re actually pretty happy.
Hope you guys enjoyed seeing this all come together, and if you do decide to build a LED frame like this we would love to see your finished projects!