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?

Views: 13107

Comment by Brian on October 21, 2014 at 8:59am

Have you estimated what these ESCs might cost in production?  I think most of others that have tried this idea (and there have been many) have decided that the cost difference between the commodity ESCs and what they could produce would be more than most hobbyists would be willing to spend.

On the other hand, I would love to see a new standard for ESCs that used a more modern interface.

Comment by Dan Murray on October 21, 2014 at 9:03am

Brian, you have a good point, however keep in mind the commercial market is only going to grow. These may not end up being well suited to hobbyists (though it would be nice) - but there will still be a market for them.

Comment by Eivind Bø on October 21, 2014 at 9:15am
This was about time :) I will back it

Comment by Dwgsparky on October 21, 2014 at 9:22am

Hi Gerard

Great forward thinking idea. not only for security but for tuning and operation as well. not for everyone on a day by day basis but for great for a developer to improve his machine with results not guesses. 

Put my name down. I'm all for more efficiency and information. 

Comment by chrisa on October 21, 2014 at 10:12am

This is a great idea and get ready for a huge software group this can be modified in unlimited ways if designed correctly would use this as a main board for some small 1or2-motor applications.

Comment by Euan Ramsay on October 21, 2014 at 10:23am

Stunning stuff - take my money!

Comment by Yannick on October 21, 2014 at 10:43am

Very nice - but sorry to say, nothing new...

The autoquad project does closed loop control with CAN-bus and ESC Datalogging and thrust control for some time now.

Take a look at maybe you can use the ESC32 for first testing of your ideas. Software is OpenSource, hardware is closed.


- STM32F103 72MHz 32bit ARM
– All N-FET design with gate drivers
– 2S through 5S battery voltage
– Option to power logic side via UART or PWM IN +5v
– CAN transceiver hardware support onboard
– Firmware written completely in C
– Cortex SWD connector pads for real-time debugging
– Communications ports: PWM IN / UART / I2C / CAN Bus
– Communications protocols: PWM IN / CLI / binary / 1-wire / CAN / I2C**
– 4KHz to 64KHz PWM out
– Current sensing / limiting with real shunt resistor
– Virtual current limiter
– Regenerative braking (experimental)
– Closed loop control modes
- Lot of available RAM / FLASH for experimentation and development

Price is 39€ (~ 50$]

This would be definitely a big step for Arducopter!!!

Comment by John Dennings on October 21, 2014 at 10:56am


Can you expand a bit on "4. Field Oriented Control" and "flyback diodes next to mosfets"?

Seems you are alluding to active freewheeling, avoiding diode energy waste by directing current back to motors with one mostfet on at all times?  Not sure I am reading you completely right ...

Comment by Gerard Toonstra on October 21, 2014 at 11:24am

Yannick: ESC32 doesn't implement FOC, so something is new...

John: Field Oriented Control is basically sinusoidal drive, where you have 3 mosfets in operation at any given time (so all phases are "driven"), of course never the high&low mosfet for any phase. When a low or high mosfet is about to close, the other is already opening. That's why the flyback diodes shouldn't be necessary for normal operation, because the current always has a path to go. For trapezoidal drive this can be different, because they switch a mosfet pair at any given time and use the third non-operated coil to measure back emf, so when they switch and allow for some dead time, they may have a tiny period where there's a voltage spike, which is where the diode breaks down to release the current.

Comment by Euan Ramsay on October 21, 2014 at 11:30am

A thought occurs...

If you can drive all three phases, could you use this to drive a "double" motor? Ie one set of poles above another (slightly offset to each other), and two rings of magnets? By staggering, you can introduce a situation where the bell of the motor is alway under torque (no deadspots between magnets)

Of course, I'm no motor expert, but I do like to daydream :-)


You need to be a member of DIY Drones to add comments!

Join DIY Drones

© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service