$ cd ..
// wled-permanent-house-lights.md

961 Pixels: My Permanent WLED Christmas Lights

wledhome-automationdiyledbuild-log

A few years back a friend asked me how I did the permanent lights on my house, and I wrote her a small novel via email. This is that novel, cleaned up and drawn out, because it turns out a lot of people want the same thing: real, permanent, individually-addressable lights on their house that you never have to climb a ladder for again. No more untangling a ball of lights in November and no more taking them down in January. They just live out there year ‘round, and a few taps on your phone set the whole house glowing however you want - warm white down lights on a warm summer night, red/green chase for Christmas, orange and purple twinkles for Halloween or a slow-running rainbow just because your kid asked.

Fair warning up front: this is where my overly-obsessive nature is going to shine through. I planned this thing to death, and I loved every minute of it. I like these projects as much for the learning and the building as I do for the finished product.

This all got started thanks to this article by The Creative Mom. I liked the approachable way she laid out the project, especially the fully DIY nature of her approach. I adapted her guide to the specifics of my house - notably, I’ve got steel siding and aluminum trim, so I used aluminum J-channel from Lowe’s that matched my existing soffit & trim color instead of her plastic.

The layout

Here’s what the install looks like at a high level. In my garage, I have an enclosure box mounted up high in the rafters. The enclosure holds the WLED controller and power supply and all the wiring for the lights runs to and/or from this box. This diagram is helpful for me so that I can always remember where my light segments start & end when I’m setting up new presets. Colored twinkling lights for the roofline with warm white twinkling lights on the window/garage at Christmas as one example. It’s nice having a reference that tells me the garage LEDs are pixels 629-800 so I don’t have to remember!

Three runs off one controller:

  • The roofline — 629 LEDs (pixels 0–629), one continuous string on the house roofline. GPIO3.
  • The garage door — 171 LEDs (629–800), outlining the door. GPIO16.
  • The front window — 161 LEDs (800–961), outlining the window. GPIO1.

961 individually addressable pixels total, and there’s no end to the fun you can have with them.

What runs them: WLED

The software that runs the lights is WLED. It’s free, open-source, runs on cheap ESP32 microcontrollers, and it’s a joy to use. You flash it once (they have an easy-to-use, web-based flashing utility even), connect to its Wi-Fi, and from then on you’re painting light from your phone or wiring it into your home automation platform. I drive mine from Home Assistant, directly from the embedded web interface and via Scoreline. You don’t need any of that stuff — WLED stands completely on its own.

The controller hardware

There are SO many ways to build a WLED controller, from buying premade hardware to rolling your own. Hardware manufacturers are jumping into this pool all the time and bringing new hardware to market, so it pays to do your own research. These are the ways I’ve set up my controllers; you likely will have preferences and requirements different from mine that lead you to other choices.

Option 1 — A QuinLED Controller - QuinLED Dig-Quad (what I use for my house). It’s a pre-assembled board with the fusing and power distribution already built in. Less dinking around with loose components, and at its price it’s almost cheaper than assembling your own. The guy behind QuinLED is deep in the open-source community and is responsive to bugs — I’ve interacted with him on a few questions over the years. He’s since expanded into smaller boards too, like the “dig2go” for tiny fairy-light runs.

Option 2 — a bare ESP32 and components. Not hard, just less convenient. You wire up the ESP32, a buck converter to power it, fusing, and an enclosure yourself. This home-assistant-guide writeup walks the possible configurations well.

The lights

Rextin WS2811 12V 12mm “bullet” pixels. There are a million options here - voltage, format, size, protocols, etc - but I went 12V because the math worked out best for my house given the run distances, voltage drop, and current loads I’d calculated. 5V pixels are great, but 5V requires more power injections and buck converters, and 24V gear was more expensive and less available at the time I designed my lights. 12V, for my needs, struck the right balance between capability and safety. I’ve been running these particular Rextin lights since 2022 without issue.

Mounting: making my own track

Getting the lights permanently mounted onto your house is another major design consideration. You can go full Clark Griswold and staple your lights right to your siding if you want to, but I think using mounting tracks makes for a very clean and professional look.

You can buy pre-made channel like Permatrack, but the pricing was way beyond what I was willing to invest and I enjoy making all the things I can for my projects so I made mine out of aluminum J-channel from Lowe’s. It matched the color on my trim and I had a drill press… and with a little “creative engineering” I assembled a jig that helped hold the J-channel while ensuring my holes were evenly spaced. I wish I would have photographed the contraption I built, it was very temporary but got the job done!

Using my drill press and homebrew jig, I drilled clean holes for each pixel with a step bit — 11/32” is the sweet spot I found. The bullet pixels snap right in with a little bit of effort and they don’t need any additional clips or glue.

For mounting, I screwed the J-channel into my soffit with self-drilling Teks screws. I drilled a hole through the “face” of my J-channel so that my screws held the J-channel up on the back side, avoiding crushing & bending the J-channel by screwing it down through both sides.

The J-channel is nice when working around corners and windows too! Some quick work with a pair of tin snips lets you fold/bend the aluminum around corners while keeping a very professional appearance. I did use some longer screws in a few discreet spots to screw the J-channel down to the brick moulding around my garage door.

Power and power injection

I’m not going to get deep into calculating power draw and voltage drop in this article, just know that they are things you need to account for in your design. I’ll outline how I addressed these issues in my lights.

I run my house lights off a single 12V 30A power supply. Technically, this power supply is a little small for my lights. It’s generally not a good idea to design a system that will leave a component 100% utilized, and 961 12V pixels at full power at full bright white can draw nearly 29A. This is the absolute worst case scenario though - the lights are blindingly, airport-runway bright on full power and full white and I never leave them running like that.

Full color LED pixels like these achieve full color by having three small LEDs in each pixel - one red, one green and one blue. Bright white means all three LEDs in each pixel are running at full power! In actual practice, my current draw rarely hits the teens.

Now that you have a power supply, we have to talk about power injection. Unfortunately you can’t just feed 12V in at the start of one long 600-LED string and call it a day. Each LED in the string sips a bit of the power and voltage drops naturally the longer a wire is. If you only supply power at one end of your string, the blazing bright pixels at the start will have faded to nothing by the end of the string.

To account for this you need to inject power into your LED lights at intervals. Power injection is a major factor in the overall design of your lights. The LED strings themselves provide for this — most of them come in 50-pixel strings and they have wire leads for power injection at both ends of the string. For 12V bullet pixels like the Rextins I use, injecting power every 150-200 pixels seems to be the sweet spot. The Dig-Quad controller has the fused terminals to make adding power drops painless. SpikerLights’ power calculator is a great toy for exploring this — you can see the voltage and current draw and figure out where you need to inject.

For my power runs I used 12AWG low-voltage landscape lighting cable — Lowe’s stocks it in 250’ rolls, it’s cheap and it’s rated for direct burial and outdoor use.

The data wire

You have to get the data signal from your WLED controller to your lights too.

There’s a LOT of information to absorb on this topic. Level shifters, resistors, length of the wire, etc. The data signal for these pixels is sensitive to interference. I am doing a few things in my lights that are against recommended practices, and they work for me, but it doesn’t mean they will work for everyone. I recommend sticking with the recommendations from groups like WLED and QuinLED until you know enough to experiment on your own.

For data I stripped the outer jacket off some 18/2 thermostat wire and used the individual conductors. My first instinct was to keep things neat and clean: run both light strings’ data cables together, in the same jacketed wire. It did not work at all — the lights just flashed and blinked random colors like a broken slot machine. I chased that for a while before I pulled the jacket off and separated the two data conductors. Instantly fine. For my install, I need to keep my data wires for each string separated from each other or else they interfere with each other.

I have a couple of long data wire runs - way longer than recommended and I’m not using a level shifter or a resistor or anything like that. QuinLED has since come out with their QuinLED-Data-Booster that looks to solve the data wire length problem too.

Waterproofing the connections

The LEDs themselves are waterproof, but every place you join wires — power injection points, string-to-string connections — is not, and it’s outside all year. You can buy LED strings that have outdoor-rated, O-ring-sealed connectors even - but in my experience it’s easier, cheaper and more reliable to solder the connections and use waterproof heat shrink tubing. There are whole systems of connectors you can buy into like X-Connect even. I chose soldering.

The modern “smart” soldering irons available today make soldering easy & convenient, wherever you are. I use the MINIWARE TS101, the Pinecil is another popular option. These irons have USB-C inputs and can run off any decently sized USB-C battery pack, making it easy to use outside or on a ladder.

If you aren’t ready to jump into the deep end of the soldering pool quite yet, another option is solder-seal connectors. They are clear heat shrink tubes with a ring of low-temperature solder in the middle of the tube and some heat-activated sealant in the ends. A butane soldering iron / heat gun can be used to apply the solder & seal and they work well! I find that I can work faster using a “traditional” soldering iron and solder though.

Wire routing

You can get creative with your wire routing, depending on where you are installing your lights and what your preferences are.

My enclosure with my controller and power supply is placed high in my garage, and I ran my data & power wires through my rafters/ceiling joists and along the soffit/fascia to where it was needed. I used black waterproof cable glands whenever I needed to route a wire from behind the soffit to my LED strings.

Other useful kit

Wire strippers, Wago lever connectors, soldering supplies, electrical tape, screwdrivers, multimeter, non-contact current sensor, waterproof heat shrink, cable glands, flux, cordless drill & impact driver, cable pulling tools and other equipment can be useful depending on your install.

The portable rig

One thing I enjoy about WLED is that you can build a lighting system in nearly any configuration you can dream up. I’ve since built a WLED instance for the light strings in my office, one for my son’s room for the lights he wanted around his ceiling and a portable rig in a dry box I can drop anywhere in the yard, or in my Jeep, and run a few strings off of. We used it last year to make our Halloween cauldron bubble and the fire underneath it flicker.

The portable one is gloriously cheap and simple: a freebie AC→DC power supply pulled from some forgotten appliance, a $2 ESP32, and a $2 12V→5V buck converter to power it, feeding a couple strings of the Rextin 12V lights I use. Wagos split the +12V out to the light outputs, the buck converter powers the ESP32, and the ESP32’s GPIO pins have the data signal for the lights.

Build or buy?

You decide! The market is ever-growing and there are all sorts of products and services available today - premade controllers, premade tracks, premade “complete” kits. There are plenty of companies out there that will install a full lighting system for you at $35 per foot too.

I enjoy the learning and building process so to me building is the only way to go. Whichever path you choose, I hope you enjoy your lights!


WhatLink
WLED (the software)kno.wled.ge
QuinLED Dig-Quad (controller)quinled.info
ESP32 (just one example)Elegoo ESP-WROOM-32
12V→5V Buck converterACEIRMC 12V→5V 5A USB Voltage Regulator
EnclosureCrocSee 8.6”x6.7”x4.3” IP65 Box
Larger EnclosureHolidayCoro HC-2500
Power SupplyGESD 12V 30A DC PS
Power Supply CableBergen 14/3 AWG w/ NEMA 5-15 Plug
Roll-your-own controller guidehome-assistant-guide.com
Rextin WS2811 12V bullet pixelsamazon
Aluminum J-channellowes
Step drill bitlowes
12AWG landscape cable (power)lowes
18/2 thermostat wire (data)lowes
Power calculatorspikerlights.com
The article that started itthecreativemom.com