Things used in this project

Hardware components:
RC Car - Street Warrior Off Road Pickup Truck
12002 04
Breadboard (generic)
Omron b3f 1000 image 75px
SparkFun Pushbutton switch 12mm
00114 05
SparkFun Breadboard Power Supply 5V/3.3V
I got 5 and 3.3 from the Nscope, but any supply will work.
Mfr 25frf52 100r sml
Resistor 100 ohm
08377 02 l
Resistor 330 ohm
schematic shows 470, but 330 will work too
Mfr 25frf52 10k sml
Resistor 10k ohm
Dsc 0085 1
Cypress PSoC 4 Pioneer Kit


Typical RC car motor controller
This is a schematic for the typical motor controller board on an RC car. The partial rectangle on the left is the integrated circuit that feeds electrical signals from the remote control to the motor controller.
I drew circles around the electrical nets from the integrated circuits where we will hack into the motor controller and disconnect it from the remote control decoder integrated circuit.
I removed "R13, R14, R15, and R16" from the motor controller board to disconnect the on-board remote controller integrated circuit. In the next schematic I will show how I took control of the motor controller using switches.
Dsc08428 36wli3i5ra
Remove resistors from RC car motor controller board
This is the motor controller board in the RC car. You can see power from the batteries coming to the board on the brown and black wires, rear wheel wires are blue and white and front steering wires are red and black. The important thing to notice are the resistors R6 and R4 along with two other resistors covered up by the black wire from the switch.
I was able to determine that those four resistors are the equivalent to R13, R14, R15, and R16 on the schematic. I used a volt meter to look at the voltage output from the remote controller integrated circuit to the resistors and then by flipping the controls on the remote controller determine which resistor performed which function. Then, I removed the tiny resistors with a soldering iron tip being careful not to damage the pads on the circuit board.
Dsc08417 zsnfblykai
Wiring to the motor controller board
Now you can see how I soldered the green, yellow, white, and orange wires to the transistor side of the motor controller completely disconnecting the remote controller integrated circuit outputs from the motor controller.
The new wires represent control as such:
Yellow = steer right
Green = steer left
Orange = rear wheels forward
White = rear wheels reverse
Dsc08423 bt60k3wwfk
Breadboard schematic
On this schematic, I had to convert the +5VDC down to 3.3VDC to drive the motor controller. Then you can see each switch and the voltage dividers and current limiter. When the switch is not pressed, the base of the H-bridge transistor is grounded through a 10K resistor and turned off. When the switch is pressed, current flows from 3.3V power through the 100 ohm resistor and the 470 ohm current limiting resistor to forward bias the transistor which turns on the bridge and applies curren to the motor.

WARNING: H bridges are highly susceptible to being toasted (i.e. burned out, flame out, smoke released, etc.) If you turn on two switches at the same time, such as forward and reverse, you will short power to ground through the H-bridge transistors, thus exceeding the collector current rating for both transistors. The tiny little silicon traces inside the transistors don't like that and will POP! The same thing can happen if you miss wire the breadboard, so, be careful and test it with a volt meter before you hook it up to the RC car motor controller.

The 470 ohm current limiting transistor has a very important purpose of limiting the base current to the transistors in the H-bridge. The 100 ohm resistor will probably protect them for a while, but you don't want to exceed the base current on the transistors for long; they will POP too.
Switch breadboard schem wflj3svdcj
PSoC wired to motor controller
Now, instead of a breadboard, the Cypress PSoC 4 Pioneer kit is mounted in the bed of the truck and wired to the motor controller.
Dsc08438 toiiy8m4lg
Workshop challenge slides
These are the slides for the workshop on Saturday
Empirical velocity and acceleration measurements
By programming the PSoC to run the car at time intervals and by measuring the distance (on a hard floor) one can calculate and graph the velocity, acceleration, and wheel angular velocity. One interesting thing to note is that the wheel diameter is 3.8 inches or 0.3167 feet. When multiplied by Pi, the result is almost 1 which results in the angular velocity almost being equal to the linear velocity.
Velocity and accleration rmeasurements dx1trhfakx


Cypress PSoC project archiveC/C++
This is the project archive that can be opened in the PSoC Creator development environment
No preview (download only).
Debounce circuit C/C++
This includes the latching debounced switch
No preview (download only).
Final design working on the car
No preview (download only).
PSoC Creator bundle zip for measuring velocity and accelerationC/C++
In this design, I dumped the down counter to simplify the design and set the clock at 2Hz (500ms period). In the LUT, it's easy to run the car in 0.5 second increments by just adding a 1 or 0.
No preview (download only).


Michigan 2013
Gregory Griffes
1 project • 4 followers
Experienced electrical and computer engineer.
Troy Gentry
1 project • 2 followers


Did you replicate this project? Share it!

I made one

Love this project? Think it could be improved? Tell us what you think!

Give feedback


Sign up / LoginProjectsPlatformsTopicsContestsLiveAppsBetaBlog