Manufactured type
We have about 12 Radio-Controlled cars that all use Speed Controllers and students can work them quite hard. Since they cost £20+ for the most basic types, I thought it was about time we made our own. This uses power MOSFETs controlled by a PIC micro-controller and includes some nifty features such as Braking and Auto-Calibration for a range of transmitters.

My version
Home > Circuits > Radio Control Speed Controller
Modified:21:39, 22 October 2013
Most proportional control systems follow a standard format. The output from each channel of an RC receiver consists of continous pulses, approximately 40-50 per second. The width of the pulse determines the position of an armature (if using a servo) or the speed and direction of a motor (if using a speed controller).
As far as speed control is concerned, the specifications used in this circuit for the pulse width is shown above. A width of 1.5ms generally sets the motor to a stop condition. Shortening the pulse width to 1ms will gradually increase the speed of a motor in Reverse, and lengthening it up to 2ms will gradually increase the speed of a motor Forwards - it's as simple as that.
In this design, the motor is actually braked using "Regenerative braking" when the pulse width is centred. If the pulse width goes above 2.5ms or below 0.5ms then the drive to the motor is switched off - with no braking appllied.
The output uses another type of PWM (Pulse Width Modulation) to control the speed of the motor. The principle relies on the duty cycle of the output. The more "on" time the faster the motor goes. For more information on PWM, check out the
Drill Controller Page
The circuit can be broken into 3 sections. The buffer conditions the input signal for the PIC micro-controller. The PIC provides the signals to drive the 4 branches of the MOSFET driver correctly.

The PIC used is a 12F629 with a program written to convert the signals accordingly.



This section shows the voltage regulator providing +5v for the PIC. R9-11/Q9 form the buffer and also inverts the signal for the PIC since it uses an internal timer that is gated by pin 3 and is active low. Since the input signal has high pulses it needs to be inverted. The buffer also offers some protection from external devices and level conditioning for the PIC. CN1 connects to the RC reciever - note the +v connection is not required since the circuit has its own supply.

SW1 resets the PIC, which may be required if the PIC fails to operate due to a drained battery or poor wiring. It will also cause the PIC to calibrate itself with the current input signal. It does this by sampling the width of the RC siganl pulse and setting that as the centre off position. This is generally 1.5ms but some transmitters vary so this feature will allow it to re-align to a different setting. If there is no input signal, or the pulse with is greater than 1.7ms or less than 1.1ms, then the calibration is aborted and the original setting is used. The calibration procedure only needs to be done once as it is stored on the EEPROM for recovery after the power has been disconnected.


The driver type used is a full bridge with MOSFETs. Q1,3,5,7 act as buffers and drivers for the gates of the MOSFETs Q2,4,6,8 respectively. The type used are 10A rated in a TO220 package. Shoot-through can be avoided completely as the PIC can control all 4 drivers individually ensuring that no 2 MOSFETs in the same branch are on at one time. D1-4 protect the MOSFETs from hazardous EMF spikes generated by the motor. They are a bit over the top for this purpose but I had a tube of them hanging about.

Originaly i used IRF530/9530 but these have rather high "on" resistance. I would recommend something much lower, around 0.05 ohms or lower. For more information about how H-Bridge drivers work, goto MOSFET Bridge Driver page


The PCB was made as small as possible since space is often at a premium inside Radio-Controlled models. It measures 1.5" x 2" or 38mm x 51mm and is made from single sided board with no wire links.
The tracks that lead to the MOSFETs and connector TB1 have had a liberal amount of solder added to increase their current carrying capacity. Water soluble fluxed solder was used and the PCB was washed clean after soldering. Then a couple of layers of clear laquer applied to prolong the life of the tracks.

The connector used for RC receivers are shown right. They can be bought as kits that have crimpable pins for the wires to fit into the plugs. The other end of the wires can be soldered directly into the PCB or a SIL connector used for CN1.

The power and motor connections are via TB1, (shown right). The circuit will work up to 18v. After that the 78L05 might start to sweat a bit and will need to be uprated. The polarity of the motor connections will need to be trial and error. If the motor turns the wrong way then reverse the wires.
WARNING - The MOSFETs are in the worst position as far as cooling is concerned and when supplying high currents for any length of time (greater than 2A) they can become very hot, in particular the P-channel devices. Some motors made the MOSFETs very hot and it is recommended that the MOSFETs be re-wired onto a heatsink off the PCB if high currents are required for any length of time. The heatsink tabs of the TO220 MOSFETs and Diodes are NOT isolated and are connected to one of the terminals of each device. Take care adding any heatsink to them and ensure that any metal heatsink applied is insulated from all the tabs.
  • PCB LAYOUT using WORD - check size but it should be correct

Please note that even though I have every faith in this controller, I accept no responsibility for any damage occuring from you building and using the controller.

The pre-programmed PIC is available from our shop.

Designed and Written by Phil Townshend 2011
Back to Circuits page... - Working Electronics For Students & Teachers