Thursday, February 27, 2014

Reflash the ESCs

Multicopters require a tight control loop for all the motors as part of their ability to perform stable flight. A basic requirement for an efficient closed loop PID system is that it has a high enough sample rate and fast response to error input when the knowledge about the system is minimal. Until recently most ESCs were designed for airplane and helicopter applications, where gradual response to input is desirable for saving the gears against abrupt torque variations. In quadcopters, direct driving of the propeller is normally the case (and as such mechanical wear is not much of an issue), and as explained, quick response to throttle input is required for good PID response.

 As ESC behaviour is mostly defined by firmware code running in a microcontroller (in the vast majority of cases a ATMega 8L), replacing the stock firmware with a custom one normally is enough to solve this problem. This is the case for SimonK (, which is one such firmware. Besides eliminating the gradual throttle response, instead of accepting input at the standard 50 Hz, it responds at a maximum frequency of 400 Hz, which is the rate at which flight controllers normally output the PWM control signal. Also, the LiPo protection feature is normally disabled, which in a multicopter could have nasty effects such as causing throttle assymetry, which ultimately leads to a flip and a crash.
As there are some improvements to the last version I have compiled (already from last year), and given that I have to flash a brand new ESC, I will be going through the flashing of all 4 ESCs before installing in the new quadcopter.

No comments: