When I was home for the holidays my mom made me clean my room, and as it happened I found an old RC car in my closet from when I was a little kid. I ended up spending the next week figuring out how to control it from my arduino, which ended up being a blast. My approach was pretty straightforward: poke at the board with a multimeter to figure out which pins were likely to be involved with motor control, and then using a little homebrew oscilloscope code on the arduino to figure out what the signals were.

The rear wheels only needed a PWM at on on-board transistor, but the steering was a little trickier. Apparently there's such a thing as a "dumb servo", ie a servo that has a motor and encoder but no on-board electronics to control position. The tipoff was the 5 wires coming out of the servo rather than the expected 3. In the end, it was easiest to cut the encoder wire and pass it through the arduino. That way I could read the actual position of the servo, but output a different position to the original control board. This approach leaves the main board in charge of driving the servo, and lets me acheive a position by simply setting the encoder value to the negative of that value. For steering on-line, a PD-contoller on this pin did the trick.

hacking the main board

* One small tip that was handy: the car didn't work at first because the battery terminals were corroded. Turns out if you soak them in vinegar and then a baking-soda formula it takes all the junk right off.


About me

Pic of me