Animated Singing Santa Hack
How to customize a Wal*Mart Santa (by Gemmy) with your own routines.
Created by: Josh McCormick ..................... Published: December 15, 2005

UPDATE FOR 2008: If you're still looking for this item, Wal-Mart no longer carries it. A very similar life-sized Santa, by the same manufacturer, can be found at Lowe's for $100. I've also heard that a place called Boscov's will carry it.

If you've ever gone to Wal*Mart during the Christmas season, you've seen it. I figure that at least a quarter of the US population has been exposed to it by now. A 5 foot tall Santa Claus that sings and dances to holiday music. Head moves left and right. Mouth opens and closes. Body sways from side to side. They've got white Santas and black Santas. Around here, they even have Spanish speaking white Santas. But do they have... hackable Santas? It took me $49.84 to find out.

INSTANT GRATIFICATION: Video of a hacked Santa in action! (same video - MPEG format)
(please do not link directly to video)

WHY DID I WANT TO HACK SANTA?

I've had a Parallax BASIC Stamp for some time. The nice BS2P40 model. For those not familiar with the BASIC Stamp, it is a computer chip that you can program in a simple language that can monitor and control things. It is nowhere near as complex as a full-blown computer, but it requires just a minimum of wiring and electronics to run. It just takes some good programming and some very basic electronics.

The problem is that I hadn't been able to find many interesting things to do with it. I created a little display toy (persistence of vision) with some full color (RGB) LEDs. That was about it. But last month, an interesting announcement hit my mailbox. It was a call for entries [Word Document] for a local non-conformist art show in Tulsa!

I've got to do something. But what can I do? LEDs? No, too boring. So I went browsing the isles of Wal*Mart and see if there were any good hackable items to be had there. Sure enough, there were a few candidates. But one item out of the entire store screamed "hack me" more than anything else. The $49.84 animatronic Santa Claus.

When I got home with my very own Santa, the first thing I did was try to get a peek at the wiring which controls the speaker and the motors. I removed the staples that connected the clothing to Santa's boots. I discovered that all of the electrical wiring goes from Santa's left boot, up his leg, and into the body. Looked easy enough to trace... and all the smarts appeared to be in Santa's left shoe. Exactly the same place where all the external user controls are located.

I noticed a curious thing, though, when I was undoing the staples on his left shoe. Hanging out the side of the shoe were two green wires connected to a variable resistor (covered with a black rubber protective cover). What was its purpose? What did it do? It didn't appear to be something that they wanted consumers to touch. I fiddled around with it, but I didn't notice any changes in its behavior. I'd have to figure that small mystery out later.

The shoe is held onto the base with four small screws. With Santa placed on his back, it was a simple matter of undoing the screws and lifting up the shoe to look at the PCB hidden below it. Each set of wires going up into Santa connected to the PCB via a mated connector. It wasn't hard to determine the purpose of the different wires.

ANALOG CONNECTIONS:

GREEN/BLUE pair: This was used to activate Santa's side-to-side 'dancing' motion. The green connection was ground. The blue connection had 7.5 volts DC. But when I measured it again at a different time, the blue connection had 12 volts. This led me to the discovery of what the mystery potentiometer does.

GREEN/GREEN pair to potentiometer: It seems that this variable resistor controls the speed of Santa's side-to-side "dancing". Turn it low, and you'll get a performance worthy of a nursing home. Turn it high, and it'll be jerky and could topple Santa over given the right conditions. Seems to me that the default is good enough unless you're looking for something special. Effective voltage range to the motor (which controls the speed) seems to go from 5 to 12 volts.

ORANGE/YELLOW pair: This is a three pin connector, but the middle pin is unused. The orange wire will open and hold open Santa's mouth when 12vdc is applied. When voltage is removed, Santa's mouth automatically closes by itself (the default state for the mouth). The yellow wire is used for ground.

WHITE/BLACK pair: This is the audio connection that goes straight to the speaker inside of Santa's chest. The audio signal is on the white wire, and the black wire is ground.

RED/PURPLE pair: This controls the left/right movement of Santa's head. Unlike the other connections, the red wire will carry + or - 5 volts, depending on direction. With 0 volts, the head stays in its current position. The purple wire is used for ground.

This information is enough for someone to create their own hack for the Singing Santa. You can bypass or remove the internal PCB and drive the motors and speakers directly. Basically, you've got an analog electronic puppet you can play with. If you want digital controls, or to use the built-in volume control, motion sensor, or start/stop button, you'd have to do a little more work.

DIGITAL CONNECTIONS:

So, the motors and speakers are analog devices that are connected to the main PCB. But how does it know which motors to operate at what time, and where does the music come from? The answer is that the main PCB actually acts as a digital to analog converter, and the real smarts of the Santa are in a tiny little computer chip.


Santa's personality chip.

Soldered onto the main board and sticking up from it at a 90 degree angle is a small 15 pin PCB with a single custom IC. This contains the 'personality' of the Santa. All the sounds are recorded on the board, and all the actions are digitally recorded. This allows them to easily create a Spanish and an English version, with the differences contained on the small daughter board.

Remove the small board, and you have direct access to Santa's digital controls. This makes it very easy to operate from a microcontroller or even a home PC. Going through the digital controls, you take advantage of the built-in motor control electronics, volume control, motion sensor (and motion sensor enable/disable switch), and start/stop button.

Alternatively, you could use this information to remove Santa's personality PCB, and place it into a completely different device. That could be really funny.

PIN DESCRIPTION
1 +5 Provided by IC when a routine is active (not used by PCB or required)
2 +5 Provided by IC to move Santa's body back-and-forth aka "dance"
3 --UNUSED--
4 +5 Provided by IC to open Santa's mouth (automatically closes on its own)
5 +5 Provided by IC to move Santa's head to Santa's right
6 +5 Provided by IC to move Santa's head to Santa's left
7 --UNUSED--
8 +5 Supply from board to IC
9 --UNUSED--
10 Red START/STOP button sends +5 to IC while held down
11 Motion sensor, if switched on, sends +5 to IC while motion detected
12 Clock input for IC - not used for this project (ignored/unused)
13 +5 Supply from board to IC
14 AUDIO line output from IC (before amplification/volume control)
15 GROUND connection between IC and Santa

GREAT! NOW THAT I CAN HACK SANTA, WHAT DO I WANT IT TO DO?

Now was the time for brainstorming. An overtly political Santa? Robotic Santa rebels? Religion and Santa? Coin operated Santa? Gay santa? Anti-Commercial Santa? I asked my coworkers, and Gary came up with a killer idea. It basically consisted of nailing Santa Claus to a cross and, say, having him ask for a sacrifice of milk and cookies for your sins. Wow! That was artistic and a perfect match for the show!

Unfortunately, I live in a highly conservative town. Highly. (Did you read the title of the Call for Entries? "You Can't Show That in Tulsa!" It isn't empty rhetoric.) Although the message could actually be quite pro-Christian (how Santa and the holidays should not distract from the religious message of Christmas), the literal interpretation would be damning.

Santa nailed to the cross, acting like Jesus? If I tried to pull such a stunt, I'd quickly find myself on the local news and be the target of scorn of half the county. My family would never live it down. And I would forever be given a label by the media, such as "The controversial artist, Josh McCormick, has..."

This was probably one of the most difficult choices. I really had to rule that out, even though it would have been more 'artistic' and meaningful. Instead, I had to settle for second best. A drunken Santa Claus with a variety of mischevious holiday messages for the boys and girls.

WHAT OTHER COMPONENTS DID I NEED?

I needed to be able to record sounds, and I needed to be able to coordinate actions with those sounds. I know I wanted Santa to say more than just one thing, so I needed to be able to record a variety of things which could be played back on command. I opted for a path well worn with BASIC stamps, the Quadravox QV306M4.

You can create .WAV files in Windows and record them onto the chip. It'll record up to 240 seconds of audio (segmented however you need) with random playback. The stamp talks to the QV306M4 via simple RS232 communications, checks the playback status with a BUSY line, and resets the sound device with a RESET line. Simple.

But how would I coordinate the actions with those sounds? Writing the code to open and close the mouth and move the head and the body with the words would be just too painful. So I thought of a similar hack... the Boogie Bass Hack. How did they do it?

They had the perfect solution. Record the audio. Then, let the user record the individual movements (head, mouth, dancing) as the audio plays back. Kind of like laying down tracks. Perfect! Except we're talking about a lot more recording time here, which ends up being way more than can be stored in the EEPROM of a regular microcontroller.

From my POV LED project, I had some leftover 24LC515 EEPROMs [PDF]. These are 64KB EEPROMs which were accessable through the I2C communications protocol (a simple 2 wire bus). At 20 samples a second, it could potentially record 3000 seconds of movement. Just one of these was complete overkill for this project.

Finally, I needed a good timer to create a regular 20hz clock to synchronize the movements to. I came across an easy solution, an RC circuit, where with two resistors and a capacitor, I could get a 50ms timer by measuring the time that it took to discharge a capacitor. Thanks to the Parallax Boards for giving me an alternative to more exotic and unnecessary solutions! (And explaining it far better than the Wikipedia page did.)

PROGRESS. SLOW BUT STEADY PROGRESS.

I ordered the QV306M4 from Parallax. I removed the 'personality' board from the Santa and, in its place, I ran wires which I intended to go from the left shoe, up Santa's leg, and back down into the right shoe. That is where I would eventually hide my additional electronics. I hooked the wires up to my BASIC stamp prototype board and was able to control Santa's movements. Everything was going great.


Santa's secret shoe technology. Personality PCB removed, extra wires added.

Soon enough, the QV306M4 was delivered. I plugged it into the prototype board and programmed it to say some of the built-in phrases. I hooked the QV306M4's audio output up to Santa's audio input. Success. It works! Santa speaks! Santa moves! It just isn't coordinated at this point.

I changed some of the sounds in the QV306M4 with new sounds that I downloaded from Quadravox's website. Seems to work well. (A friend asked if I reprogrammed an answering machine. HA! I can see why, with phrases like, "You have a call from... papa.") I can reprogram the chip (and therefore, Santa) to say what I want. It is just a matter of creating my own recordings with what I want it to say.


Testing out the QV306M4 sound chip on the prototype board.

In the following days, I hooked the EEPROM up to the prototype board and got it to work properly. I zero out the EEPROM and I figure out how I'm going to store the movement inside of it. Each 'performance' will be recorded at 20 samples per second, and will be allocated 75 seconds of movement. To making coding easy, each performance will start on a 1500 byte boundary.

Soon after, I downloaded some Christmas performance samples (Tweety Bird, The Simpsons, Weird Al Yankvoic) from the Internet and download them into the sound chip. It plays them perfectly. I write the code and put buttons on the prototype board to record the actions that go along with the sounds. A bit more developing, and it works flawlessly. Now I'm ready for the real thing. Recording Santa's voice.

Actually, this is the part I dreaded the most out of the project. I considered going to Craig's List and trying to hire someone to do the voice work. Or having a friend do it. I put it off for several days. But I spent the time developing things for Santa to say. I think I hit the gold mine when I contacted a long-time friend, Fipi Lele, for advice. She came up with some real gems this time! I ended up refining my list down to 19 different things for Santa to say.

It was getting to just a few days before the deadline. I had to get it done. I found some decent freeware software (Audacity 1.3 beta) and began recording. I wasn't eager. But once I got started, things just seemed to flow. In short order, I cranked out 19 different .WAV files, cleaned them up, and downloaded them into the QV306M4.

The next day, I started recording the actions to go along with the recordings. First laying down the lip sync. Then the head movement. Then the 'dancing'. There was so little to dance to (because this was no longer much of a singing Santa) that I decided to 'dance' when Santa laughed. It worked out very well. In almost no time, I had a fully programmed Santa! The recorded sounds seemed so much more 'alive' once they had the movements to go along with them. Everything was perfect. The Santa was working, programmed, and complete!

DEADLINE AT THE DOORSTEP. THE ART SHOW WAITS FOR NO MAN.

It was Friday morning, and my art had to be delivered Saturday between 10am and 2pm. Everything was on the prototype board, and it was time for me to transfer it to a soldered PCB and for me to hide it in Santa's other shoe.

I started to recreate the wiring on the breadboard, and to put all the components in its place. I checked various contact points along the way to make sure that connectivity was good and that I hadn't created any accidental shorts. It was tough because my contact lenses were fuzzing out on me. I'd take a break and come back to soldering once again. But once I put the QV306MP4 onto the breadboard, I noticed a major problem. My ground signal and my +5VDC supply were shorted together. Something was wrong!

I went through unsoldering and soldering back a whole series of connections and components. I went over the PCB with a magnifying glass. I couldn't find anything wrong. I was so screwed.

Finally, it was 2am. The PCB has a short that I couldn't resolve. After a bit, an idea came. Transfer everything back to the prototype board. Call it a 'Drunken Santa Prototype' and it'll actually be a feature. Put the prototype board into a nice display case, and show it off!

Why not? It was my only choice at that point. I unsoldered all the major components. It was about 3am, so I decided to get some sleep and to pick things up at 8am when I was fresh.


The remains of a botched soldering job.
(Palm Pilots take the worst close-up pictures.)

YOU REALLY BROKE IT THIS TIME.

I recreated the prototype board, but something was wrong. The sound just wasn't playing. I checked over the wiring again and again, and everything made complete sense... which didn't make sense at all. Everything should be working! So I went back to some original test code for the sound, and I discovered a problem. A very BIG problem.

The QV306M4 has a BUSY line which informs the BASIC stamp when it is busy playing a sound, and when it is done. The code uses this line to determine when some of the initialization has completed, and also to know when a performance has completed and it should go into wait mode for the next performance. But the BUSY line was malfunctioning. It semeed that the BUSY circuitry was damaged while it was on the breadboard. It wasn't going to work properly. And there was no chance of a replacement in time for the art show.

So I started to think of how I could get around this second major problem. The QV306M4 could no longer report when initialization is complete, and it could no longer tell me when it is done with a performance. What can I do? The answer was simple. Put in pre-programmed delays during the initilization. But for the performances (which have already been recorded), I could look for the last movement in a routine, and then a second afterward, put in a special flag (decimal 250) to indicate that the routine has ended. Then write code to recognize this as the end of the routine, and remove the code that monitors the faulty BUSY line.

It worked. The extra 1 second delay was a little much, but it worked. And that was good enough. I was so happy that everything was back to working again! I went to Hobby Lobby and picked up a special shadow box to put the prototype board in. I drilled the holes, and a friend who was experienced with a hot glue gun used it to hold the wiring in place. It looked very presentable (even though the original plan called for the board to be hidden inside of Santa's other shoe). It worked, it looked good, and that was all that counted.


Santa Claus and the prototype board are ready to go!

THE WORLD OF THE ART GALLERY.

I loaded Santa into the truck and left for the art gallery. Apparently, I was being watched. About 1 minute after I left my home, three men pulled up in a truck, and attempted to rob my home, but were unsuccessful. But that is an entirely different story. I'm sure they weren't there to steal my prototype! Looks like my next project will be to track down a home security system.

Once I arrived, I was directed to set Santa up in a corner. I tested him out, and everything worked great. While I was there, another artist tried him out and seemed amused. A Wal*Mart Santa is a rather unusual canvas to create art upon. I was confident that it would make the cut in this Monday's judging. I handed over the required $35 for membership in the Tulsa Artists' Coalition.

Two days later, the judging came, and I got a phone call from the art gallery. They said they had a lot of entries this year, and they apologize that the juding was "rather ruthless". My entry did not qualify for the exhibit. I was slightly disappointed, but I was a little confused. From what I was told, the judges leaned more towards mainsteam art. You know... sculpture, painting, etc. No big deal, I really didn't put my self worth on the line with this one. But they wanted it out of their gallery by the end of the day.

I arrive at the art gallery and checked out the remaing artworks. Most of them seem sexual in nature. You know. George Bush with an erection, that sort of thing. Were these the winners, or other losers like myself? I went to my digital Santa. It looked like the prototype board had been roughed up a little bit. A rival artist trying to knock out the competition? I'll never know.

But Santa had some serious problems. He'd play the sounds correctly, but he wouldn't move. Yeah, I can see how a judge would call it lame. The movement really added punch to what would otherwise be a tape recorder performance. A random art teacher who was there at the time to pick up her own work seems to have really liked it. (sigh) It seems that everyone really liked it.

I got it home and I quickly identified the problem. The EEPROM was loose. I pushed it down into the prototype board, and everything worked normally again. That was the downside of using a prototype board... it just wasn't rugged enough. What a disappointment.

I'll never know for sure if it was rejected for artistic reasons, or because it was broken before the judging. My self censorship certainly didn't help. I suppose it doesn't really matter. In the world of art, it may not have been anything special. But in the world of hacks, it was pretty cool.

Here are some more Santa videos: Santa 2 Santa 3 Santa 4 Santa 5 Santa 6
Use these MPEGs only if above video doesn't work: Santa 2 3 4 5 6
(please do not link directly to videos)

The 'jackhammer' sound at the end of "Santa 3" is Santa's lips opening and closing at an inhuman rate. Magical powers, indeed. Mrs. Claus is one very lucky woman! In "Santa 6" is a closeup of the PCB in action. The top LED is used to indicate head movement. The bottom LED is used to indicate the lips opening.

RELATED PROJECT FILES:

Santa Source Code in Parallax BASIC (raw and uncleaned): santa5.bsp.txt
Sample .WAV file downloaded into QV306M4: santa-p.wav
Development reference file (pinout of stamp, ideas for things to say): santa.txt

ARTIST'S STATEMENT:

Aside from an interesting hack, I actually had an artistic statement for this piece. "Who controls Santa Claus?" was the question I had hoped that viewers would walk away with. Today, it is the corporations who mass produce items (such as this) and media companies who tell stories. They have the power to redefine 'public characters' such as Santa and add or change their mythology. They do not directly own, but they control our shared mythology. But what are their goals? What biases do they have? And what limits their behavior? These are questions this piece asks.

At the same time, it asks a more direct question to Wal*Mart and Gemmy. Won't you sell us a Santa that we can record our own messages with? Your Santa is boring. It does the same thing every time. Why would anyone want to buy it? We want a Santa that we can control and make it do what *we* want! That way, it wouldn't grow old after the first week. We want Santa that we can control and record! (And I'm not talking about the live performance model that you plug a microphone into.)

QUESTIONS AND ANSWERS:

Can I change Santa's appearance? Of course. One person in particular seems very experienced in modifying Santa's appearance. Be sure to click the different pumpkins at the top of the page for additional ideas. NOTE: Their Santa appears to have its electronics in the base (rather than the shoe), but otherwise appears to be the same model.

Are there other characters I can hack? I believe so. I haven't tested these out, but Gemmy makes a number of other characters that should be partially or totally compatible: Snowman, Rapping Skeleton, Animated Skeleton, Animated Pirate Skeleton, Halloween Butler, and Freddy Krueger.

ADMINISTRIVIA:

You may mirror this page and contents in its entirety.
Fair use: partial image of santa box is likely copyright by Gemmy and/or Wal*Mart.
Wal*Mart/Gemmy: Please don't threaten me! I'm selling your product. Please?
Story is for educational/entertainment purposes. I refuse all responsibility if you try this.
Other stores may have slightly different versions of the animated Santa.
Source code provided is the version before I hacked around the problem with the BUSY line.
My email address is jmccorm@yahoo.com if you want to give me a shout.
This page (except box image) is Copyright 2005 by Josh McCormick. All rights reserved.