About Control the

So what is Control the Show?

BJ SintayControl the Show is an idea I dreamed up back in the summer of 2004. I was interested in creating a website that could control something physically in a way that people could interact with and see. I spent a good deal of time researching different ideas and finally decided in August of 2004 to work on a system to control my Christmas lights. The reason I chose to do this was simple: it's a great way to spread Christmas cheer and everyone loves to flicker the lights!

Control the Show in its present state allows visitors the opportunity to decide exactly how a Christmas Snow Village display is lit. Everything in the village can be turned on or off by you and you alone. I allow users a short period of time each to be in complete control of everything. Visitors are lined up so that only one person is in control at any given moment.

A Little History

BJ SintayControl the Show first launched in 2005 amidst a flurry of media attention. By the end of the show in January 2006, had received over 25 million hits from around the world! The media covered the event in extremely creative ways, some broadcasting the site while under control (CNN's Situation Room with Wolf Blizter) others reported THROUGH the webcam (FOX News). We were featured across the US and the world. All of the media attention helped to shed light on our cause, raising money for the Ronald McDonald House.

Christmas 2006 saw an even greater number of people coming to control or watch the show online. The media attention and news coverage was nearly double what it was in 2005, bringing in more money for charity than before. The show featured over 35,000 Christmas lights!

Christmas 2007 the show was bolstered by hosting as the entire hosting operation was moved to their headquarters. They also sponsered the awesome Rock the House Lights event where Ronald McDonald and the SolidSpace van were added to the show for a special fundraising event for charity.

Christmas 2008 we took a break. Whew!

Christmas 2009 we came back in force with the all new Snow Village display!

Christmas 2010...?

The Design

OverviewControl the has a very intricate network of technology working together to bring you real-time control of my Christmas lights. The system uses a variety of technologies such as C++, TCP/IP, HTTP1.1, Sockets, PHP, MySQL, and more. An overview of the system's major components can be seen in the figure to the left.

When you click the virtual switches on the Control the Show controller, the signal from your computer first travels to my servers. They verify that you're allowed to take that action, then they send a message through the internet straight to the controller in my North Carolina home. The signal is first decoded by a small chip connected directly to my home network. This chip sends the signal through an amplifier network which eventually flips a mechanical switch, otherwise known as a relay. This process is extremely fast and can be measured in milliseconds. The show is seen through a webcam connected via my wireless network. This camera is contacted about once every 1.5 seconds by one of my servers to retrieve the image. This is the slowest part of the show and the reason you cannot see the lights flip on or off instantly. They actually do change instantly, it's just hard to server a high-resolution, streaming image from a webcam to the thousands of you that try to view the camera every second. More intricate details about these systems can been read about below.

Electrical Details

Control the runs on several separate power circuits in my house for a total horsepower of somewhere in the neighborhood of 12,000 Watts (if needed). Wires run into my house to safely steal power from different circuits, and then combine that power in the switch box. Everything runs back to a custom designed electrical box which houses the switching networks. That's a lot of AC power in one place! The DC side takes about 2 amps of power to drive the network of relays. The relays are rated for up to 10 amps for each channel (24 channels total, at the moment) giving a total capacity of 240 amps or about 25,000 Watts of electricity.

The Web Camera

Web cam hosting is a big problem when you're trying to run a live feed to 10,000 people at the same time. To overcome this problem I got a Panasonic camera with a built-in web server. The main feature I was after was the FTP abilities of the cam. The problem is, FTP is slow!!! It's really slow because of the way the FTP protocol establishes a connection and verifies everything. I needed a much faster, more reliable way to get the job done.

I thought and thought and thought about this for a really long time. The web cam really is the most important part of the show. Without good visual no one will care about a project like this. After doing intense hacking on the camera I discovered that the system could respond to CGI requests. I investigated further to find out that the developers had created an entire API for the cam. I quickly learned HTTP authentication and HTTP1.1, and I was ready to go. The two together created a perfect system to acquire images at any pace I wanted with 100% reliability (mad props to Panasonic).

When the show featured the lights on my house, the camera was housed in the garage across the street thanks to my neighbors. It was mounted on top of a camera tripod which provided the best angle possible from inside a semi-warm environment. I didn't spring for the more expensive outdoor version. This year, the camera is nestled safely in my home for the new Snow Village project.

Hardware/Analog Design

To make things fun, I custom designed all of the hardware for this project. The entire system is embedded, meaning there are only small chips the size of dimes running the entire show from my house. No hard drives, no X-10, no Intel, no Microsoft (or Macintosh or Linux - whatever you prefer). The chips implement TCP/IP directly so the ethernet cable plugs in directly to my system. I programmed these chips with a simple state machine and TCP/IP message interpreter which read packets coming from the web server. The chip descrambles the message and authenticates the packet, then issues the necessary commands on the I/O pins.

Coming out of the pins the signal encounters a special power-up circuit which boosts the signal quite a bit to handle the current needed to drive the relays. A simple transistor design with an optimized resistance network functions well for this. The signal then switches the relays which connect the hot wire (AC) to the particular channel selected.

I thought that the analog system design would be the easiest part of the project, but implementation proved otherwise. AC interference, lofty current requirements, and hundreds of intricate solder points made debugging the circuits a long, tricky process.

The box I selected to house the outlets is made out of an extremely strong plastic. I used the good old Dremel tool to section out squares into which I put electrical wall sockets like the ones you have in your house. I spent a night wiring all of these appropriately to be 3 separate circuits. I then installed the relay boards (3) into the box and made sure everything had good electrical isolation. I also took a lot of care to ensure that the wires, boards, and sockets were all secured well. I spliced 3 extension cords and ran them into the box for AC power.

Here is an image of one of the control boards while I was soldering.

Control board

And another shot of one of the relay boards I made twice (do math first, soldering second).

Relay Board

Finally, a pile of junk on my desk after the embedded systems were finished.