Light Show Website Update!

I’m happy to announce an update of the Arduino Light Show Project’s website! The update is mostly aesthetic changes, with a few added animations here and there.

As for the next show, progress has been slow but I hope to ramp it up a little bit. I’ve been sitting on half of an update so I should have an update posted by the end of the week.

Thanks for visiting the blog and I hope you like the ALSP website update!

Code dump of Light Show files

I wanted to let everyone know that I’ve dumped all of my Light Show code files (.ino) into a directory over at the Arduino Light Show website. I’ve lost some files over time so all of the files you see in that directory are all the files that I have. Hopefully this ends the requests (and straight up demands) for code.

Update (10/17): I decided to do a little more work on the Light Show website. The Code Directory is an actual page now and you can now watch each video directly on the website.

Throwback: “Strength of a Thousand Men”

With the great feeling of a year of blogging under my belt, I feel like I have to give mention of something else turning a year old: The “Strength of a Thousand Men” Arduino Light Show, which debuted last year on August 2nd. This was all the way back in the 2nd version of the show, the first version of the light show project that included servo motors. At the time of this post, the video has racked up over 2100 views and 24 likes, the most views and likes on any project video I’ve posted. Enjoy the show below, and then pick out a newer show to watch over at the Arduino Light Show website to see how far this project has come!

“How do you program the light show?”


Programming the Light Shows really isn’t that complicated, just time consuming. It seems to be a mystery for a lot of people and I still don’t really understand why. Not a lot of people seem impressed by my crude technique (people always seem to expect some kind of audio processing). In this post, I’ll share some of the things involved in programming the light shows and you’ll finally see how simple it is (again, it’s just time consuming).

The Functions: The show’s programs are made up of delays and for-loops. To use the hardware, the program uses basic digital and analog write functions, as well as the servo library.

The Process: The process is simply replaying the song over and over again and adding more code to it on each run. I work on the song in verses that I mark off in the code using either a line of ////////////// or the first line of lyrics of the next verse, commented out of course. Doing it in verses gives me points where I can decide to take a break… but really, it helps me keep track of where certain pieces of code is so I can go back to it and tweak it. Sometimes I will put a really simple pattern just to figure out the timing and then go back to it later and add more effects to that section.

Cuing It Up: I use VLC to play the song when I’m programming. In the earlier shows, I used to try and cue the song manually by watching the blinking TX lights on the Arduino as the program uploaded and then started the song once it was complete. It was kind of a guessing game that I’d figure out well enough to get things done. Eventually I realized I could just have an LED counting down like this:

// Count down (4, 3, 2, 1)
for(a=4; a>=1; a–){
digitalWrite(22, HIGH);
digitalWrite(22, LOW);

Time: It takes about a week to program 1 minute of show. I try my best to create fresh patterns so it gets incrementally more difficult as each new show is released. It’s also gotten harder as I’ve added more components to the stage in the later versions of the light show. This is why the shows have gotten shorter over time.

CAN I HAVE THE CODE?!!?: Yes! For the first time in a long time, I’m releasing code for some of the shows, specifically the most recent three. You can get the files here:

I hope this has answered your questions about programming the Light Show. If you have any more questions, send me a message or leave a comment. Now go out and blind yourself with LEDs like I have!

Arduino Light Show FAQ

Once in a while, I get the same few questions about my Arduino light shows. I figured it would be a good idea to address those questions and throw in whatever extra information I can.

Q. Are you processing the audio in any way?

No. I tried a tutorial that uses Processing that identifies the levels of different frequency ranges in a song and the Arduino relays the info by way of LEDs, but I think that sort of thing is better suited for mood lighting or lighting features (like those water fountain speakers). My shows include LED patterns and moving servos that wouldn’t be controlled by this method, or at least it would likely be very difficult to do.

Q. Can you post your code?

I do not publicly post my code for the shows because they’re not really meant for other people to read and interpret. I do not document the code as I program the shows so there would be a lot of confusion as you try to follow along, which happens to me at times. As long as you know how to use the Servo libraries, for loops, and delays, there’s not much else to to know.

Q. How did you program the show?

It’s trial and error. The process is just replaying the song over and over and slowly adding on more code until I reach the end. (By the time I have a video up, I’m sick of the song.) There’s nothing neat or fancy about it.

Q. What went into building the show?

Talking about the latest show, there were a few key elements. It all started with two lines of breadboarded LEDs. The towers were constructed using cardboard and tissue paper to diffuse the RGB LED light in each tower. The “spotlights” were three servo motors with an RGB LED taped onto each servo horn. Behind the scenes was an Arduino Mega 2560 (compatible) along with three mini-breadboards to distribute power and to setup the resistors for some of the LEDs. Half of the wiring was 22AWG solid-core wire, the other half were female-to-male jumper wires.

Q. Inspirations?

World of Color at Disney California Adventure started it all. Canada’s Wonderland, my home park, upgraded their fountains over the past couple of years so that has also helped inspire me to continue. I also ran a short-lived (like they all are) website called More Than Starlight that was a blog and database for fountain and light shows. I discovered many amazing shows across the world which helped build up to my first light show.

Visit the Light Show project webpage here.

The final go.

And that’s a wrap on this one! This project will be coming down shortly so I can regroup for a new project into the new year.

The biggest thing I learned from this one is that simplicity can still work. There were a number of different elements to this show that I didn’t know how to handle it all at the same time. I felt like the first light shows I made with servos were easier to move forward with. It doesn’t mean I shouldn’t keep exploring new ideas, though.

I’ll probably post a few destruction pictures. It always stinks taking a project down but I’m ready to try something new.

Last chance

I’ve been close to just scrapping the new light show now but I’m giving it one more go. I have finally used up all 70 pins on the Arduino Mega. There were 9 pins still open since the Christmas Special, so where were they used?


Two more border LEDs were added. Also, the green and red LEDs were swapped out for all whites.


The last seven open pins were given two these background LEDs. Two bundles of red, green, and blue LEDs will illuminate the area behind the towers (you can kind of see the effect in the first picture). The last pin was given to a single white LED in the middle.

These background LEDs were originally going to remedy my issue of not being able to shine any light on the breadboard LEDs since the towers get in the way of the spotlights. I couldn’t do it because I ran out of jumper wires. In fact, the background LEDs were wired using wires taken from Greg the robot. Don’t worry, he still functions, he just doesn’t have any LEDs anymore.

The very last change is seen in the last picture. I play around with the configuration of the breadboard LEDs but it’s not very noticeable when I record the video and because it’s so subtle. In the next video, I do plan on recording the show a little bit higher. It’s just that I found the camera stays in focus better if it’s stable so I’ll need to find something taller (I’ve actually been using the PLC trainer as a stand).

So that’s it. I plan on doing one very very short song before the end of the year. I will probably scrap the project in favor of a refresh for the beginning of 2014. Thanks for reading!