Do You Want To Build A Light Show?

November 6, 2019

Today on the hookup I’m going to walk you through everything you need to know and every step you need to take to create your first Holiday LED music and light show.

Holiday light shows aren’t exactly new, but they used to require so much technical know-how that they were only attempted by electronics wizards (of winter).  Fast forward to 2019 and the process has been simplified and the options and capabilities expanded to the point where even a novice can put together an impressive light show in under a week.  This video is going to cover the absolute basics of holiday light shows to get you started in time for this year’s big season.  This video came out a bit longer than I was expecting, so feel free to use these timestamps to jump around the video to the parts that you’re interested in.

First, lets talk about the star of the show, the LEDs.  In this department you’ve got a lot of choices, but here are some generally accepted rules to help you to make informed decisions before you buy:

Pixels vs Strips

If you are going to be moving your props around, and taking them down every year you should probably use individual LED pixels instead of LED strips.  LED strips are great for more permanent setups because they are cheaper per pixel, easier to install, and can achieve a more cohesive look due to their higher pixel density, but they don’t do well with being bent and moved around, and if an LED burns out it’s much more difficult to replace a single LED in a strip than a single LED in a string.

5V vs 12V

The 5V vs 12V debate has gone on a long time, but here’s the easy answer:  If your runs are short, like 50 pixels or less, then 5V LEDs will look great and consume significantly less power than their 12V counterparts.  If you have long runs then 12V strands will allow you to achieve greater brightness without losing color accuracy due to voltage drop.  No matter which voltage you choose, if you’re doing long runs you’re going to need to inject power, but 12V strands will require less.

WS2811 vs WS2812 vs APA10X

For pixel type there are tons of options, but 99% of holiday light shows are done with either WS2811 or WS2812B pixels.  If you want to know more about the differences between these chips I made a whole video on it, but for your light show you’re probably going to end up with RGB WS2811 pixels the vast majority of the time.


Addressable LEDs are useless without something to send data to them.  We call these devices pixel controllers and just like LEDs you’ve got quite a few options, so here’s the breakdown:

If you’re just going to be messing around in your office or a single small prop, you might want to start out with open source controller like an ESP8266 based nodemcu running ESPixelStick or WLED.  This is a great way to get started because you can get the hang of the concepts for very little money, and you may even be able to limp through a small show, but chances are you’re going to want to upgrade to a wired controller sooner rather than later.

There is quite a bit of competition in the world of wired pixel controllers, and I don’t claim to have used every controller type, but here is my opinion of some of the most common controllers:

1) If you’re looking for super DIY and cheap, you can get a kit for a SanDevices E682 16 port controller for just $109, but when I say a kit, I mean a kit.  The components come in bags with an unpopulated PCB that you’ll need to assemble and solder yourself.  If that’s your idea of a fun Friday night, go for it, but even for a seasoned solderer like myself, I’d prefer to pay a bit more and skip the assembly step…

2) The most popular controller on the market is the Falcon F16V3, it’ll cost you $200 and has 16 ports expandable to 48 with optional differential receiver modules.  The Falcon has excellent integration with the xLights, and supports more LEDs per output than any other board making it a good choice for someone who really wants to dig in to the hobby and learn about sequencing.

3) On the opposite end of the spectrum from the SanDevices kit are ready2run kits from companies like holidaycoro that preassemble a HinksPix Pro Controller, power supply, water tight enclosure, and 16 waterproof lighting pigtails to get you started quickly and easily.  The preassembled packages lower the learning curve significantly and allow you to get up and running much quicker.  If you’re worried about having enough time to set up your lights, or don’t want to do the wiring yourself then these pre-assembled kits definitely allow you to exchange a little bit of your money for a lot of your time.

I personally have both a falcon controller and a hinkspix pro and the great news is that picking one controller type doesn’t lock you into a specific ecosystem because these controllers all speak a common language called E131.


Speaking of E131, it’s time to get some of the vocabulary out of the way, and in all honesty this is the most confusing part or the hobby, so I’ll try to be as succinct as possible.

This pile of lights is called a pixel string or strand.  The strand contains 50 pixels, that’s these things.  Inside each of these pixels is a red LED, a green LED and a blue LED and turning them on at different brightness allows the pixel to generate over 16 million unique colors.  Because each of these red green and blue subpixels are controlled individually it means that a single pixel actually contains 3 controllable channels, Red, Green, and Blue.  And that means that my 50 pixel strand actually has 150 E131 channels.

In order to be controlled, these channels need to be assigned to something called a Universe, which is a terrible name for what it actually is: an addressable group of 512 channels.  Because of this channel limit, a medium to large light show will include dozens of universes.  You don’t have to have 512 channels in a universe, that’s just the maximum, in fact you’ll see that by default most universes will only have 510 channels defined, not 512, and that’s because 512 is not divisible by 3, but 510 is.  If you have more than 170 pixels in a run it’s going to require more than 1 universe to hold them, but it doesn’t matter because controllers can output multiple universes per port.

So to recap: 3 channels makes a pixel, 170 pixels can fit in a universe, and controllers can output multiple universes per output connection.

Prop Selection

Now that you’re an expert on LEDs, controllers, and E131 terminology you can start thinking about your show’s individual elements or props.  Are you going to have LEDs on your windows and roofline, or are you going to stick to ground based props?  Are you going to have a main focus of your show like a megatree or are you going to have a bunch of small things?

If you want to get into this hobby I highly recommend you don’t try to do it all at once.  Don’t attempt to make a show that is visible from space your first year.  Instead you can add a little more each year as you get more confident with the process, this also helps to keep the cost reasonable since you’ll just be adding a little bit each year.  My first year I permanently installed LED strips on my roofline, built a LED wreath using PEX tubing and made some simple animations using cheap microcontrollers.  Last year I made PVC frames for my doors and windows to be able to easily put up and take down my seasonal lights, and I sequenced my first light show in xLights.

My Megatree

This year in honor of the youtube #teamtrees initiative I’m going to be adding a few minitrees and a 13 foot megatree to my show using the kit from holidaycoro.  I’ve also made a deal with them to donate my commission to the team trees initiative here on youtube, so if you use the links in the description you’ll be helping plant real trees as well as electronic ones.

To put the megatree together your first step is to spend roughly 2 hours pushing pixels through their mounting strips to create a total of 16 different strands, I left 1 open hole at the top and 5 at the bottom, but you may want to leave more room at the bottom to increase your ground clearance if you get a lot of snow.  Make sure that the end with the connector is on the side with 5 open holes, not one open hole.  A good pair of work gloves is an absolute must for this process.

Next you’ll need to head to your local big box store to pick up around 100ft of rope, 20 landscaping stakes, and 2 10 foot lengths of fencing “top rail”.  These items added around $50 to the cost of the project.

I wanted my tree to be 13 feet tall and I wanted to hammer 3ft of pole into the ground for stability, so I cut a piece of top rail to 6 feet, picked my location, and started hammering.

The megatree kit comes with a milled plastic top piece with slots to hold the pixel mounting strips using zipties.  Put each strip in the top mounting plate, making sure the pixels are facing outwards, and tie on some lengths of rope to act as guy wires.  Slip the mounting plate over the top of the uncut piece top rail and lift it onto the section you pounded into the ground.  It’s helpful to have a second set of hands here to untangle the strips while you hold the pole in place.

On the bottom each strip there’s a strain relief piece that gets attached by looping the strip and securing it with a few zipties. I ended up needing to install my strain relief pieces backwards because my landscaping stakes were too large to fit through the intended side.

Pull each strip taught and stake it into the ground, you can do fancy math to figure out how far apart each strip should be, but after trying to use a tape measure on the first few strips I just eyeballed the rest.

Since this megatree has 16 strands and the controller has 16 outputs, just screw together the pre-attached waterproof connectors in sequential order and your wiring is done.  Because each run is only 50 pixels there’s no need to run power injection, so the wiring is as simple as it could possibly be.

Now that the tree is up we need to wire the controller which needs both AC power and ethernet. The hinkspix pro controller can be connected directly to a computer’s ethernet port, or to a router or switch.  I suggest you connect it to your home network using a long ethernet cable since the controller has automatic firmware updates when its connected to the internet.

The controller also has a nice on screen display to let you do some testing and troubleshooting and it’s also where you can select if you want your controller to automatically get an IP address from your network (DHCP), or if you want to force it onto a specific address (Static).  If you don’t know what that means, you probably want DHCP.  Once connected to a network the controller will show its IP address on the LCD panel, write it down.  If you absolutely can’t wait, you can also use the controller to make your megatree light up for the first time, but we’re pretty much ready to do it remotely, so hang tight.

Start to finish the construction of the megatree took me just over 4 hours. When I decided I was going to make a megatree I was expecting more like 15 hours of work, so being ready to sequence so soon was a very welcomed surprise.

The next step is Xlights, so go to the link in the description, download it and install.  Step one in xLights is to choose a directory on your computer to be your “show directory”, this is important, so make sure you remember where it is.  Next you need to add your controller so in the setup tab click Add E131, then select unicast and type in the IP address of your controller.  If this is your first prop you can use 1 as your starting universe, but once your show gets bigger you’ll want to make sure your props don’t have overlapping universes.  On the megatree you have 16 strands of 50 pixels connected to 16 different outputs.  So for number of universes you’ll put 16 and since 50 pixels makes up 150 channels you’ll input 150 for last channel.  Press OK, then press Save Setup.

Next we just need to double check the output settings on the controller.  If you ordered the standard megatree package from holidaycoro these settings should be pre-populated, but if you ordered an extra expansion board they may be different, so head over to the IP address of your controller and select E131/Artnet  on this screen you’ll confirm that your settings reflect what we did in xlights, so in this case universes 1-16, 150 channels per universe.  You’ll see that this says it’s going to output from controller start channel 1, so we want to make sure that start channel 1 is mapped to the correct output, so click on output settings, SPI ports, and ensure that start channel 1 is mapped to the beginning of the first port and the pixel count for each channel is 50, then press autocalc start channel and press save.  To activate your settings you’ll need to go to the reset menu and press the big red reset button.

At this point you should be all setup and it’s time to test your lights.   Click on tools, then test, then select one or all of the outputs of the E131 profile that you just made.  Click on “background only” and move the background brightness slider and your tree should light up.

XLights Sequencing

Assuming that all went to plan, it’s time to tell XLights what that props looks like, so hit save and go to the layout tab.  An accurate layout is important for making your show look best so go outside to the position where most people will be watching your show and take a fresh picture.  Import the picture you just took as a background and mess with the brightness and transparency until you can barely see the outline of your house.

Next select the megatree tool and draw your megatree as close to the actual size and location as possible.  Once you have it placed you’ll need to edit the details.  The one from holidaycoro is round shape, 180 degrees, and 16 strings of lights with 50 LEDS per string.  I plugged output 1 of my controller into the bottom left side of my tree and I want to use universe 1 channel 1 as my starting channel.  After pressing save the prop is ready.

Now it’s time to sequence.  And, in my opinion sequencing is an absolute artform and for as many hours as I’ve spent in xLights, I still don’t feel completely happy with the sequences I’ve produced myself.  The great news is that much like computer programming, you can get pretty far just borrowing code from other people.   XLights has a maintained google drive of user shared sequences that you can browse through.  Some may be your style and some may not, but the point is that they are there and free for you to use.

To get started, you’re going to download a show, so follow the link in the description and find a song you like. I’m going to use my favorite example show “Santa Clause is Coming to Town” by Skeewiff sequenced by Jason Rasmussen.  Extract the zip file to a folder on your computer and go back to xlights.  Next, in the setup tab click “change show directory”, and select the folder you just extracted the sequenced show to.  You should see someone else’s controllers and props populate into the setup and layout tab.  Next click on sequence and choose file -> open sequence and select the xml file for the show.  Then click on the render button, press play and enjoy the show… But while you’re enjoying, pay attention to which props have a lot of effects associated with them on the timeline and write down the total number of props from this show that you’re going to want to use in yours.

After you’ve watched the fantastic show, go to the setup tab, then change back to YOUR show folder.  In the layout tab since we only have one prop, we want to give ourselves more places to import effects, so if you decided you want to import 3 props from the sequenced show you’ll need to add 2 additional groups, then add your prop to those groups and hit save.  Next click File, New Sequence.  Select “musical sequence” and grab the music file from the Skeewiff folder, choose 20 FPS and hit “quick start”.  Next is the magic part.  Go to import, import effects and select the sequenced show’s xml file.  On the right you’ll see all the props from the sequenced show, and on the left you’ll see your props and groups.  Click and drag the effects into the corresponding groups and then hit OK.  It will ask you if you want to exit without saving your mapping, and at this point you don’t need to, so just click yes.  After you import, press render, click on a model or group on the timeline and press play to preview your show.  If your effects overlap you can right click on an element and choose edit display elements.  In this screen you can add additional groups, or move layers up or down.  Layers are rendered from the top down, so stuff at the bottom of the list will overwrite stuff at the top of the list.

Once you’re happy with your sequence and setup, save, press play, and hit the little bulb on the end that says “output to lights”… and then run outside to watch your breathtaking new megatree dance to the music.

So there you have it, a start to finish megatree in under 5 hours, I’ve seen my neighbors take longer than that to staple icicle lights to their eaves.

I’ll be doing one more video this season on light shows teaching more about making custom props, scheduling shows, integrating them with home assistant, and transmitting your music over FM radio, but if you can think of an absolutely crucial subject that I’ve missed make sure to let me know down in the comments so I can add it.  If you’re completely new to LEDs I’d encourage you to check out my LED playlist to learn about different types, power injection and some tips and tricks for installation.

Thank you to my awesome patrons over at patreon for your continued support of both my channel and my LED obsession. If you’re interested in supporting my channel check out the links in the description.  If your interested in supporting the environment, as I mentioned earlier, HolidayCoro has offered me a commission on any props that are purchased through my links, and I’ll be donating 100% of those commissions between now and January 1st to the youtube teamtrees initiative, so constructing your megatree can help plant real trees.  If you enjoyed this video, please consider subscribing, and as always, thanks for watching the hookup.

Links From the Video:
XLights Download:
XLights Google Drive: Links (support #TeamTrees with your purchases):
Megatree Package:
Ready2Run Controllers:
My Go-To Amazon LED Products:
5V 60A Power Supply:
WS2812B IP65 Strip:
Aluminum Channels:
Importing a Sequence: 13:00Follow me on Twitter: @TheHookUp1
Support my channel:
Music by
#TeamTrees #MegaTrees4RealTrees

Related Posts