My wife bought me a Hasbro Interactive R2D2 Astromech Droid for my birthday a few years ago after I said how much fun it would be to hack it and I've finally managed to get inside and start playing! 

Although the built-in voice control functions are fun and cool to play with, and our 2 year old loved to dance to the "Hey R2, Dance Program" Cantina Song, there isn't much actual practical functionality to it.  So, this is the first step in making the toy into a customizable remote control sentry robot.  This is an easy and educational first microcontroller project that's great for a parents and kids or classrooms.

Since the release of Android's Accessory Development Kit (ADK) last summer, Android devices can now natively act as a USB host to microcontrollers such as Arduino and IOIO boards.  After I disassembled it and pulled out the stock PCBs, I played around with Arduino and was able to get the wheel motors and the dome moving.  Being more of a tinkerer than a programmer, I didn't have the expertise to build the necessary iOS or Android App to remote control the motors.  The added complication of building sketches for the Arduino led me to the IOIO board for now, which allows direct control from the Android device via USB or bluetooth without having to program and reprogram the microcontroller when I add sensors and eventually the dome motor control. 

I found Simon Monk's new book, "Making Android Accessories with IOIO", and decided to use his method and open-source sample code to tackle the first step of the process:  remote controlling R2 from a smartphone!

This is the beginning of an effort to build myRobot, an open-source robotics control platform utilizing Android and eventually iOS devices as "heads", to build telepresence robots out of almost anything!  After R2 and other basic two-wheeled platforms are completed, Roomba support will be next, followed by Arduino support.  Stay tuned!

Parts List: 
Android Controller Device (I'm using a Samsung Nexus S)
Hasbro Interactive R2D2 Astromech Droid
IOIO for Android Microcontroller, sku: DEV-10748
Motor Driver 1A Dual TB6612FNG, sku: ROB-09457
Barrel Jack to 2-pin JST Cable, sku: TOL-08734
JST Right Angle Connector, sku: PRT-08612
Break Away Female Headers, sku: PRT-00115
8 x AAA battery holder
9V to Barrel Jack Adapter, sku: PRT-09518
Bluetooth USB Adapter - most generic ones should work
Jumper Wires
Electrical Tape

All of the parts except the Android phone and R2D2 itself can be purchased from Sparkfun, home of the IOIO, for less than $100 after shipping and taxes.

Soldering Iron
P1 Phillips screwdriver
Drill with 3/8" bit
The emotional capacity to disassemble our beloved R2

Version 2 of the IOIO will likely be coming out over the next few months, which if it looks like the promo image, will hopefully negate the need to solder on the female headers and JST adapter.

Step 1: Disassemble R2!

The Hasbro R2D2 is fairly straightforward to take apart, basically remove every screw you see on the back and in the battery compartment. I found this extensive video guide on youtube if you run into any problems.

The most difficult part is removing the dome base, as it is fairly securely attached with double-sided tape.  Gently pry the front and back body pieces apart, and then gently pry the dome base out of the front body piece. 

I did unsolder the wires rather than cutting, leaving the wires from each leg motor intact, as well as all of the dome sensors for future use.

I'm one of those guys that always has either extra parts laying around or not enough screws because they rolled away, so I used the magnet from R2's front casing to hold onto everything as I went.
This is awesome. I've had my R2 for years now too and I've just been too lazy to try and get him more up to speed with technology. I'm looking forward to seeing more of this! <br> <br>Thanks!
It took me a while to get to this point as well, but within the next few weeks I'll hopefully have a remote program that will allow you to have a full-on remote telepresence R2 Unit! <br> <br>Thanks!
I rewired into a more simple configuration to deliver 5V power to the motors directly from the IOIO and it seems to be working well, without the board heating up much after a few minutes of wandering around.

About This Instructable




Bio: I am an ER doc in central California that enjoys the outdoors, has a small gadget problem and has a huge interest in sustainability and ... More »
More by evolvingmonkeys:Hack Your Hasbro R2D2 With an IOIO Microcontroller! Laser Cut Lego Base for Roomba Robots! Space Station Dock Bedroom with Light-up Spaceship Bed 
Add instructable to: