CheerLights: Synchronizing Christmas lights around the globe

They say that the holidays are a time to gather with others, which usually translates into spending time with friends and family. The folks at ioBridge Labs thought that while friends and family certainly are a big part of the holidays, it would be pretty cool to gather together flocks of strangers by using the Internet to synchronize their Christmas lights.

Participation in CheerLights is pretty easy, requiring little more than an Internet connection, some GE G-35 Color Effects lights, an Arduino, and an ioBridge. While those are the recommended components, an Arduino Ethernet shield will handle networking just as well. There really are no restrictions when it comes to hardware, so if you are so inclined, it should be relatively easy to roll your own display using simple RGB LEDs and a µC of your choosing.

The colors are dictated by the group’s Twitter feed, which can be found at http://twitter.com/#!/@cheerlights. Whenever a message is sent to @cheerlights along with a color, all of the light displays listening in will change simultaneously.

We really like the idea, and think it would be pretty cool to see this sort of program rolled out on a neighborhood or street-wide level, so you could see dozens of strings changing colors all at once.

If you’re interested in checking out CheerLights’ current color, be sure to take a gander at their live stream here.

7 thoughts on “CheerLights: Synchronizing Christmas lights around the globe”

very cool. i had a similar inspiration a number of years back – i.e. sync up any number of devices with a signal around the globe (haha – now that i think of it, i think that signal is called “time” :-).

Anyway, when you have a sync signal like this, network delays are going to mess you up. Might be nice for them to think about how to get around that. For periodic signals, you might indicate the absolute time somehow.

If they used a jitter buffer of some kind and used a central server to synchronize then they could keep all of them in sync. Find the delay delta between machines across the world and so long as you keep the buffer short then timing issues become less of a problem. So for example:
Find the delay to all servers, get their local time so you can adjust your return time, then tell the various machines to play at a given delay. So likely one of the machines with the greatest lag will have little to no delay in its buffer. This will make up for any sync issues quite easily.

@luckycharms – People are tweeting colors every few minutes so everything is able to keep in sync pretty well. I think you could scale this so you could light a light every where and within a minute the color would be stabilized across every subscriber. That’s how the testing so far has proved out.

I am trying to talk my neighborhood into coordinating. It sounds like I will have to prepare for next year though. And I think next year, there will be many more on the project – it will be really neat to see how this evolves.