Redesigning multirotor ESC's


It's been quiet on my front, but that was because I was redesigning ESC's (for multirotors and AP's).

Most of the ESC's for multirotor use the SimonK firmware on a relatively simple Atmel microcontroller. There's a single control wire running from the autopilot to the ESC, which is a signal proportionally dictates how long the mosfets are left open and as such command the torque on the motors.

And that's pretty much all there is to an ESC... No signal/wire coming back to tell the autopilot how that particular motor is doing or what the rpm or current is, it's just a "command wire". That sounds a bit antiquated for 2014.

So this picture is of an ESC dev board I first started on, here using the Allegro A4960 chip for simplicity. Shipping to Brazil takes time, so before it arrived the design already morphed into something new, so that's why the board looks unused. Both the MCU and driver chip changed on the newest development board version and I introduced testing points for oscilloscope readings; this project is about to get serious!

What are the features that I think an ESC for a modern multirotor should have?

1. Send the rpm back to the AP; for logging. I see people posting logs to request help figuring out what went wrong, but the log only states the "pwm out" for each motor, which is in no way a guarantee that the motor actually did that. So we need some feedback that states what the motor was actually doing, not what it was commanded to do.
2. Overload detection; the ESC's know what the current is and warn for overload situations.
3. Current & velocity control; neither current nor rpm is actively controlled as a proportional measure to the input PWM signal. So the control loop for the AP spans the IMU, motors, ESC and props, which is a large loop with lots of variables. This ESC will run one or two 'inner loops' and become responsible for achieving either torque or lift and run at a much higher frequency than 500Hz. What you get is that some variables no longer impact the control loop of the AP directly, which should make the vehicle more stable and likely more responsive.
4. Field Oriented Control; The flyback diodes next to mosfets typically burn energy in trapezoidal drive implementations, which  increases the heat on those mosfets. This happens because the mosfets close suddenly. The motor coil wants to resist that change, so you have a current that has nowhere to go except through that diode. In sinusoidal control, there's always one mosfet open for any coil, so the current always has somewhere to go, which means the flyback diodes won't get used, so you don't lose the heat.
5. FOC; better efficiency, because the current is always perpendicular to the magnetic field. This may come at the cost of max. torque (related to motor inductance and then only about 5%).
6. FOC; lower torque ripple (1/2-1/3) vs. trapezoidal drive, so hopefully less vibrations, less whistling.
7. Send current readings back to the AP; another opportunity for precisely logging what goes on near the motors. This could be helpful to detect ESC/motor/prop health (bad bearings, prop drag, etc)
8. Configuration; the AP can reconfigure ESC's prior to flight or when in maintenance to tune it for a specific motor.
9. Motor monitoring; if the motor stopped, shorted or the mosfets misbehaved, the ESC can shut down immediately and advise the AP. The AP can then take additional action.
10. Opportunities for automated ESC tuning specific to the motor/prop in use.

The way I see this ESC make a difference is when abnormal situations occur. The current AP's cannot be informed of failure, so it would simply send a signal to "run faster", which, guaranteed, has a disastrous effect to mosfet or motor and could therefore worsen the situation. Soon as the AP is informed something is wrong, it could sound an alarm, activate a chute, disable the counter motor... you suddenly have options!

To spur innovation in this area, I'm considering to setup a kickstarter and actually manufacture around 1.000 or so at a professional PCB house. Aren't these features indispensable for an ESC made in 2014? Would you back it?

E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones


  • Moderator
    Hi Gerard,

    I would definitely back this development, it's just what we need. Let us know when it starts!
  • Hi Gerard, this is a brilliant effort. I'll back you in any  medium you chose to raise funds.

    IMHO the strategic thinkers out there looking at the future of private autonomous vehicles and the development path ahead have this development on their scopes. You just accelerated that path.

    Well done, mate. I see this as being an option in the APM code by mid next year. It gives a great level of asset and investment protection. I would like to see this implemented. It would open so many doors.


  • Hall sensors are there for low speed and startup, because with sensorless control you have to spin up the motor "blind" by aligning it to a known state and then giving it a rotating vector and hoping that the start - up torque is small enough not to stall your motor - as is the case with propellers. After that, the motor spins with the same speed as the field you are generating so RPM information, when the motor is spinning, is as reliable as hall sensors. Where you can have a problem is when you have fast transients - either fast load change or fast speed change. Then your motor can go out of sync with rotating field and you lose control and this is where sensors are better, because you allways have correct information.

    If you want to go with sensors, I would suggest using an IC like this one: Mag sensor

    It gives you absolute rotor position and makes it a lot easier to do FOC.

    Regarding positioning of ESCs, has anyone ever tought of putting ESC upright in an enclosure directly under the motor and so make it a part of a landing gear of sorts? If you have for example 50x50x10 mm ESC, then you could 3D print 60x60x20 mm enclosure, mount it under the motor and have it out of the propeller's way.

  • I guess we should just be grateful we were born to the age that brought us the integrated circuit,

    rather than than than the steam roller :-|)

    As I have always flown octos, I sure appreciate leaving out the BEC, never used 'em, and had redundant

    and dedicated UBEC arrays for the flight and AV electronics.

    I will also ditto the request for small size factor, as I personally have my ESCs up close

    by the motors rather than on the central hub, and the end of the arms under the airstream

    is a place you would like to keep things as small as can be.

    I think you are just about ready for the Kickstarter!

  • Motors use Hall sensors to provide this feedback, which is a bit more reliable than measuring the back-emf. The reasons that not many hobby motors have them is cost reduction and at a reasonable amount of rotation, you get plenty of back-emf to do the control, although it's noisy. As others have indicated, there are already ESC's that do closed loop current (torque) or rpm (lift) control and active free-wheeling.

    This ESC indeed doesn't have a BEC. It takes board space to put one on and for multirotors, you'd have 4 BEC's but use one, that's poor use of money and resources. I don't trust multirotor ESC's that do offer a bit of power, because on 4S, when you increase the current, the voltage regulators easily get overloaded and need to burn too much power. Open one up some time and see how it's done, many use simple linear voltage regulators. Also, I don't think it's a good idea to source power from a component that has high-frequency power switching circuits.

    So sourcing power from a specialized circuit is my preference, as it also decreases cost per ESC and simplifies the design a bit.

    If you go back a couple of posts you see a firm redesigning the transmitter, another example of opportunities where improvements can be made.When you get into this hobby/profession, we look at the devices and components and learn that that's how things are done. We should think out-of-the-box more and question the necessity. Many devices and components go straight back to the era where we only had a receiver on board and a bunch of servos. All that changed, we use onboard microcontrollers that can do stuff for us and probably offer more opportunities for customization than a radio can.

    So why still build sophisticated radios? Shouldn't we reduce the number of switches? Shouldn't we reduce the complicated configuration menu's on those things?  Can we integrate telemetry and control on the same band and get some meaningful feedback on the display?  Can we reduce the cost by building a very simple radio, but has buttons on it that actually mean something to an end user, which can be mapped to common functions you'd see on an AP?  I.e... instead of configuring a switch to output 1100 / 1600 / 1900 specifically, you'd put a switch there that already does that and map that channel to the function on the AP.

  • You already know electrical speed at which motor is rotating - it is essential for any kind of motor control. And if you have number of pole pairs, you can get actual RPM by dividing electrical RPM with number of pole pairs.

  • sorry, couldn't resist adding the neat optical illusion thing :-)

  • 3701859414?profile=original3701859304?profile=original

  • Hi Gerard,

    Seems like this thread is providing you with much encouragement & points for consideration!

    Coming back to the topic after several days, these sort of "obvious" extras crossed my


    A. As you are striving for informational feedback from the ESC back to the AP

        (so as to actually monitor what the ESC is telling the motor to do) - why not

        further the reach and allow for actual motor RPM monitoring from the motor


        I can think of two basic methods involving monitoring the actual spin of the motor bell:

         -  ElectroMagnetically  (like the little light on the Kirby vacuum cleaner)

         - Optically (as used on old high end Vinyl record turntables)

         I personally think the optical path is easier to achieve, using black-&-white striped tape taped as a

         closed ring around the motor bell, which will be "read" by a small optical sensor/resistor.

         Information regarding the actual motor bell diameter will have to be input somewhere in the

         processing environment, including initial ESC/Optical reader calibration, but now you will

         have a complete power-drive monitoring and feedback setup.

    B.  The second extra is kind of dumb, but, I believe these ESC do not include a BEC circuit,

          and shouldn't either.

  • I hope you realize how revolutionary your design concept is. We are still in the early days of developing these aircraft, and your contribution will do much to move things forward.

    Could you estimate what the final physical dimensions of the board might be? Thanks, and congratulations. 

This reply was deleted.