This instructable shows how to modify an inexpensive RC car so it can be controlled by an on-board microcontroller.  You can program the controller to make the car do any number of driving patterns and stunts.  Once you have the car being controlled from the on-board controller, you can add sensors for light and sound and make the car do things like line following.

Step 1: Gather Materials and Tools

I used the following materials:
-RC Car - el cheapo from Walmart.  It cost $6 at my local Walmart.
-Arduino - I used the Duemilanove purchased from Sparkfun, (www.sparkfun.com)
-4 1000 Ohm 1/8 Watt resistors (color code BRN/BLK/RED). The value of the resistors is not critical.  Anything within 50% should work.
- 1/16th inch heatshrink tubing to insulate the resistors after they're installed
- 22 AWG solid  wire.  You'll need five wires, 6 to 8 inches long. I used Black for the Ground and White for the 4 control wires.
- a small amount of solder
 - 2 rubber bands
- 9V battery clip that plugs into the Arduino, also available from Sparkfun

Tools you'll need are:
- small (not tiny) Phillips screwdriver
- wire stripper
- soldering iron
- "third hand" to hold resistors while soldering wires to them
- small tip diagonal wire cutters
- desoldering tool or braid
- tweezers or small needle-nose pliers

Step 2: Disassemble the Car

For this step, you will take the car apart.  First, clip off the antenna using a strong pair of cutters.  Then, remove the four screws that hold the body on the chassis and separate the body from the chassis.   Next, remove the two screws that hold the internal electronics cover. Discard this cover.

Step 3: Remove the Antenna

Remove the screw holding the antenna.  Cut the antenna wire near the printed circuit board being careful to only cut the black antenna wire.  Discard the antenna and antenna wire. 

Step 4: Hack Into The Car's Electronics

Unscrew the single screw holding the printed circuit board (PCB) to the chassis.  Carefully turn the PCB over and screw it back down temporarily.  Now, using small tip wire cutters, carefully clip each lead on the controller chip.  Be sure not to cut any other leads or wire on the PCB. Remove and discard the controller chip.

Step 5: Connect the Wires

Flip the PCB back over.  Using a solder sucker or solder braid, unsolder and clean out the holes for pins 2,6,7,10 & 11.  Be careful not to use too much heat to avoid damaging the PCB.  Prepare four resistor/wire assemblies as follows: Solder solid 22 gauge white wire to a 1K Ohm resistor.  Make a total of four of these resistor/wire assemblies.
Insert and solder the resistor leads (the ones not connected to the wire) into the holes for pins 6,7,10 & 11.  After soldering, slip a piece of shrink tubing over the wire all the way down to the PCB.  Shrink the tubing with a match, lighter or tubing shrinker.

Install and solder a solid black wire into the hole for pin 2.

Mark the white wires with stripes so you'll know which wires control the different functions.
1 stripe - Left signal - pin7;
2 stripes - Right signal - pin 6;
3 stripes - Reverse signal - pin 10;
4 stripes - Forward signal - pin 11;

Step 6: Route the Wires and Reassemble the Car

Drill a 3/8" hole in the rear of the car body for a place where the wires will come outside the car.  Place the body on top of the chassis while threading the wires through the hole in the trunk.  Screw the body and chassis together using the 4 screws previously removed.

Step 7: Attach the Arduino

Using rubberbands, attach the Arduino to the roof of the car.  Strip the ends of the wires and plug them in to the Arduino pins according to how the program works.  Also attach a 9V battery holder and plug it into the Arduino.

Next connect the black wire into the GND pin on the Arduino.  Then connect the white wires to the Arduino as determined by your program.

These statements in the Arduino program determine which pins the white wires plug into:
int forward = 12; // forward pin
int reverse = 11; // reverse pin
int left = 10; // left pin
int right = 9; // right pin

Step 8: The FUN! Part

Attached to this Instructable is the Arduino sketch used to make a car go into a continuous figure 8 and a video showing a car doing various tricks.

Some things to remember:
1.  Put batteries in the car.
2.  Make sure the car is turned OFF.
3.  Connect the 9V battery to the Arduino.
4.  Verify and Upload the cartest sketch from your computer into the Arduino.
5.  Disconnect the programming cable.
6.  Turn the car on - it should start running immediately.

If you're new to the Arduino, you can find all the information you need and the programming software at www.arduino.cc

Have Fun!!!

<p>Hey i need some help; i have an old same type of rc car which has a broken circuitary(20 yrs old car) it's motors still work and i'm facing trouble managing them. it has enough space to fit an arduino with 5V 2amp powerbank. I have individually tested the motor with various amps (0.5-2). Reverse polarity will make motors run forward or backward. the thing is using a pwm pin of an arduino limits to 80mA i guess. how can one achieve reverse polarity with such motor with only two leads? though of using TIPs but donno anything much about electronics...(basically a computer science graduate).. please send suggestions on how it can be made to work.. i have 2 months time as i need it working for my uncle's birthday as he is the one who gifted it.. :)</p>
<p>What happens if your my rc car doesnt have an controller chip?</p>
<p>Hey, can I ask for a schematic diagram for this? Just email me via nuj101nuj@gmail.com.</p><p>Great work btw!</p>
<p>Would you mind sending it to me too please?</p>
very interesting! if you took the arduino chip out of the programming board or got a smaller version you could even fit it all inside the car! 5*s
Or get a bigger car :D.<br>But I think he made this as a concept proof.
I really did it this way to make it quick and easy for Jr. High kids to put it together and have fun playing with it during a summer camp.
Really gr8 work, sir I am also working on this project can u please send me a schematic diagram of this project and code, it will be really thank full to u, <br>My email id - sumitgupta822@gmail.com
Hey I am also making my Bluetooth control car with arduino, can u please send me a schematic diagram of this and also code u used? <br>Send me to - sumitgupta822@gmail.com<br>Plzz send as soon as possible, its urgent, looking forward for your replyy
<p>Can you send me a schematic diagram for this and the code that u used? dominiklasic98@gmail.com thanks :)</p>
<p>Instead of modifying the control board of the R/C car, it's simpler to replace the whole board with an L298N Dual H-Bridge Motor Controller. The board in the latest R/C car I bought is to small to modify.</p>
<p>the L298N has a 3V drop between VCC and your motors... it works great but only on high voltage applications. </p><p>You can make your own H-Bridge too but have to use higher end transistors to avoid the same voltage drop... 2n390x won't work very well. This becomes price prohibitive.</p><p>For most cars the original poster's idea works well and is super easy, and you end up using the cars built-in H-Bridge which is usually more efficient. Most cheap RC cars use the same control chip so the wiring is the same (even on different brands). The poster in this case identified the wiring on this model RC car, but if you look closely at the actual board you will find the same chip (and pins) on most other cars as well. You just have to verify which wires trigger forward/backward/left/right and use the Arduino to flip those positive or negative to activate each circuit. Pretty easy once you do it once or twice.</p>
The difficulty is soldering wires to the tiny board on the cheap R/C car I bought from Target. A 5 pack AA battery pack that came with the car provided plenty of power to drive the R/C car motors via the L298N. We won the race with this design. These R/C cars are so fast compare to the standard Aduino car kit.
Hello i have batman monsternam rc truck but i dont have remote c how can i program with arduino?
<p>Could someone please explain why we need the 1000 ohm resistors? </p><p>Is it to bring the 5V driven by the Arduino down to 3V?</p><p>How was this resistor value derived? What is the expected current?</p>
<p>Excellent instructions !</p><p>I can't find the exact RC car, are pins 2,6,7,10 &amp; 11 universal across all RC toy cars ?</p><p>That is the only tricky part about this instructions and if done incorrectly can render the whole thing useless. </p>
<p>woww nice =)</p><p><a href="https://www.hobbynitro.net/%D7%AA%D7%97%D7%91%D7%99%D7%91-%D7%91%D7%A9%D7%9C%D7%98-%D7%A8%D7%97%D7%95%D7%A7/%D7%9E%D7%9B%D7%95%D7%A0%D7%99%D7%95%D7%AA-%D7%A2%D7%9C-%D7%A9%D7%9C%D7%98" rel="nofollow">https://www.hobbynitro.net/%D7%AA%D7%97%D7%91%D7%9...</a></p>
<p>I've not long finished this project. Now I'm looking to add sensors to prevent crashes. A great one to start with for sure.</p>
Pls can u send me the schematics(superRichard240@gmail.com ) and the code that u used to create it because i wanted to create one like that with my little cousin. Anything you can give me would really help. Thanx in advance
<p>I need schematic diagram of this </p><p>kindly send me at irfan.atta.be13@iba-suk.edu.pk<br></p>
<p>The instructions were very helpful. I am from a computer science background. The RC Car uses RX-2B receiver. I followed the steps given in the PDF, now the RC car is not functioning at all, with or without Arduino. Let me know if any one can help me. </p>
If you are agree with work to gether by online then we make best projects on robot ,i study electrical engineering and you are best knowledge in computer so if we work together then we make programebal robot my contact no on whtsup is 8128889855<br><br><br><br>With best complement akshay dalsaniya
Awesome Project! Thanks... I will try it...
<p>Here are the necessary tools for this project:</p><p>www.ielectronicparts.com/product-category/tools</p>
<p>schematic diagram needed please on email ID ee.13.et.001@gmail.com </p>
<p>Activity Detail:</p><p>Step 1. Unscrewed RC Car<br>Step 2. No VCC found on IC RX-2B, VDD found on RX-2B receiver IC. Hence assumed VDD as VCC.<br>Step 3. Wired Arduino 5V to VDD of Battery (Battery was connected to VDD of IC), wired Arduino GND to Battery other pin( Battery other pin connected to GND of IC indirectly)<br>Step 4. Identified the F,B,L,R pins of the RX-2B receiver and noted the wires running from F,B,L,R pins of RX-2B to the motors of the car.<br>Step 5. Directly soldered the 4 pins (8=F,7=B,2=L,4=R) of Arduino to Car motors through wires by taking into consideration step 4 (The car motor wires that were already soldered to RX-2B receiver was not touched or altered)<br>Step 6. Uploaded the Arduino Code as given in this instructable<br>Step 7. The Arduino was plugged to the computer through USB</p><p>Issues/Error Details</p><p>Issue 1. After uploading code to Arduino with Arduino powered through USB attached to computer, nothing happened. The wheels did not turn. <br>Issue 2. After disconnecting the Arduino and undoing all that was done to the car, the Car did not Function through its remote control<br>Issue 3. One of the wires on the car which is not part of F,B,L,R or VDD or GND or LEDs connected to RX-2B got disconnected. Unable to identify where to re-solder that wire on the RX-2B IC. </p><p>Final Note: RC Car not working. </p><p>Help and suggestions needed. </p>
<p>Wouldn't the code fry the h-bridge circuit? </p><p>Running forward after reverse or vice versa will temporary set both drive motor control pin to high - in such case there would be a short circuit between the two bipolar transistors and they are gone. Happened to me, then I figured it out while I was looking what went wrong.</p><p>The simple fix to this problem is to set first to low and then to high.</p><p>That is, instead of:</p><p>void go_forward() {</p><p>digitalWrite(forward,HIGH); // turn forward motor on</p><p>digitalWrite(reverse,LOW); // turn revers motor off</p><p>}</p><p>void go_forward() {</p><p>digitalWrite(reverse,LOW); // turn revers motor off</p><p>digitalWrite(forward,HIGH); // turn forward motor on</p><p>}</p>
<p>How did you figure out which pins made the car go forward, backward, left and right ? </p>
<p>I have holes 6-11 but number 2 has a yellow wire connected on the green side, what do I do?</p>
<p>This is great and worked on my first try, than you! I was able to get the IC off by using solder wick, pushing down hard on all 16 legs with the iron, using more wick, pushing the legs down one at a time, using more wick, etc. until I could get something to wedge it up while I kept the iron on each leg. It took over an hour but I didn't damage the board or the chip.</p>
<p>its possible to use a smaller pcb ? like the arduino mini pro ? thanks you</p>
<p>or the mini simple edition</p>
<p>hi, I am making this same project . can you share with Schematic diagram of this. </p><p>i will be very thankful to You.</p><p>Thanks </p>
The controller chip will come out! Remember, you are cutting the metal pins with tiny clippers, not pulling the chip off. It will not pull off because it's soldered down, but if you clip each of the 20-25 pins that attach the chip to the board, it will come off. Don't give up!
<p>any suggestions on what rc car to get. I have tried 2 rc cars and it is impossible to get the controller chip out.</p>
<p>Can you use this for a boat? With obviously a little modification.</p>
<p>Use a car like mine : )). Everything is inside with Arduino Pro Mini and bluetooth. </p>
<p>Your code worked great. However in your loop you keep inserting your go_forward() function, which leads me to think you intended the car to drive straight for a delay of 1000 in between changing directions. go_forward() does not turn off the steering motors, so I added a function:</p><p>void go_straight()</p><p>{</p><p>digitalWrite(left,LOW);</p><p>digitalWrite(right,LOW);</p><p>)</p><p>Thanks for the code, it was well written and very effective. I will make sure to credit you in my school project</p>
<p>use a bigger car.</p>
<p>Is a good instructable i am going to use it with pygame with a usb extender to connect the cable to my Arduino Uno R3. </p><p>Still Making It</p>
<p>Great instructable! This is the essence of hacking.</p><p>I have one problem though; when the car is off the ground, everything appears to be working but, when I put it down, it doesn't move.</p><p>The only thing I did differently was not use hookup wire, I'm using jumper wires instead. Could this be the reason?</p>
<p>I used your RC car instructable to make a light following car. Thank you for your instructable! Below i included a link to my light follower:</p><p>http://www.youtube.com/watch?v=RQoxJT3ieIQ</p>
great project, is it possible to use raspberry pi gpio. thnx
the code is not complete
Yes it is.
great tutorial but i have a question about the voltage level in the PCB that came with the car <br>(i have once connected sensor to the arduino but the arduino was representing HIGH by a different voltage range than the sensor) <br>should i connect the GND &amp; VCC of the PCB to the arduino's GND &amp; 5v pins ( i have seen someone doing so) or what should i do ? is the PCB connected to the batteries that drive the motors in some way? <br> <br>thanks a lot
The car runs on its own batteries and the Arduino runs on its own 9V battery. Do not connect any wires between the Arduino and the car PCB except for those shown in this Instructable. <br>Thank you for watching!
I am in the middle of a Project similar to this. See my video here:<br> <a href="https://www.youtube.com/watch?v=SPLlTAVeIf8" rel="nofollow">https://www.youtube.com/watch?v=SPLlTAVeIf8</a>
Awsome Project!

About This Instructable




More by careyfisher:Autonomous Control of RC Car Using Arduino 
Add instructable to: