LED Christmas 2021 project

WOW! It’s been a long time. My last job kept me too busy to blog and I had another kid and my . . . . okay those are all excuses. But after all this time I do miss it! So I finally had a reason to write and kept thinking I need to 1) move to https! 2) refresh the theme 3) something else . . . and those mind games kept me from writing too. I still need to do all that other stuff but I found a way to move past it. 🙂 DONE! Welcome to the new host and the 2021 WP theme! 🙂

I’ve been into Neopixel LED’s since . . . well, whenever Adafruit released that library and changed everything. Was it Adafruit? Okay, the details are fuzzy now. But when I first hooked up a strip of LED’s to a microcontroller it was really easy thanks to that library. And it came with all kinds of cool examples! I loved the rainbow example and played around with it till it was a pattern I liked, wrote that to the firmware . . . and then that was it! Whenever I wanted LEDs I had a way to make a rainbow of 50 LEDs I could just plug my microcontroller into a usb power bank and I had a nice little rainbow of colors. Seemed impressive at the time.

2017-2018 era

People have dreams of LED’s in their house behind the TV and under cabinets and the core issue is always the same . . . how do you hide the wires and the control box? I’m still not good at that. But you know what project DOES NOT require you to hide the wires and control box? That’s right! Christmas lights!

So back in 2017 or 2018, I bought these christmas lights from Amazon and strung them up the same way I have other Christmas lights up but this time I made a cool Christmas pattern and wrote that to the controller. I needed to inject power (anything more than 50 on a string is too much for the USB power let alone the tiny jumper wire I was using) so I used this power block that seemed water resistant enough I could just mount it under my roof. I put it half way though the strip to provide enough voltage to both size and DONE! Best Christmas lights ever! Except that the neighbor bought a set from Costco and his had a remote and like 10 patterns. FAIL!

2021 Goals

My wife has always wanted lights that were perfectly aligned instead of the droopy look you normally see in Christmas lights. And I always wanted to expand my firmware so that I could make a simple way to choose between, say, 11 patterns (no idea why 11, just had to be more!).

So, I had 2 goals

  • Find a way to mount to the roof so the lights are all lined up
  • More patterns!

I already had all the electronics (endless microcontrollers plus those LED’s from above) I needed from those past years but as usual, the mounting is what stumped me. I started to look online for what the “crazy Christmas lights” people do and there is all kinds of solutions: a) using PVC and drilling holes in them this size of the lights b) using the flat LED strips that are IP68 water rated and putting them in an aluminum channel with a diffuser c) this “Dr Zzs” guy that designed an aluminum “gutter” that has holes for the exact kind of LEDs I had already d) a professional with professional prices. I looked at the video from Dr Zzs and thought about going that route but I didn’t know how I would mount them to my wooden eves, working with metal gutters like that seemed like a nightmare, and, well, they were out of stock anyway.

The Software (WLED)

While I was on the journey to find a way to mount the LEDs I discovered the amazing WLED project. It seemed to be everything I ever wanted AND it had over 100 patterns many of which could be combined with your own set of colors. BOOM! So one morning I tried it out and was setup in with a string of lights controlled over wifi in an hour or two. The first 90 minutes of that was failing to see the Web Serial based “easy install” method and instead trying to figure out why the “pip install” method was not working. Don’t get me started. I just used a LOLIN32 board I had here from years ago which isn’t even listed as a supported board.

WLED is just SO GOOD and I’m just getting started with it. It can be controlled directly over wifi, using an app, or using a bunch of other methods. I quit playing around with it so I could focus on mounting the LEDs but suffice to say my family is going to have so much fun playing around with all the options.

Later I found out it was easy to automate them via a simple schedule so even that part is done (my LED’s from 2017-2018 stayed on all day).

The Clips!

My other hobby has been 3D printing (more blogs about that soon hopefully!). It occurred to me that this was the perfect use case! In fact, I had been thinking about that for a long time and was thinking about making these sorta “blocks” that would house the wires and most of the LED itself to protect it from the sun (I live in Phoenix, AZ and we don’t have freezing or rain or snow to worry about). The problem with the “block” idea was that the time to print all the blocks PLUS the cost of filament meant I would spend more on that than the LED’s themselves. And as mentioned above, there were cheaper solutions even if you went custom. So then I considered wood and just drilling holes, painting it the same color as my eves, and then mounting that. But then I saw the cost of wood! Plus the wood is never straight and neither is the roofline!

Then, thanks to another project I thought about what could I print hundreds of that would be really quick to print. And something that is about 10mm high and has a 10×5 I could print 20 at a time. So then the clip idea was born! It all seems so simple and obvious NOW but at the time it was a revaluation for me.

After about an hour, I came up with this

The idea here is I wanted something I could clamp onto the LED to hold it in place and something that would be fixed in two places so it wouldn’t swing at an angle when the wire was pulled (like a coax cable holder would). I printed a few prototypes to get the sizing right but soon I was printing 20 at a time. I really should have used PETG instead of PLA but a) PLA was already loaded in the machines, b) people say PLA is good enough for 95% of projects! how could I know it wasn’t good enough if I didn’t try? c) almost every time I have had issues with my printers it was when I switched out the filament type. It’s almost December! I gotta get going! Anyway, the next day, I had a nice pile to try out.


Having to place every LED and screw it in is a bit of a challenge in a few ways. For one, it takes longer than I have ever spent on Christmas lights before. It took over 2 hours for the first string of 50 (I only had 50 or so clips printed by then) and after those few hours on the ladder I was just kinda shaky so I had to stop anyway. But it worked! Here is the controller and a few LED’s. That white wire is for a camera . . . ignore that.

Not done yet! (new clip design)

That was the first 50! I have 250 to go to cover the roof line. I did another 100 or so the next the next day and wired up the injected extra power needed for that many LED’s with the power adapter I mentioned above. After showing this to Jim he had all kinds of ideas but one of them stuck. This is what he said almost exactly:

How about instead of _o_ you try o___o?

So that led me to my next design!

This one is a bit thinner (8mm instead of 10mm) so that I can use T50 staples (which are 10mm wide) to hold it down instead of screws. And as you can see it’s easier to feed in the LEDs. I did manage to break a few in my testing but it’s also possible to slide them on instead of pop them on so that’ll be my suggestion. I might also need to make them a bit thicker and the diameter of the inside of the C a bit smaller too. As a side effect, you can sorta make shapes by combining them.

I tried to staple them to a board as a test and it didn’t work the way I expected at all. The stapler has to be flat against the surface to work right and I was not able to put the staple across the 8mm width (you can see how far away the staple ends up on the upper left of the picture below). Instead I just put the staple right into the plastic and as long as I miss the holes I added as a screw backup plan it works fine. If the staple goes into the hole then the piece breaks or worse, it’s just wobbly and pivots on the other part of the staple.

I need to think more about a better “staple friendly” design but for now these should work. They really really NEED to work since I have a 1 gallon ziplock bag full of them!

The future

Okay, okay, so yeah, putting a breadboard in the eve of my roof isn’t going to last long especially with those tiny wires. There are a few good solutions I saw but I haven’t tried them because they are always out of stock! But many are cheap (like $30?) and have a esp32 included and have a custom board that has fuses and wire blocks that make hooking it up easy and safe. That said, I really like the idea of using what I already have and for now I’m going to 3D print a box. Next year it would be cool to design my own PCB and not need a breadboard or my previous favorite, just using a bunch of electrical tape to hold it all down. EasyEDA here I come! My guess is that for less than $30 I can make my own PCB (though it won’t be as good as the QuinLED-Dig-Uno).

I made SOME progress on that already but I need more time to make sure this will work.

Also, I have no idea how well the 3D printed clips are going to hold up. If they don’t hold up I’ll start sooner and print in either PETG or PC Blend (from Prusa). I really just need a set of 4 Prusa Mini’s for every type of filament!


Why 5V instead of 12V?

Generally speaking the 12 volt LED’s will likely give you less trouble as you go beyond more than 100 LED’s but I really really like the idea that I can power the LED’s from the board if I have to. Also, from what I read the 12V ones tend to fail in more dramatic ways I would rather avoid (but that could also be more ambitions plans and have nothing to do with the voltages). For sure I have to inject voltage/power at the start and then about every 100 LED’s if I want to maintain the colors across the entire length of the run.

Why not print with better materials to start with?

As I mentioned, whenever I switch out materials I have issues with the printers! If I had more time I wouldn’t mind switching one but I needed 100s of them really fast! Plus, PLA might be fine! We’ll see. Can’t wait to see if them melt in the summer!


It really was soooo easy. And while there are other options none seem to be as popular or as open.

What happens when I have 10 boards running WLED?

At some point you might want to do something that WLED can’t handle. The good news is that WLED supports all kinds of control protocols. It’s very common to use xLights to orchestrate many WLED controls. I’ll be attempting that as soon as I get all this installation done!

Products and links mentioned

None of these companies paid me to mention them (not that I would be opposed to that!) but all of them are helpful to make cool DIY LED projects.



Categorized as DIY