Bring old toys back to life with Arduino

Lead Image © Christos Georghiou,

It's Alive!

In this article, we hack a popular toy from the 2000s, the Robosapien v1, and show you how to upgrade it with a new Arduino brain.

Back during the Christmas of 2004-2005, the Robosapien v1 by WowWee [1] was the cool toy to have: It walked, it talked, it did karate, and it cost less than 100 bucks. With 1.5 million units sold, you likely know somebody who has one of this cute robots.

Even if you don't have a Robosapien around, you can pick one up from eBay for as little as $20 [2] (I'm talking about the old v1; the new vX looks nearly the same but costs quite a bit more). Even if you're not interested in getting one of these cool toys, you will be able to apply what you learn here to other motor-driven projects. I chose the Robosapien because they're everywhere, and I had one in a closet. It walks, looks cool, and is relatively easy to hack with spectacular results.

Anatomy of Robosapien

The Robosapien has one motor in each shoulder, one in each elbow (that twists the lower arm and makes the claws open and close), one at the waist, and one in each leg (Figure 1). Note that these are DC motors, not servos.

Figure 1: The Robosapien v1 has seven motors to control its limbs. It also comes with a remote, which isn't needed for this project.

The touch sensors are found on each of the longest fingers on each hand, and two (one at the front and another at the back) on each foot. Robosapien also has a sound sensor (microphone) on its chest, an LED on each "palm," a speaker on the back, and two red LED "eyes."

Two big, heavy D batteries go into each foot, providing Robosapien not only with power, but also stability. If you do away with these batteries and use another source of power placed elsewhere on its body, it will probably topple over when walking.

Removing the screws in Robosapien's back plate allows you to open both the back and front plate and uncover the motherboard (Figure 2). Fortunately, Robosapien is built sturdily and is modular: You'd have to be very clumsy to damage anything inside the toy by accident.

Figure 2: Robosapien with the torso exposed allows you to access the motherboard.

You can detach the back plate completely by pulling out the plug that goes from the on/off button and speaker to the motherboard (bottom right). Do not pull directly on the cables or you'll rip them out. Hold the plug itself (Figure 3) between thumb and forefinger on each side, pressing inward with your nails. Then wiggle it until it comes loose to pull it out.

Figure 3: Remove the plugs from the Robosapien motherboard by pinching the sides, wiggling, and pulling.

You can do the same with the rest of the plugs. Also, remove the microphone from the cavity in Robosapien's chest and pull it over its shoulder. You can now unscrew the motherboard and remove it from the robot (Figure 4).

Figure 4: Keep the motherboard handy, because it's a great guide to the controls for your robot.

Although I won't be using the board in this hack (I'll substitute an Arduino), you should keep it handy, because it has a printout of what each pin in the plugs does, making it a great guide. In Figure 5, for example, you can see the pins that control the motor in the left shoulder and part of the pins that control the left elbow.

Figure 5: Close-up of the pins that control the joints in Robosapien's left arm.

The Body Electric

Flashing an LED is the signature "Hello World" project in Arduino, so I'll do just that by taking the plug for the right elbow and hand and holding it as is shown in Figure 6, with the ridges facing down. Then, I'll connect pin 13 from the Arduino to the third pin in the plug and connect the fourth pin in the plug to GND on the Arduino.

Figure 6: Hooking up the Arduino to make the LED in Robosapien's hand flash.

Now I'll load and run the Blink program (Listing 1) on my Arduino, and Robosapien's yellow LED will flash on and off every second (Figure 7). That step was easy, but moving the robot's limbs is another story altogether. You might have read about making a servo move in other articles in Raspberry Pi Geek, but DC motors, like those used in Robosapien, are quite a different beast altogether.

Listing 1

Blink Sketch

01 void setup() {
02   pinMode(13, OUTPUT);
03 }
05 void loop() {
06   digitalWrite(13, HIGH);
07   delay(1000);
08   digitalWrite(13, LOW);
09   delay(1000);
10 }
Figure 7: Making Robosapien's LED blink.

Buy this article as PDF

Express-Checkout as PDF

Pages: 8

Price $2.95
(incl. VAT)

Buy Raspberry Pi Geek

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content