I'm using ESC(Electronic speed controller) to control outrunner brushless dc motor. As you know ESC detects ppm signal between 1ms and 2 ms approximately. So my ESC detects signal between 4% and 9% duty cycle at 50 Hz as an input. However, it is unknown what kind of relationship exist between this input signal and output signal that drive BLDC motor.

Is ESC linear? How ESC converts input signal into required voltage for motor?

  • 1
    \$\begingroup\$ It uses a microcontroller. \$\endgroup\$ Apr 14, 2015 at 18:21

1 Answer 1


Most ESCs convert the servo pulse into into a linear PWM range.

However it's not quite as simple as that, because ESC's are designed to work with a variety of radio control transmitters which may have slightly different pulse ranges. Also, many transmitters have adjustable center and end-point settings. Several methods may be used to 'calibrate' the ESC to a particular transmitter:-

  1. Auto-calibrate: The ESC assumes that the initial pulse width received represents 'low throttle' (motor off) and records it as the low end-point. As the throttle is advanced above half way, the highest point reached so far is taken as 'full throttle'. This procedure has to be followed each time the ESC is turned on.

  2. Manual Calibration: The ESC is put into calibration mode by starting at full throttle (>1.5ms), then going to low throttle (<1.5ms) after a few seconds. These settings are recorded in an eeprom, so the calibration only has to be done once. Default settings that should work with most transmitters (eg. 1.2 to 1.8ms) are often pre-programmed into the ESC at the factory.

  3. Using a programming card or PC link cable: End-points can be set to specific values and/or switched between auto-calibrate and fixed end-points. Some ESCs also allow setting different throttle curves (eg. exponential) or a 'governor mode' where the servo pulse width represents an rpm that the motor speed is to be locked onto.

  4. Fixed end-points: The ESC may have two or more fixed end-point ranges, which be can be selected using throttle programming or with a programming card.

The ESC's instruction manual should tell you which method is used and how to do the calibration.

  • \$\begingroup\$ Thank you very much for your helpful answer. ESC manual mention about throttle curve but it doesnt include any figure. It is very silly. I will design a controller on Beaglebone and feed ESC pwm input. I understood the fact behind this relationship. In addition, this document says that standard ESC throottle input is linear with power not voltage(or pwm output). homepages.paradise.net.nz/bhabbott/esc_theory.html \$\endgroup\$
    – user38138
    Apr 15, 2015 at 16:26
  • \$\begingroup\$ On that web page I show that the standard linear throttle curve produces a linear voltage output but an exponential power curve (in a resistive load) and requires a reverse exponential throttle curve to linearize the power. I wrote that document a long time ago (before brushless motors became popular) and perhaps should update it, since most modern ESCs just use a linear throttle curve (users tend to prefer the greater 'punch' it provides at high throttle). \$\endgroup\$ Apr 15, 2015 at 17:31
  • \$\begingroup\$ I measured voltage of motor without propeller to learn relationship between esc throttle input and pwm output. I plotted it and results is here: i.imgur.com/LbtHbgk.jpg This voltage-throttle plot is very similar with the curve that you shared at document. I think my ESC behaves linear with power not voltage. Could you check my plot and comment on it? Am I right? \$\endgroup\$
    – user38138
    Apr 16, 2015 at 17:52
  • \$\begingroup\$ Your ESC appears to have a reverse exponential throttle response. If it was linear then the PWM ratio curve would approximate a straight line (this is assuming that you did actually measure PWM ratio, and not something else!). \$\endgroup\$ Apr 16, 2015 at 19:18
  • \$\begingroup\$ Finally, I want to be sure about why it's linear with power instead of voltage. My assumption: Thrust is proportional with square of rpm. rpm vs voltage is linear. Control input should be known in terms of thrust. Therefore throttle input is linear with power in fact it is thrust. Thank you very much for your attention. \$\endgroup\$
    – user38138
    Apr 16, 2015 at 21:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.