The original Teddy Ruxpin was ingenious. To keep the bear's mouth movements in sync with the audio, it utilized cassette tapes. Those tapes store stereo audio, which means there are separate left and right channels. One channel contained the audio, while the other channel controlled the motor that moved Teddy Ruxpin's mouth. I thought that was very clever, but that I could be more clever. So I built Dead E. Ruxpin, a Halloween animatronic decoration that has three motors all controlled by a cassette tape and synced to that tape's audio.
I came up with this idea while researching our article about Erin St Blaine's Figment dragon project. The newer Teddy Ruxpin in that project works differently than the original and simply follows digital instructions while playing digital audio. But when I learned how the original Teddy Ruxpin worked, I was intrigued. I thought it would be cool to reproduce that functionality, but with more than just a moving mouth. That led to this build.
Dead E. Ruxpin has three servo motors that operate independently: the mouth, the left arm, and the right arm. It moves each of those according to commands recorded on one channel of a cassette tape and the other channel contains the audio. Because one channel needed to control three motors, I couldn't simply translate the entire channel's amplitude to servo position. Instead, I needed a way to encode multiple unique commands on the same channel.
The method I chose was to connect a specific frequency to each channel. For example, 1000Hz is the frequency for the command that tells the mouth to open. To "read" those commands, I used the ArduinoFFT library running on a Seeed Studio XIAO RP2040 development board. That runs a Fast Fourier Transform (FFT) algorithm to check the amplitude of many different frequency ranges. If the amplitude of one of the command frequencies exceeds a set threshold, the corresponding servo motor moves to the preset position.
I created the audio files in Adobe Audition by leaving the chosen audio on the left channel, then generating tones of the proper frequencies on the right channel. I then "transferred" those audio files to cassette tapes by outputting the audio from my PC's headphone jack to a stereo receiver with a tape deck set to record. Dead E. Ruxpin plays the tapes through a portable tape player, with the right channel going to the XIAO and the left channel going to small amplifier board with a speaker.
The physical build was straightforward. I 3D-printed an internal skeleton structure, onto which the electronic components and servos mount. I then placed a hand puppet bear "skin" over that skeleton. Some paint and propsfrom a Spirit Halloween store helped to make it look more sinister.
Whenever I want to give Dead E. Ruxpin new content, all I have to do is mix and record a new cassette tape!