Part 1: Hacking a Tyco (tm) "Rebound" for robot use in 30min.
The chassis of the "Rebound" is perfect for small off road robots. The PCB has a radio receiver and dual "H" bridge. This walkthrough shows you how to make the chassis and PCB microcontroller friendly in 30min.
Thanks goes to Stevek for sending me this great little toy!
Step 1: strip off the covers! If it has a good battery then great, go to step 2 otherwise solder heavy duty cable to the power connections. I previously tried a 9V battery clip but the motors lost too much power. I also added a big capacitor to help when the motors start up.
Solder the cables to a 6x AA battery holder.
Step 2: Desolder and remove the IC.
Step 3: Fit a 4 pin male header where pins 5,6,7 and 8 used to be.
Step 4: Cut out a small hole in the chassis for the control cable to poke through. I just did a "quick and dirty" with the soldering iron. Then plug in your cable.
Step 5: Solder 2 power wires for your MCU regulator to what were IC pin 11(ground) and 12 (+7.2V). Your Done!!
You can see in the photo below I have re-attached one of the covers to protect the wires and PCB. A small breadboard fits perfectly in the chassis making it perfect for adding an Arduino Nano or a Picaxe IC.
Interfacing to your MCU:
Now that the chassis is hacked we still need to get it working. Because the "H" bridge circuit is running on the battery voltage (+7.2V in my case) it is necessary to use some NPN transistors to switch the "H" bridge. This prevents your MCU outputs from being damaged. I did try using series resistors of 1K2 and this worked but it may damage your outputs and reduces the current to the transistors in the "H" bridge causing the motors to loose power.
Some picaxe boards have a ULN2803 transistor array built in which is perfect for the job. Arduino users can use such a chip or discrete components as I have done.
I found I had a lot of trouble with the Arduino Nano resetting when I tried to drive the motors. I tried various noise filtering but unless I had the USB cable in it would reset when driving both motors. This told me the Nano's onboard regulator wasn't good enough or it's faulty. After making a small regulator PCB everything works perfectly.
Using the original IC pin numbers - pin 5 and 6 drive one motor, pins 7 and 8 drive the other motor. Grounding a single pin of either motor will drive that motor forward or reverse. Grounding both pins of either motor applies the brakes to that motor. Both pins open circuit turns the motor off and allows it to coast.
The rebound has a slightly unusual power circuit. Ground is switched by the heavy duty power switch for the "H" bridge. The +V power for the receiver is switched via a A1015 PNP transistor (Q14) with a maximum rating of 150mA. If your MCU and sensors are going to draw more than 150mA then you will need to replace Q14. I used a PN200 with a 500mA rating but as the pin configuration of the two transistors are different I had to cross the base and collector pins over.
If you are having trouble with electrical noise from the motors affecting sensors then you may need to add additional capacitors across the motors. I added 220nF monolithic caps just to be sure. Monolithic capacitors have a low ESR (Equivalent Series Resistance) making them ideal for noise suppression.
I also added a second big capacitor on the PCB power connections as I still had the Arduino resetting occasionally when a motor started.
Good luck and enjoy!