Creating a holiday light show using Raspberry Pi, xLights and a matrix

This year's holiday light show uses smart pixel strands, leaping arches, xLights/Nutcracker, a Raspberry Pi, Falcon controllers and a digital sign or matrix.

holiday light show
Ms. Smith

Ah, it’s that time of year again for people launching holiday light shows! This year, we’ll look at using a Raspberry Pi and the free and open source program xLights/Nutcracker to create fantastic light shows to wow your community.

This is my third year since being bit by the bug to do holiday light shows and becoming “that” neighbor. The first year, I used Light-O-Rama to create a holiday light show. The second year, I got a second Light-O-Rama (LOR) controller and added two singing tree faces designed for dumb RGB LED lights.

I knew I wanted smart pixel light strings, but it took some time to save up enough for that. In fact, it is what I asked all family members to get me for every holiday starting last Christmas. I also knew I wanted to incorporate a Pi – and this year I have both.


Using smart pixels meant that I didn’t want to program the light show sequences in LOR; in fact, I didn’t want the LOR controller running them at all even though it previously ran the show. This year, instead of having LOR control and store the light show sequences, I’m using the Raspberry Pi 3 Model B; it stores and runs all the information about the show.

I opted to purchase 36 five-meter smart pixel strips; some are replacing the LED lights around the windows, some are in the four new arches, but the majority of them are in the big digital display aka “matrix.” Each strip has 150 lights per five meters; each light can be controlled separately and can be programmed to be any color. The four arches, which are made of 8.5-foot high density polyethylene tubes, only used two strands, or 75 pixels each. The matrix, however, used a lot; it is 120 pixels across by 48 pixels wide and used 24 smart LED strips.

matrix digital sign Ms. Smith

The matrix is approximately 2 meters wide, or 6 feet wide, and about 1 meter, or 3 feet high.

The smart pixel strands are controlled using the Falcon Pixel Controller. The Falcon talks to the Pi, and all the controllers connect on the closed network to a router. It takes two power supplies for each Falcon controller; in this instance, that means it took two Falcons and four power supplies total – one Falcon to run the matrix and another to run the arches and light strips around the windows.


Since LOR is no longer “the brain” – I didn’t want to even attempt programming the music and light sequences in LOR. Instead, I fell in love with the free and open source xLights / Nutcracker program. When you download xLights, be sure to also grab the QM Vamp Plugin, developed at the Center for Digital Music, Queen Mary, University of London, for additional functionality such as automatically having the program detect and mark the beat or onset timing of the notes.

You don’t have to start completely over either as LOR sequences can be imported and converted to xLights. I’m not going to delve into the Setup tab as setting up the network and nodes nearly made my brain explode, but you can create, group and even import your models via the Layout tab.

Under the Sequencer tab, there are 47 different effects built into the program that you can drag down into a sequence; each one of those can further be tweaked in regard to color or timing. Additionally, for users who are accustomed to programming sequences in LOR, there is an AC functionality that mimics the fade in, fade out, shimmer and other effects like in LOR. You can even import the timing grid you used per sequenced song in LOR into xLights. I did that to a few songs, but primarily imported the LOR sequences using the wizard when you first setup the sequence in xLights.

There are a bunch of video tutorials if you don’t like to experiment and learn that way as well as a Wiki and forum. Programming the arches was a dream; you simply drag down the “single strand” icon into the song and it automatically balances the leaping part out to the beat count, notes or whatever timing you are using. You can use one color or an entire range of colors, speed it up or speed it down, but what would have taken hours in LOR took minutes in xLights.

As for the matrix, the program makes it easy to trigger color-changing galaxy effects, bouncing balls, add tree or candy cane symbols that show up as the “curtain” opens and much more. You can add pictures, text, videos or effects to the matrix. If you have the skills and the desire to do so, you can use the free Piskel program to create an animated sprite of Pac-Man eating Christmas trees instead of ghosts. You are only limited by your imagination.

You might want to avoid programming long after you normally go to bed as when sequencing A Mad Russian’s Christmas, after having the title scroll by on the matrix, I added, ‘No, not the Russians who are hacking the U.S.’ It seemed like a good idea at the time.

Have fun if you decide to have your own light show, but be warned that once you start, it seems to just get bigger and bigger each year. People in your community will start asking about the light show as early as summer – realistically you will already be working on it by then at any rate. Every year, the crowds get bigger and bigger and people come from even further away to see it. In my opinion, it really is a grand gift to give to your community and it brings me a great deal of joy to see them enjoying it.


Copyright © 2017 IDG Communications, Inc.

Get the best of CSO ... delivered. Sign up for our FREE email newsletters!