I need to implement a brushless dc motor and I know the motor needs to need constant control to ensure that consistent torque is applied to the rotor.

What control does the ESC provide and what control is up to the engineer?

(I will be using scalar control) My understanding is that the engineer determines at what time power needs to be applied to ensure maximum torque while the ESC manages the flow of current to its respective coils. I know that a sensored motor uses the Hall effect to provide info on the rotors position, so I assume I can provide microcontroller to read the hall sensor input and then determine the angular speed of the rotor, but I feel this isn’t very robust.

Is there an easier way to approach this problem?

  • 2
    \$\begingroup\$ "ESC" usually refers to the radio control hobby version of a brushed or in this case brushless speed control. Typical input is just the "throttle" level which is an application concept that does not really mean precisely anything in engineering terms. That said there are open source replacement firmwares for some. If you need precise control of motor behavior, you definitely don't want a hobby ESC with factory firmware. Where the line between customized firmware on an ESC vs some other starting point would be is a complex question, for which you have not really given enough specifics. \$\endgroup\$ – Chris Stratton Sep 29 '19 at 17:55
  • \$\begingroup\$ power is far not enough :). You need to control how you apply the power to the engine phases and read the backEMF or sensor data to control the engine speed and direction. If you want to control the torque - things are getting much more complicated \$\endgroup\$ – P__J__ Sep 29 '19 at 17:56
  • \$\begingroup\$ You could measure torque with a strain gauge between the motor frame and the chassis - the motor needs to be mounted on bearings though. Check out dynamometers as this is how many work. \$\endgroup\$ – Solar Mike Sep 29 '19 at 18:02
  • \$\begingroup\$ Robustness is somewhat a matter of definition. The hall sensor is more reliable under more varied modes of operation, but has more parts to fail than the sensorless method. If you are trying to implement finer control through a hobby radio control brushless motor driver (which is what the term ESC signifies) you will have to work through the wall of the ESC's firwmare which has its control algorithms which are only somewhat adjustable depending on the manufacturer has allowed. They only really have throttle mode and RPM governor mode. No inherent built-in current control. \$\endgroup\$ – DKNguyen Sep 29 '19 at 18:19
  • 1
    \$\begingroup\$ @Aaron You say need a brushless DC motor. You say need consistent [I assume constant] torque. What's your overall application? What are you ultimately trying to accomplish? \$\endgroup\$ – Nick Alexeev Sep 29 '19 at 18:30

An ESC (Electronic Speed Control) is a device that accepts "user" inputs and controls the operation of a BLDCM (Brushless DC Motor). What that amounts to depends on the ESC concerned. It might be as simple as an on off fixed speed controller, a somewhat more complex unit with variable speed control, and/or constant power and/or torque, dynamic braking with energy recovery, require Hall sensors, or allow sensorless operation, .... . There are a vast number of off-the-shelf ESCs available, and a number of open source ESCs that allow you to decide where the boundaries lie between the ESC and the system driving it.

You can probably learn all you wish to know (and more) about where an ESC fits into the overall control scheme from the widely used Open Source ESC project "VESC" by Benjamin Vedder. It has grown / forked / become a team effort over time and you may be able to find what you want in the earlier versions.

January 2016 update VESC page by Benjamin here

E-Motion VESC project - with many many bells and whistles here

Worth a look despite being some years since update.
Blue Robotics Blue-ESC and many other interesting projects here
Has the good and bad feature of using discrete FETs as motor drivers.

A SimonK firmware based ESC firmware

Circuit maker page for
Github Beta-flight ESC - current

$10 DIY ESC intro video here
RC Groups related page here

'Simple Projects' sensorless ESC Sensorless BLDC motor controller using PIC18F4550 microcontroller and here


Paparazzi open source auto pilo ESC page here

Brief but useful 2019 discussion here


| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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