In the R/C multirotor scene, the trend at the moment is to have very high refresh rates on your ESCs (speed controllers).

My understanding of how servos/ESCs are driven is a 1-2ms pulse is sent to the servo/ESC. at the standard rate this happens every 20ms giving a 50Hz refresh rate. More here: WikiPedia article on Servo Control

I can understand how this happens up to 500Hz, where full throttle (or full lock on a servo) would mean the line is just pulled high (one 2ms pulse ends at exactly the same time as the next one begins), and 0 throttle (or full lock the other way on a servo) would be a 50% duty cycle signal with a period of 2ms.

I have just seen this: HobbyWing X-Rotor 20A OPTO ESC For Multirotor Applications which is an ESC that states: "supports a signal frequency of up to 621Hz." How is that possible? By my calculations the pulses would overlap at full throttle.


1 Answer 1


The standard R/C hobby servo pulse width range of 1~2ms gives a maximum repetition rate of just under 500Hz, but if a non-standard range is used then it can be higher. High-speed servos designed for helicopter tail rotors are often designed accept 410~1140us (centering at 760us instead of 1.5ms) which theoretically could be sent at up to 877Hz.

The manufacturer's specifications for the XRotor-20A say this:-

1.5 Compatible with various flight-control systems and supports a signal frequency of up to 621Hz (Note: all throttle signals over 500Hz are non-standard signals)

Although servo pulses are a type of PWM, they encode the servo position into a specific pulse width rather than an on/off ratio. the servo or ESC detects the rising and trailing edge of the pulse and measures the time between them, so the repetition frequency has no bearing on the decoded position. Having the line 'just pulled high' is invalid because there would be no pulse to measure!

  • \$\begingroup\$ Thanks, Thats interesting, so even 500Hz using the standard range is not possible. \$\endgroup\$
    – jayjay
    Jan 12, 2015 at 16:33
  • 1
    \$\begingroup\$ You can't send a 2ms pulse at 500Hz, but if the gap between pulses is very small then the frequency can be very close to 500Hz. In practice the minimum acceptable gap is usually limited by processing overhead in the ESC. \$\endgroup\$ Jan 12, 2015 at 16:58

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.