Originally Posted by kapteinkuk
Yes, that is correct. I tested with different throttle increases, see screenshots.
Starting at 1.1 to 1.2 mS, then 1.1 to 1.3 mS and so on.
This is probably the biggest problem with the "motor smoothing" in the ESC's firmware. It would be nicer if there was a graduated stepping. I.e. you probably want to restrict step size when going from 10 to 100% throttle so that 4-5 relatively small steps are neededm, but when you go from 50 to 60% (which is like what you want to do when close to hovering a multikopter), you might want to have just two steps to have a much quicker correction.
Would be interesting to see how the TWI/I2C modified ESCs and Holgers behave, whether they also show the same number of steps whether the difference between current and target throttle is large or small.
If you know that the step proportion and thus the number of steps is fixed, then you can of course correct if you have a higher update frequency than the step rate. I.e. if you want to go from 50 to 60% throttle and you know the step size is 50%, sending a 70% throttle and then going back to 60% will get you to the 60% in a single step. What is interesting is that the motorsmoothing routine for the MK does do this for the downward steps, but works with fixed 50% steps upward. If you add that to e.g. 50% steps up and down in the ESC, of course your time to final value upward on the MK is going to be a bit longer than measured when throttling up, while the time to final value when throttling down will be less than predicted from your tests. My modified motor smoothing allows you to vary the motorsmoothing up and down by a different fixed percentage value for up or down. It might howevere be worth testing whether this shouldn't be changed to start off with e.g. a single current +/- 1.5 * (target - current) throttle input up and down, followed by the actual target input on the next iteration. That would pre-empt the slower ESC response for smaller throttle value changes, while for large changes max and min throttle would limit the initial step at some point.
Of course in real life the calculated target throttle may be incorrect due to vibration and other external disturbances, but if your update rate is much higher than needed, this will in a way be filtered out by the motor/ESC smoothing routines and the rapidity with which the next (maybe more correct) value gets calculated.