Learn how to create a flame effect lamp using WS2812B LEDs, aluminum channels, and 3D printing to repurpose a broken lamp in this engaging and informative video.
[0:01] Hey Everyone.
[0:02] I’ve got another fun project.
[0:04] This has been on the back burner for quite a while waiting for me to get a bit of free time.
[0:09] About a year ago this lamp got broken, it was heading for the bin,
[0:13] but I really wanted to try and save this nice lampshade.
[0:17] I’ve ended up with something that I think looks pretty good.
[0:19] It’s a flame effect lamp.
[0:22] In this video, I’ll run through the build and try and highlight all the bits I got wrong.
[0:26] Hopefully, it should be interesting and entertaining.
[0:30] Let’s get going!
[0:33] I’ve purchased a 5 meter run of WS2812B LEDs and 5 meters of aluminium channel.
[0:42] If I cut both of these into 25cm lengths that should give me 20 LED strips to build the core of my lamp.
[0:52] The first step is to cut the LED into strips and wire them up.
[0:58] The LED strip can be easily cut with scissors however, I do have to cut through some solder joints
[1:03] and I think this might put some stress on the PCB pads -
[1:08] this does seem to cause some issues later where one of the pads comes loose.
[1:15] With the LEDs strips cut I need to get them wired up.
[1:19] I’ve cut 20 lengths of red, green and white wires and tinned the ends.
[1:30] To connect them to the LED strips we tin the connectors on the LED strip and then just reflow the ends of the wire onto them.
[1:40] I’m going to wire up all data lines on the LED strips so they are connected together
[1:45] and add power and ground lines to the bottom of each strip.
[1:49] This should avoid any voltage drop over the LED PCBs.
[1:54] I’m also adding on heatshrink to prevent anything shorting out.
[1:57] A lot of soldering later we have all the LED strips connected to each other on the data
[2:02] lines and we have wires to connect power to the bottom of each strip.
[2:07] In hindsight, it would probably have been better to join the power lines between strips
[2:11] and only add power at a few places.
[2:14] All these wires prove to be a bit of a pain to join up.
[2:22] Next step is to cut the aluminium channels to length, this is a pretty simple job and
[2:27] I make use of my 3D printed mitre block to make this a bit easier.
[3:03] We’ve now got 20 LED strips and 20 aluminium channels.
[3:07] There’s a trick to getting the LED strips into the channel,
[3:10] you need to push it in at an angle to get it under the lip and then you can flatten it.
[3:15] Just trying to stick it straight in is pretty painful.
[3:19] The glue is very strong on these LED strips so it’s almost impossible to pull them out of the channels.
[3:23] It’s looking pretty good already - looks quite prefessional.
[3:27] I now need something to make it into a cylinder to fit inside the lampshade.
[3:32] Let’s jump into Fusion 360 and do a bit of design and 3D printing.
[3:39] We’ll start off with a sketch - I know that want to end up with a circle - I’ve made a
[3:43] guess as a suitable diameter that should accommodate the aluminium channels with a minimum gap
[3:48] between them and fit inside the lampshade.
[3:52] We’ll add a rectangle for the aluminium channel.
[3:55] I’ll do a quick guideline so that we can fix its position.
[4:04] I’ve measured the size required and added on a bit of tolerance for the 3D printing
[4:08] so they will slide in easily.
[4:10] I’ll now just offset the original circle to give us a ring.
[4:17] I want to be able to slide the channels in and have them supported so we’ll add lip in the channel hole.
[4:23] I also don’t want to block any LEDs and have the wires routed through the back
[4:27] so I’ll add some sketch lines for this cutout. This will all make a bit more sense as we extrude the sketch into 3D.
[4:41] The first thing we’ll do is extrude to the full height we require.
[4:47] We’ll now cut out the LED channel.
[4:50] We first cut out the smaller channel and then we make it wider to let the channel slide
[4:54] in and be supported by the ledge.
[5:07] I’m going to add a chamfer to the ledge as I’m going to be printing this upside down
[5:12] and it will make it easier to print the overhang.
[5:17] That’s the basic cutout done, we now need to make sure the wires can be threaded to the rear.
[5:24] We create another sketch and project the required paths from our original sketch.
[5:29] We can then just extrude up and cut out the hole.
[5:36] We can now repeat these features 20 times to get our finished object.
[5:43] This looks pretty good.
[5:46] We should be able to easily slide each channel into the slots and then pass the wires underneath
[5:50] and through to the back.
[5:59] I’m printing two of these, one for the top and one for the bottom.
[6:06] Assembly is quite simple. Sliding the channels into the bottom piece is pretty easy.
[6:12] Fitting the top piece was more difficult and involved a lot of swearing so I’ve skipped that video.
[6:18] I should have included some affordance in the 3d printed part to help guide the channels in.
[6:27] With the top piece connected we just add some hot glue to keep everything in place.
[6:32] You can see how nicely the wires route through to the inside fo the cylinder.
[6:37] You can also see here a fix I needed to apply for one of the pads lifting off the PCB.
[6:42] I ended up cutting a LED out of the strip and connecting slightly further down.
[6:49] Repeating the glueing on the other end gives us our final cylinder.
[6:56] We now just need to join all these power and ground wires together and route them out.
[7:01] Here’s the final wiring harness that we end up with.
[7:05] Whilst doing this I found one mistake where I’d swapped 5V and Ground over.
[7:09] And I also managed to miss one wire when joining them all together.
[7:12] A couple of easy mistakes to make when you have so many wires to join up.
[7:17] Next time I will connect the strips together and only add power and ground at a few places.
[7:25] To drive the system I’m going to use the same circuit that I used for my self organising Christmas lights.
[7:30] The WS2812 LEDs require 5v logic so we need to convert from the 3v3 logic of the ESP32 to 5v.
[7:40] I’m using a spare MOSFET driver chip that I have from another project - any level shifter should do.
[7:47] To power the whole thing I have a beefy 10A 5V power supply.
[7:53] This is actually slightly under specced for driving all the LEDs at full power white which would require around 15 amps
[8:00] but I’m not going to be doing that with my fire simulation.
[8:04] To create the fire simulation I’m using an old school computer game effect
[8:09] - there’s a lot of articles on the web on how to do this - I’ve included some links in the description.
[8:13] With it all wired up and connected we get a pretty good effect.
[8:17] If you squint a bit and use your imagination it does look like fire!
[8:21] I’ve added a very simple web UI based on the one I used for my moon lamp so you can easily modify the colours.
[8:28] It looks nice, there are some issues with the final result.
[8:31] Cutting the LED strip at the solder joints does seem to have weakened the PCB pads.
[8:36] Next time I will offset my cuts so that I don’t have to cut any joints.
[8:43] Driving at full power white is not recommended. If you do this then after a while the aluminium does start to get quite warm and the hot glue starts to soften
[8:53] - perhaps hot glue is not the best choice for this kind of thing.
[8:57] The LEDs are not very good at low light levels,
[9:01] they are either off or on quite brightly.
[9:04] This makes it difficult to get a really good flame effect.
[9:07] The FastLEDs library that I’m using does have a dithering effect that can be used,
[9:12] but that is only really suitable for a small number of LEDs,
[9:15] with almost 300 it cannot update fast enough to avoid flicker.
[9:19] Perhaps dividing the strip into smaller sections is the solution to this.
[9:24] There are too many wires being joined together - this is not very tidy and prone to failure.
[9:30] I should have connected up the power connections along with the data connection and only injected power in a few places.
[9:37] To diffuse the light I’m using some opaque acetate sheet.
[9:42] This is not as effective as I’d like as it is a bit close to the light sources so you can still see the LEDs.
[9:50] Any suggestions for better material to use would be great.
[9:53] I also spent way too long messing around with the fire effect thinking I could improve on the old school effect.
[10:00] I’ve ended up with something that is pretty much the same so that was a bit of a waste of time.
[10:05] Apart from these minor issues, a pretty pleasing project.
[10:08] If you’ve enjoyed it then please hit the subscribe button.
[10:13] Thanks for watching and I’ll see you in the next video!