DIY Permanent Holiday LEDs: Complete How To Guide 2021

Today on the hook up I’m going to show you everything you need to know to get setup with permanently installed holiday LEDs in November of 2021.

4 years ago I installed LEDs on the roofline of my house and at this point I’ve made half a dozen videos explaining different parts of the LED installation process.  There’s still a lot of good information in those videos, but so much has changed to make the process both easier and better.  This video will be an overview of everything you need to know, all the choices that you need to make, and all the improvements that have happened in the last 4 years.  This is a long video so feel free to use the chapter markers to skip around, and make sure to hit the like button if your questions get answered.

Let’s start with the most basic question: Pixel strings or strips.  For a clean looking install, LED strips can be installed in Aluminum channels with white diffusers, and pixels string can be installed in drilled out J-channel from your big box store or in purpose built mounting solutions like DrZzs Permatrack. Ultimately this choice comes down to aesthetics and personal preference, but for me, I went with strips because I wanted them to point out towards the road, and I wanted to be able to completely conceal them in aluminum channels.  The LED density of a strip will typically be greater, so animations look a little bit smoother from head on, but if you want your LEDs to pointed towards the house for a more indirect effect then strips vs strings doesn’t make as big of a difference.

From a durability standpoint pixel strings and strips are about the same as long as they are permanently installed.  However, if you are planning on taking your LEDs up and down or moving them around, you should avoid strips because they are more delicate once installed.

Pixel strings ARE also easier to fix if an LED goes go bad since it’s easier to cut out a couple pixels than it is to replace a section of LED strip.  Both are totally possible, but soldering on a ladder isn’t the most fun thing to do.  That said, my strips have been up for 4 years and have only required one minor repair caused by a lightning strike, but your mileage my vary.

Once you’ve decided on pixel strings or strips, you’ll need to pick a voltage: 5 volts or 12 volts.  Without getting too complicated, voltage is how hard the electricity is pushed through the wire.  Using 12 volts will mean you need less power injection which we’ll cover later, and you’ll have the ability to push more electrons through smaller wire size, but it comes with a safety tradeoff.  I’ve done lots of experiments showing that it is extremely difficult to cause an electrical fire with 5V, even with a dead short, while a 12V system has enough push behind those electrons to heat up a wire and cause the plastic to melt and smoke.

In online forums and facebook groups I’ve seen plenty of examples of corrugated plastic props that have caught on fire due to faulty 12V pixels, but I’ve never seen a 5v pixel fire.   If you are at all concerned about LEDs burning your house down, which by the way I’ve never heard of, then 5V LEDs are safer than 12 volt LEDs.

If you choose pixels strings, you’re most likely going to end up with WS2811 pixels which you can choose in 5v or 12v, but if you choose strips you are a little more constrained by your voltage choice.  The most popular and readily available 5V LED strips are WS2812B strips, and for 12V strips you should use WS2815 strips, which are pretty pricy compared to 2812B’s.  You can get 12V strips made with WS2811 chips for pretty cheap, but they will only be controllable in banks of 3 LEDs instead of being individually controllable, which again for an indirect lighting is probably fine, but for LEDs that point out towards the road, you’ll want to be able to control each LED.  One last option that exists for strips is the RGBW strip variety that adds a dedicated white LED.  If you are planning on using these strips for ambient lighting year round that might be a good option but you should expect to need more maintenance on your system if you are running them every night.  The RGBW variety is called SK6812 and they exist in 5v and 12 varieties, although the 12v kind is just like the WS2811 in that they are only controllable in banks of 3.

I’ve used all the different types of waterproofing and by far the ones that I’ve had the most luck with are the IP6-5 version where the strip is coated in silicone rather than being inside the silicone tube.  The biggest point of failure in these IP6-5 strips comes when you have freezing dew that gets in between the strip and the aluminum channel and causes a short.  If you have a lot of cold weather it’s worth putting a strip of electrical tape in your LED channel before installing your LED strips.

The last thing to consider when ordering your LEDs is pixel density.

When using pixel strings the minimum density will usually be 70mm or 2 and three quarter inches because the wiring in between the pixels is usually 3 inches.  You can order custom spacing if you go directly to the manufacturer, but buying from Amazon or AliExpress will usually get you 3 inch spacing.  I use pixel strings for my seasonal lighting around doors and windows, and I drilled holes in PVC conduit 2 and three quarter inches on center to make frames that are easy to install and remove.

For strips I’d highly recommend getting the 30LED per meter variety where the LEDs are spaced 32mm or 1 and a quarter inches on center.  If you really want to get crazy, you could use 60LEDs per meter, but keep in mind that when you double the number of LEDs you’re also going to double your power draw.  Which leads me to power supplies.

When choosing a power supply a good general rule is to budget 50 milliamps, or .05 amps per 5v LED or  30 milliamps or .03 amps per 12V LED, so a 5V 50A power supply should be able to drive 1000 LEDs and for 1000 12V LEDs you’d need a 12V 30A supply.  It’s also important to note that in the real world 1000 5V LEDs are never going to pull 50 amps, but since you also shouldn’t continuously run a power supply at it’s max current, the overestimation of milliamps per LED works out well.

If you want to go straight to the best quality power supply you should look for the MeanWell brand name, but I’ve had good luck with my cheap generic power supplies that are still going strong 4 years later.

For both strings and strips I’d recommend using 18 gauge 3 core wire, and my current favorite type is this RVV wire that has a nice thick PVC jacket and seems to hold up really well to the elements.  I’ll link the specific one I use in the description.

Next let’s talk about joining your LEDs together.  If you’re using pixel strings they come with these connectors on the ends which would let you just clip your strings together.  However, these connections are not waterproof, so if you are doing a permanent install you should replace them and I recommend using solder seal butt connectors.  To do that just strip about a half inch of wire off each end, then slide the butt connector over one of the wires and make a loop on the end of each stripped wire.  Hook the two loops together and twist.  Then slide the butt connector over the connection and heat it with a lighter.  You should see the heat shrink tubing conform the wire, the colored waterproofing will melt to seal each side and the solder will flow onto your stripped wire.  These things are very waterproof and I just leave mine exposed, but if you want you could wrap them in electrical tape or heat shrink for extra protection.

You’d use the same process for injecting power into pixel strings, which again we’ll talk more about later.

Joining LED strips isn’t quite as easy, but in my opinion there a best way to do it.  For each straight section of your roof you should pre measure the exact length of LED strip that you’ll need so you don’t need to do any cutting or soldering on a ladder.  To join two IP65 waterproof strips together start by peeling back the silicone covering.  The best way to do this without damaging the strip is to use a pair of nippers to cut down into the covering and then peel the covering towards the cut end of the strip.  Don’t peel from the cut end because you could easily lift the soldering pads and ruin that part of the strip.  I recommend sacrificing one pixel so you have a full pad to solder onto.  Start by putting three quarter inch heat shrink tubing over one side of the strip, then stick your full pad onto a heat resistant surface.  Use the adhesive back to stick the half pad on top and lay a thick bead of solder over each of the pad junctions.  After that fill the entire exposed space with hot glue and slide the heat shrink tubing over it.  When you heat up the heat shrink with a lighter the hot glue will melt and seal up the entire connection.

To go around corners it’s okay to bend the strip from front to back, but you shouldn’t try to bend from side to side.  To make those angles like on the peak of a roof cut the strip and remove the silicone covering like before.  I like to use the wire that comes on the ends of the strips to make these junctions because it’s nice and flexible.  Before you start soldering slide your 3 quarter inch heat shrink over both ends of the strip, then add a bead of solder onto each pad.  Then tin the ends of the wire and apply a little heat to each pad to join the wire and the pad.  Cover the exposed area in hot glue and use a lighter on your heat shrink tubing to seal up the junction.

Any time I make a junction I always add a power injection point.  If it’s a corner junction like this, then I just add an extra set of power wires, but if it’s a strip connection I use two pads that are at least 1 LED away from the junction.  By using a set of pads away from the strip junction, it reduces the chance of the solder joints breaking.

To make a power injection point cut down into the silicone covering like before and add a bead of solder to the positive voltage pad and the ground pad.  Then tin the ends of some 18 gauge copper wire and attach them to the pads.  Fill the exposed spaces with hot glue, then slide the heat shrink over the whole thing and use a lighter to shrink it and re melt the hot glue.  Now you have some easy leads to inject power using solder seal butt connectors so you don’t need to do any soldering on a ladder.

Speaking of power injection, what is it and how do you do it?  When you have a long string of LEDs powered from a single location, then the voltage available to each LED will decrease as you move down the strip.  This is caused by the fact that all your power is going through two tiny strips of copper inside the LED strip instead of thick wiring.  As I mentioned before, using 12V strips will allow you to push more electrons through these tiny wires, but you’re still going to need to inject power if you are planning on lighting up your entire roofline.

As a general rule 5v strips should be powered at the beginning and end of every 5m strip, and 12V strips can be powered at the beginning and end of every two strips, or 10m.  The most effective power injection is called home run injection, where you run a separate power wire from the power supply to each injection point.  In my case, I only have one good spot to wire a home run, so I make due with parallel injections inside the aluminum channels.  The idea behind parallel runs is simple: Inside the strip you have a single small copper pad carrying all the current.  By adding a parallel wire, you are at least doubling the amount of current that can travel through that same distance.  The wire I’m using is 22 gauge solid core wire and it’s connected into each strip both at the beginning and the end.  Using a combination of parallel runs with my single home run, I'm able to achieve accurate and bright colors on my 473 first floor 5V LEDs.  My second floor roofline doesn’t have any good locations for home runs so I’m only using parallel injection, and with 381 LEDs I’m still able to get good color accuracy as long as I limit the brightness to about 75% in software.

What software you might ask?  Well, The LED lighting hobby used to be pretty clearly divided between people who sequence full out shows and people who wanted a low key setup with some animations they could control on their phone.  Unfortunately these two setups used to use completely different hardware so if you ever wanted to jump between the two, you’d need to replace a lot of your electronics, but in 2021 that’s not the case anymore.

A combination of faster microcontrollers in the form of the ESP32 and absolutely amazing development by AirCookie and the rest of the WLED team has blurred the lines between the two groups, and now you can do everything with a single setup.

For permanently installed LEDs there is no better hardware option than the QuinLED DigUno or DigQuad depending on how many LEDs you have.  The DigUno can support up to 15A continuous draw from 5v or 12V LEDs, which would normally correspond to about 300 5V LEDs or 600 12V LEDs, but you’ll see in a minute that you can actually safely drive significantly more LEDs than that using the WLED software.

If you need more LED outputs or more power the DigQuad bumps you up to 4 data outputs and up to 30A of continuous draw.

The DigUno and DigQuad have built in level shifters to make sure your LED data works properly, fused power outputs for extra safety, and a built in voltage regulator so you can power the board with 5v or 12v without any extra electronics, so buy the correct power supply for your LED voltage and the DigUno and DigQuad will work with that power supply.

The most important part about the DigUno and DigQuad are the fact that they come with an ESP32 microcontroller preinstalled with the super powerful WLED controller software, so you don’t have to do any programming at all to get your LEDs setup.  The QuinESP32 comes in 3 variants, a built in antenna, external antenna, and my favorite and the one I’d recommend to everyone, the ethernet variety.  Using ethernet future proofs you for later down the line when you inevitably want to try out a music sequenced show, since sending your light show data over WiFi is a bad plan.

To hook up your diguno or digquad start by pulling the ESP32 board off of the power delivery board.  There’s a small plastic piece that covers the unused pins on the right side, it’s not a big deal when it falls off.

For the diguno there’s a single power in and a single power out with one fuse. This fuse should be sized for your LED installation, so if you’re going to be pushing the maximum current through the DigUno you’d replace the 10A fuse with a 15A fuse.

Your data line will connect to the LED1 terminal, unless you want to run two different lines off of a single Diguno, in which case you’d hook one line to LED1 and the other to LED2 and then power both strips from the single output.

If you’re using a digquad there are significantly more power output terminals, all with separate fuses and each terminal can handle up to 10A.  In my setup I have my main power and home run injection on terminals 1 and 2 which share this 10A fuse.  If I wanted to be able to supply 20A to that line I could run the main power through terminal 1 and the injection through terminal 3 which is on a separate fuse.

If you want to run the maximum current through your digquad make sure you are using the correct size cables to feed the board.  If you’ve got the v1 or v2 version of the digquad you’ll want to connect at least 2 of the input terminals with at least 18 gauge wire, and if you’ve got the new v3 board you can connect much thicker wire like this flexible 12 gauge, which can supply plenty of current.

For a clean looking install I also like to use ferrules on the ends of my stranded lines before attaching them to the screw terminals.  It’s not a totally necessary expense though.

You can see the digquad has 4 different LED data outputs so you can do multiple rooflines and still have some room to grow.  About the only thing that I don’t like about the DigQuad and DigUno is the fact that they use resistors on the data lines.  A long time ago adafruit posted a best practices blog about hooking up addressable LEDs and they recommended putting a 300-500 ohm resistor on the data line to prevent spikes in the data line that can damage the first pixel.  However, in all my LED projects the only thing that’s ever damaged the first pixel on one of my strips was a lightning strike, which I don’t think a resistor would have helped, and unfortunately, I’ve experienced lots of data corruption issues when using a resistor on data lines that are longer than a few feet.  There are two fixes for this bad data problem: You can either desolder the 249 ohm resistor and replace it with a wire or a solder bridge, or you can use one of Quindor’s data boosters that lets you select between the 249 ohm or a 33 ohm resistor to fix those data issues.  Both options have worked well for me, so if you see your LED strip freaking out during animations, or sometimes just coming on at all, the resistor on the data is a likely culprit.

So that brings up the star of the show, WLED.  I’ve written two versions of my LED control software, and 1 version of my RGBW lightbulb control software, and I’m very happy to report that no one should use either of them anymore.  WLED is a better solution in every way.  Not only is it more powerful, easier to setup, and easier to control, but Aircookie is a real developer and is constantly making updates to the software to make it better.

Lets take a look at some of the most important parts of WLED.  When you first connect your WLED device to power it will broadcast an access point so you can setup your wifi information.  Connect to the WLED wifi network using the password wled1234 and a browser window should automatically open up, but if not you can go to 4.3.2.1 in your browser to enter your wifi information.  If you’re using the ethernet version of the QuinESP32 you can skip this step and just plug in your ethernet cable.

Next find WLED’s IP address on your router or using an app like fing, and then connect to that IP.  If you’ve got a lot of screen real estate click on PC mode to see all the tabs at once.  The first thing we need to do is setup our LEDs, so click on config and then LED preferences.  Depending on the version of WLED you’re using you may see a spot to put the total number of LEDs at the top, or just a readout of the total number of LEDS you setup on your outputs.  Below that you have your different outputs and the pins that they correspond to on the ESP32.  If you got a QuinLED DigBoard these outputs are already setup for pins 16 and 3 on the diguno and 16, 3, 1 and 4 on the DigQuad.  For each output select the type of LED you have, which is most likely the WS281x variety, then put in the number of LEDs you have connected to each output.  In WLED version 13 and above the start channel is automatically calculated for you.

This is also the page where you need to decide if you’re going to use the brightness limiter, which in my opinion is one of WLEDs most advanced features that isn’t found in any other software that I’m aware of.  The concept is simple:  If you want to run all your LEDs at full brightness white WLED will calculate the number of amps that would pull using the estimate of 55mA per LED on full brightness white.  If you had a total of 1000 LEDs that would need 55amps at full brightness white.  If you had the brightness limiter set to say 30amps, it would only allow those lights to come on at 55% brightness so that it would only pull a maximum of 30 amps.  Not only does this add a layer of safety, but it also helps to prevent color inaccuracies due to voltage drop.  However, the coolest part about the brightness limiter is that it doesn’t just cap everything out at 55% brightness, it instead calculates the total amps needed by each the specific animation you’re using to make sure it’s giving you as bright of an output as possible without going over your current limit.  I can’t even imagine how aircoookie wrote this to work and still maintain 60 frames per second, but it works flawlessly.

Once you’ve got your LED page setup, you’re ready for blinking lights.  Go back to the WLED main page and you’ll see 4 different panes in PC mode.  On the left is the color picker where you can choose from dozens of premade color pallettes, or make our own by selecting up to 3 colors from the colorwheel.

These colors will be applied in different ways to all of the patterns which you can find in the next pane.  Each pattern has two modifiers that may or may not apply to it, the first is speed modifier, which as you’d expect generally changes how fast the pattern moves, and the second is intensity which usually changes how often the pattern repeats, but sometimes the sliders do less intuitive things, so it’s worth playing around with them to get the pattern the way you want.

Next is the segments pane which is where you can define specific parts of your house, so that instead of the patterns repeating over every connected LED, it only shows within that one pattern.  For instance, I’ve posted my Halloween LEDs on twitter a few times and people always ask how I make my fire pattern look the way it does, because if you just choose Fire 2012, you’ll be pretty underwhelmed by the results.  To make the fire look convincing I make each angle on my roof a separate segment, and I make sure that the start of the segment is always at the bottom by hitting the reverse direction button on segments where a higher LED number is closer to the ground.

For my LED wreaths I take the total LEDs in each circle divided by two to make two segments per circle.  After that I apply the Fire 2012 effect and tweak the speed and intensity until it looks the way I want it to.  You can also individually change the speed and intensity of each segment by click the checkmarks next to the segments.  In this case it will only apply the changes I make to the segments that are checked.  One thing to note, if you’re using the latest stable release of WLED which is 12.0 at the time of this video release then you  will be limited to 16 segments and you can’t rename them, but as of 13.0 the ESP32 supports 32 segments and also adds the ability to name your segments, and if you’re watching this a year from now WLED is probably 10x more amazing.

Moving on, after you’ve taken all the time to make those segments you want to be able to use them in a bunch of different ways, so you should save them into a preset.  To do this, click on new preset, give it a name, and make sure all 3 boxes are checked including the one about segment bounds.  This way if you want to make a new effect with the same segments, you can just start with this preset, then change the effects, and then save as a new preset without overwriting your old one.

The last reason WLED is amazing is how flexible it is.  As I mentioned earlier, for years if you wanted a low key setup to do some animations your phone you’d choose a ESP8266 based microcontroller to select those patterns, but if you wanted to do a whole light show sequenced to music you’d need to buy an entire separate controller like a Falcon F16V3, a HinksPix Pro, or a Kulp board, but WLED and the ethernet ESP32 have changed all that.  In WLED if you click on Config and then sync interfaces you can see exactly how flexible WLED is.  It can be setup to use a physical button, one WLED controller can sync with another, it can be discovered and automatically controlled by home assistant, it can receive and process DMX inputs in E131 format and DDP which are both used by XLights to make light shows synced to music, you can control WLED directly with amazon echo devices, you can use MQTT, or the Blynk protocol, and you can even add WLED into your Phillips hue app to work alongside your other hue lighting.

I’m not going to go into the details of making a light show in this video, but rest assured that if you decide to jump into the hobby, that you won’t need to replace your DigQuad or WLED.  I’m not saying that controllers like the Falcon F16V3 and HinksPix pro are obsolete, they are definitely still useful when you have dozens of outputs like on a megatree or matrix, but it’s great to see that it’s easier to move between the two control types now.

I’ve got tons of links down in the description for my recommended vendors and LED listings.  Those are affiliate links, so if you appreciate this video consider using them since that gives me a small percentage of the sale at no additional cost to you.  If I missed something in this video, or you still have questions the best way to get them answered is to ask a question down in the comments section of this video.  A word of warning on that, the YouTube antispam bots have been going nuts deleting any comment that contains a link, even my comments, so don’t post a link in your question.  If you have a question that needs a video or picture of your problem, the best way to do that is on the hookup home automation facebook group that I’ve got linked in the description.  If your question is specific to WLED there’s also a WLED discord channel, also in the description.

Thank you so much to my awesome patrons over at patreon for your continued support of my channel, if you’re interested in supporting my channel please check out the links in the description.  If you enjoyed this video please hit the thumbs up button so youtube knows it’s a good video, and consider subscribing and as always thanks for watching the hookup.

AmazonUS LED Shopping List: https://amzn.to/3co4XOF
AliExpress LED Strips: https://s.click.aliexpress.com/e/_A5VVwU
AliExpress LED Pixel Strings: https://s.click.aliexpress.com/e/_Aryl7e
QuinLED DigUno/DigQuad (US Link): https://drzzs.com/shop/
QuinLED DigUno/DigQuad (International): https://shop.allnetchina.cn/collections/quinled
WLED Official Website: https://kno.wled.ge/
Traditional Light Show Controllers and MegaTrees: http://www.holidaycoro.com/Ready2Run-Flex-Expansion-Controllers-s/2099.htm?Click=12722
Get Help Here:
Facebook Group: https://www.facebook.com/groups/473812443269387/
WLED Discord: https://discord.com/invite/KuqP7NE

**As an Amazon Affiliate I earn a commission on qualifying purchases at no cost to you**

Leave a Reply

Your email address will not be published. Required fields are marked *