Build a Miniature High-Rate Speed Control with Brake

July 16, 1997

Many designs for high-rate speed controls have been published. Most require two 8-pin integrated circuits (ICs) or one 14-pin IC. Many designs suitable for home construction are fairly large (some as large as 2″ square). Many do not include a brake. The design in this article addresses many of these shortcomings. Some of the ideas from this design are derived from designs published in various European magazines. Many of these use surface mount technology (SMT) construction, which most modellers (myself included) do not have the facilities to work with. This design uses standard off-the-shelf components, and does not use a microprocessor, meaning that you don’t need any special equipment to build it.


This control has the following specifications:

  • Size: 1.4″L x 1.2″W x 0.7″H (3.6cm x 3.0cm x 1.5cm).
  • Weight: approximately 0.6 oz (17g) without motor and battery leads.
  • Current: 30A continuous, 45A intermittent (higher with better MOSFETs).
  • Voltage Loss: 150mV @ 20A (with four IRFZ40 MOSFETs).
  • Solid state soft-brake when throttle is off.
  • Arming switch.
  • No power-on glitch.*
  • Throttle stays off when transmitter is off.
  • 7 to 12 cell operation.
  • Cost to build: approximately $40 Cdn.

*Caution: One time when this control can and will turn on unexpectedly is if you arm the control while the receiver is off or disconnected (i.e. there is no power to Z1). Always turn on your receiver before arming the control.

The Circuit

The circuit begins with a buffer, consisting of C1, R1, and Q1. This provides some isolation between the receiver and the rest of the circuit, and makes circuit operation somewhat independent of the model of receiver (although you may have to adjust R8 if you change receiver types). R2, R3, and C2 form an integrator, which produces an output voltage proportional to the pulse width of the input signal. This output voltage varies from approximately 1.15V for a 1ms input to 1.45V for a 2ms input (at 50 pulses per second).

Z1A, together with R4 through R8, and C3, form a 2.5kHz triangle wave generator. R8 adjusts the upper and lower bounds of the triangle wave (it also affects the frequency, but within the range over which R8 must be adjusted, this is not significant). When properly adjusted, the triangle wave (which appears across C3) will oscillate between about 1.2V and 1.4V. This covers the middle 2/3 of the range that the integrator voltage covers.

Z1B is used as a comparator, which compares the integrator voltage with the triangle wave. When the integrator voltage is above the voltage of the triangle wave, the output of Z1B is high; when it is below, it is low. At zero throttle, the integrator voltage (1.15V) is always below the triangle wave voltage (1.2V to 1.4V), so Z1B remains low. At full throttle, the integrator voltage (1.45V) is always above the triangle wave voltage, so Z1B remains high. At half throttle, the integrator voltage (1.3V) is above the triangle wave voltage half the time, so Z1B is high half the time and low half the time.

When Z1B is low, MOSFETs Q2 through Q5 are turned off via R12 through R15. When Z1B is high, the MOSFETs are turned on via R9 and R12 through R15. The arming switch, S1, disconnects R9 from Z1B, and since it’s output is an open collector, it will not go high (R10 ensures that it does not float high, and also provides some protection against damaging the MOSFETs).

ESC Schematic.

ESC Schematic.

D1, C4, R11, and Q6 form the brake. Whenever Z1B is high, C4 is quickly discharged through R9 and D1. When Z1B is low, C4 is slowly charged through R11. This charging occurs so slowly that it will not get very far before the next time Z1B goes high. Only when Z1B does not go high for about 50ms (i.e. the throttle has been off for 50ms) does C4 make any significant progress. When C4 does charge fully (the lower side reaches close to 0V), the P-channel MOSFET Q6 is turned on, effectively shorting out the motor, and acting as a brake. Notice that this can’t happen as long as the throttle is on even a little bit, so there is no danger of Q6 and Q2/3/4/5 being on at the same time. Because Q6’s on-resistance is about 0.2 to 0.3Ω, the brake is somewhat gentle, but more than adequate to stop a wind-milling propeller.

The circuit as originally designed used inexpensive IRFZ40 MOSFETs, which have an on-resistance of 0.028Ω at 10V, but work fine as low as 7V (i.e. 7 cells, under load) in practice. The Modifications section later in this article suggests several possible lower resistance replacements.


The circuit is best built on a printed circuit board. Refer to my article on the subject, Making Excellent Printed Circuit Boards.

Copper side. Actual size is 1.4" x 1.2" (3.6cm x 3.0cm).

Copper side. Actual size is 1.4" x 1.2" (3.6cm x 3.0cm).

There are a few things to note in the construction. The leads to the receiver (a replacement servo lead) are connected directly to the pads on the bottom of the board (on the right side in the PCB layout shown above). Typically, the CH- lead is brown or black, the SIG lead is white, yellow, or orange, and the CH+ lead is red. The arming switch, S1, is connected with two short lengths of wire to the two holes marked S1 in the component placement diagram below.

Component placement diagram.

Component placement diagram.

Begin by installing all the resistors and capacitors. The resistors should be installed standing on end (except R12 to R15, which lay flat). Be sure to orient C2 correctly, with the negative side closest to the edge of the board. Install D1 and Q1, again making sure to orient them correctly (the negative side of D1 will have a band on it). Install the jumper that will end up underneath Z1, and then install a socket for Z1. Connect the receiver lead and arming switch as described above.

Connect 12 or 14 gauge wire to the MOTOR+, MOTOR-, BATT+, and BATT- traces on the board. For each wire, strip off enough insulation that you can solder the wire along the whole length of the trace, since the trace alone is not heavy enough to carry the full motor current. The MOTOR+ and BATT+ wires can actually be a single length of wire, with 1.4″ of insulation stripped off the middle.

Install the MOSFETs. The four N-channel MOSFETs are installed with their tabs towards the MOTOR- side of the board, while the P-channel MOSFET is installed with it’s tab towards the MOTOR+ side of the board. Before soldering the centre lead of each MOSFET, bend it over towards the MOTOR- trace. Each MOSFET’s centre lead should overlap well onto the next lower-numbered MOSFET’s centre lead. Solder the centre leads to the copper trace, and to each other and the MOTOR- wire. Be careful not to overheat the MOSFETs while soldering.


Double check your work, making sure there are no solder bridges, and that you didn’t make a mistake copying the circuit board layout. Check that all the components are in place, but do not insert Z1 into its socket yet.

Connect a 7 to 12 cell motor battery to the BATT+ and BATT- leads, and use a volt meter to ensure that there are no high voltages on the servo leads (you don’t want to fry your receiver because of a wiring error).

Disconnect the power, insert Z1 into its socket, plug the servo lead into the appropriate receiver channel, connect the motor battery, and connect a 12V automotive lamp to the MOTOR+ and MOTOR- leads. Move the transmitter throttle stick to off, turn on your transmitter, then your receiver, and then the arming switch. The lamp may or may not light. If it does light, use a small screwdriver to turn R8 counter-clockwise until the lamp goes out. If it does not light, turn R8 clockwise until it does, and then counter-clockwise again until it goes out.

Turn everything off, disconnect the motor battery, and hook up a motor (with a suitable propeller). Don’t forget to install a diode across the motor terminals, with the banded end connected to the positive terminal of the motor (the diagram shows the easy-to-obtain 1N4004, but a Schottky diode would be better). Make sure the motor is firmly fastened to something and that the propeller can swing freely. Turn everything back on in the following order: throttle stick to off, transmitter on, receiver on, arming switch on. If you’ve adjusted everything using the light bulb as described above, the motor may be completely off, humming a bit, or turning slowly. Adjust R8 so that with the throttle stick set to off, the motor is not running, but with the stick advanced one or two clicks, it begins to hum. Keep clear of the propeller while making the adjustments. When the motor first starts, it will emit a high-pitched whine. This is simply the motor armature oscillating at the speed control’s 2500Hz rate and is quite normal.

When everything is adjusted so that the motor starts at the right point, try moving the throttle stick slowly to full power. Pay attention to the motor speed. It should speed up as you move the throttle stick, but it should stop getting faster before you reach full on. Once you reach full on, move the throttle trim forward to confirm that the motor won’t go any faster.

If you find that you can push the throttle stick all the way forward, and still get more speed by pushing the trim forward, then you may need to replace R5 with a 120kΩ resistor to narrow the throttle range to match your radio.


Installation is straightforward. Hook up everything as you did while testing. Install the arming switch in an appropriate place (I prefer the left side of the fuselage, just ahead of the leading edge of the wing, with forwards being ON). Make sure that the bottom of the circuit does not touch anything metallic. To prevent corrosion, I sprayed the bottom of the board with clear lacquer. Keep the motor and battery leads as short as possible. Also make sure your motor is equipped with a diode, and suppression capacitors (I use one 0.1µF capacitor across the motor terminals, and one 0.047µF capacitor between each terminal and the motor case; do not use electrolytic capacitors).

Completed ESC installed in my Great Planes Spectra.

Completed ESC installed in my Great Planes Spectra.

Be sure to use a fuse. The best place to install the fuse is in the BATT+ lead (i.e. between the speed control and the battery). I use two 12 gauge female spade connectors, soldered at right angles to the wire, as a fuse holder.

Before flying with this control, do a range check. With the motor off, you should get the same range as without the control (for most radios, this is 100ft (30m) with the antenna down; check your manufacturer’s recommendations). With the motor on, you should get at least 85% of the range you got with the motor off. If you do not pass this range check, do not fly!


This control is very versatile, and several modifications can be made to it. Here are some ideas.

If you don’t require a brake, you can omit D1, R11, C4, and Q6.

If you’d like to build a smaller speed control, perhaps for Speed 400 applications, you can use fewer MOSFETs. For instance, a single IRFZ40 MOSFET is suitable for a Speed 400 sport plane drawing up to 10A. In that case, you can omit Q3, Q4, and Q5, and then bend Q2 over to lay flat on the board. If you’re using a brake, Q6 can be bent over to lay down on top of Q2. This arrangement greatly reduces the thickness of the control.

To achieve a lower on-resistance and/or fewer MOSFETs, you can substitute some of the newer logic-level low resistance MOSFETs for Q2 through Q5, such as the IRLZ44N (0.025Ω @ 5V) SMP60N03-10L (0.010Ω @ 5V), IRL2203N (0.010Ω @ 4.5V) or IRL3803 (0.009Ω @ 4.5V). This can double or triple the current carrying capacity of the control, or produce a 20A control with a single MOSFET. Using logic-level MOSFETs also allows the control to run on as few as four cells.

By replacing R9 with a 1.2kΩ resistor, you can use the control with up to 14 cells. Please note that most logic-level MOSFETs cannot handle being switched by over 12 cells, so you must use regular MOSFETs such as the IRFZ40.

Parts List

The following table lists all the parts needed, along with Radio Shack® part numbers for those components that are available there.

Part Description Radio Shack®
R1,R10 1M ¼W 271-1356
R2 220k ¼W 271-1350
R3 33k ¼W 271-1341
R4 22k ¼W 271-1339
R5 100k ¼W 271-1347
R6,R9 1k ¼W 271-1321
R7 68k ¼W
R8 10k trimmer 271-282
R11 470k ¼W 271-1354
R12-R15 100Ω ¼W 271-1311
C1,C3 22nF (0.022µF)
C2 2.2µF tantalum 272-1435
C4,C5 0.1µF 272-109
D1 1N914 or 1N4148 276-1122
Q1 2N3904, 2N4401, or equiv. 276-2016
Z1 LM393 dual comparator
Q2-Q5 IRFZ40, IRFZ44, ECG2395, SMP50N06-25
Q6 IRF9530 or IRF9540
S1 SPST miniature toggle switch
or miniature slide switch

Parts not available at Radio Shack can be ordered from electronic supply houses such as Sayal Electronics or Digikey. Also see the Modifications section earlier in this article for other MOSFETs you can use for Q2 through Q5.

Related Articles

If you've found this article useful, you may also be interested in:


  1. Anil
    March 08, 2010

    Any hint on how the update speed can be improved. I work as a salesman for a embedded devices company. I can make the engineers make changes but they are just assemblers. They have no circuit design knowledge. It’s great to see such original work in this totally utilitarian world.

    Best Regards, Anil Kumar

  2. Stefan Vorkoetter
    March 08, 2010

    Do you mean the response speed to throttle changes?

  3. Oyegunwa Olufemi Sampson
    April 02, 2011

    I,ll like to try the circuit on a dc motor.Please sir I will be greatfull if U can could post a complete schematics diagram of six channels transmitter and receiver to my mailbox

  4. Hanif Cool
    October 10, 2011

    kemah boh……………

  5. Ajay
    April 04, 2012

    Thanks alot for give me awesome details.

  6. Goodford
    May 11, 2012

    Hi Stefan, can I use BS170 FET’s as I want to drive the small motor?

  7. Kurtis
    September 25, 2012

    Is this ESC for a brushless or a brushed motor?


  8. Stefan Vorkoetter
    September 26, 2012

    Kurtis, it’s for a brushed motor. Notice that it has only two leads to the motor. A brushed control would have three.

  9. ram
    October 21, 2012

    sir please can you tell me all transister are in same direction or q6 is opposite from others

  10. ram
    October 21, 2012

    sir when i connect battery terminal Q4 and Q6 heating whery dengerusly and damege please help me

  11. Stefan Vorkoetter
    October 21, 2012

    Ram, look at the component layout diagram to see the proper orientation of the transistors. If parts are getting hot, you’ve made a wiring mistake somewhere, either in laying out the circuit board, installing components, or you’ve created a solder bridge.

  12. ram
    October 21, 2012

    ok sir iam trying other one please sir can you mail me som actual photos of esc

  13. ram
    October 21, 2012

    very very thanks a lot sir .,, yes by mistecky make solder bridge ..

  14. ram
    October 21, 2012

    sir under the ic z1 there have any jumper wire ir not

  15. IQLogic
    April 28, 2013

    Hi Stefan

    I’m very interested in this ESC. Can I use it for car (forward, brake, backwar)?

    Many thanks for your answer

    Best regards

  16. Stefan Vorkoetter
    April 28, 2013

    Milan, this ESC won’t work for a car. It has no reverse mode.

  17. IQLogic
    April 29, 2013

    Hi Stefan,

    please, do you know about any homemade brushed ESC for car? Forward, brake and reverse mode?


  18. MURALI
    May 01, 2013

    what is this ch+, ch-, what to connect to it?

  19. Stefan Vorkoetter
    May 01, 2013

    Murali, CH+ and CH- are the positive and negative power outputs for the receiver channel that you are plugging the speed control into.

  20. DAS
    October 20, 2013

    It seems you were short changed with your engineers, if they can’t design a circuit they are _not_ real engineers. Or at most they are techs with no experience.

  21. avadhut
    October 01, 2014

    30A ESC with a brake

    PCB Actual size PDF ?? how to print ?

  22. anusha
    December 08, 2014

    hi sir
    i have a c2826 motor that it is a brushless motor.

    can i use it esc for my motor?

  23. Stefan Vorkoetter
    December 08, 2014

    No. This speed control is for brushed motors, not brushless motors.

  24. Moez
    January 18, 2015

    do you have a circuit for reversible esc with brake for 40A brushed motors

  25. Stefan Vorkoetter
    January 21, 2015

    Sorry, I don’t. Reversible ESCs aren’t very useful for planes, so I’ve never designed one.

  26. Widi
    February 05, 2015

    what component can be used for replacing or equivalent for Z1 and Q6, besides which have been mentioned in the components list, can this circuit work if output of my receiver has higher frequency? my receiver give signal almost 100 times persecond

  27. Stefan Vorkoetter
    February 05, 2015

    I can’t think of any substitute for Z1. Although other manufacturers may have their own part number for it, LM393 is the industry standard part number for this. Q6 can be any P-channel power MOSFET that can handle the necessary current.

    If your receiver is giving a signal 100 times per second, then it probably isn’t using the standard 1-2ms pulse width modulation either, so normal servos, and this ESC, are unlikely to work with it.

  28. Widi
    February 05, 2015

    Thanks for the reply, my RC transmitter and receiver are homebrew, and the pwm still in 1-2 ms range, i can lower the frequency from my transmitter actually (too lazy to modify), and its working with standard analog servo

  29. Stefan Vorkoetter
    February 06, 2015

    Well, in that case, it might work. You might have to change the value of R2 to something lower (maybe 100 kOhms) so that the integrator voltage will drop enough between pulses.

  30. Adi
    February 24, 2015

    Hi Stefan,

    Thanks for sharing the design. I’ve tried to make this one but unfortunately it’s not working. When i plug my 2S battery, it start to run the motor. I had turn the R8 counter-clockwise but it doesn’t stop the motor, it still run slowly, then i try to turn R8 clockwise and suddenly one of the FET heating and start to smoke. Please, can you mail me actual photo like you did for ram above. Thanks a lot

  31. Stefan Vorkoetter
    February 24, 2015

    I didn’t send ram a photo. I just suggested that he check the component layout against the diagram in the article, and also to check for solder bridges. As you can see, he found a solder bridge and fixed it. So, all I can suggest is that you carefully check everything. Note that you have probably destroyed one or more of the FETs if there was smoke. Very likely, and assembly mistake has caused the brake and the power to be on at the same time, which will burn out the brake FET very quickly (is that the one that the smoke came from)?

  32. Marcus
    March 24, 2015

    Hi Stefan,

    I want to use your speed controller to hook up my radio to a slotcar track.
    I figure Q2 will be enough.
    Another modification that would be great would be a variable brake.
    Could this be done by using a poti instead of R11?

    I would need 1.5ms-2ms for 0-100% (or 1-1.5 if that would make any difference). Is there some way to archive that without using an µC?

  33. angelo
    October 13, 2015

    Hey Stefan,

    Great website!!! one thing that got me is that, I would like to build one for learning purposes. Would this ESC works on quadcopter? I use 3cell lipo?


  34. Stefan Vorkoetter
    October 14, 2015

    No, for a quadcopter, you need four ESCs, and something to control their relative speeds in response to directional inputs (instead of controlling them directly from the throttle channel). Also, pretty much all quadcopters these days use brushless motors, and this ESC is for brushed motors.

  35. Mesut
    January 05, 2017

    🙂 thank you for all these details. You’re great 🙂 I’m going to use this circuit for a boat for fishing 🙂 but I need to an esc that has reverse mode. I’m planing to use H bridge on the end of the motor pins to do this. What do you think about it? And also my rc has no a channel that can Send a continuous signal. I’m really confused :/ can you give some advise about this problem?

  36. Stefan Vorkoetter
    January 05, 2017

    Sorry, I don’t really have any advice, other than perhaps this is not the ESC you are looking for.

  37. Mesut
    January 07, 2017

    It is ok 🙂 at least you gave us this one 🙂 thank you for this again. and I have a last one question 🙂 it is about the integrator and lm393. Please correct me if I’m wrong.the integrator and lm393 are converting the ppm signal(which is coming from the receiver) to pwm (which will control speed of the motor by mosfets), aren’t they?

  38. Stefan Vorkoetter
    January 10, 2017

    That’s pretty close to correct. The signal from the receiver is also PWM, not PPM, with a fixed 50Hz pulse rate, and a duty cycle varying from 2% (full off) to 4% (full on). The integrator converts this to a voltage, and then the LM393 converts that to a new PWM signal at about 2500Hz, with duty cycle varying from 0% (full off) to 100% (full on).

  39. Mesut
    January 13, 2017

    I couldn’t do it :/I try to test it. When I connect the motor battery, and connect a 12V automotive lamp to the MOTOR+ and MOTOR- leads without connecting the receiver,the lamp does light o.Oit didn’t go out even if I try the adjust the R8.I didn’t understand why.I checked the connections. It seems like there is no a mistake:/I don’t know what I should do?

    Then I tried it with the receiver . But this time the lamp does not light :/even if i tried to adjust R8 again.

  40. Stefan Vorkoetter
    January 13, 2017

    There must be a mistake somewhere. Many people have built this circuit in the past, and it works fine. Check everything carefully. Make sure the oscillator is oscillating. There should be a triangle wave at pin 2 of Z1, and a square wave a pin 1, both about 2.5kHz.

Leave a Comment

Want to see your picture next to your comments on this site and others? Visit to register your own globally recognized avatar.

Buy Stefan a coffee! If you've found this article
useful, consider leaving a donation to help support

Disclaimer: Although every effort has been made to ensure accuracy and reliability, the information on this web page is presented without warranty of any kind, and Stefan Vorkoetter assumes no liability for direct or consequential damages caused by its use. It is up to you, the reader, to determine the suitability of, and assume responsibility for, the use of this information. Links to merchandise are provided in association with Links to eBay searches are provided in association with the eBay partner network.

Copyright: All materials on this web site, including the text, images, and mark-up, are Copyright © 2017 by Stefan Vorkoetter unless otherwise noted. All rights reserved. Unauthorized duplication prohibited. You may link to this site or pages within it, but you may not link directly to images on this site, and you may not copy any material from this site to another web site or other publication without express written permission. You may make copies for your own personal use.