PID Loop Frequency

In Oscar Liang’s post about setting BLHeli_32 parameters he mentions choosing a Dshot based on the PID Loop frequency.

I did a quick google search to see if I could find this value - but couldn’t seem to find it.

Would someone please refer me to the ArduPilot PID loop frequency?


SCHED_LOOP_RATE. But note there is not such a direct connection in the way there is in betaflight. Some of this can be controlled by SERVO_DSHOT_RATE

Very helpful - thanks Andy -

I’ve built 3 copters now using BLHeli_32. All have used Dshot600 - as I believe that’s the recommended value.

SCHED_LOOP_RATE and SERVO_DSHOT_RATE are both defaults on my builds - 400hz and 1hz (option 0) respectively.

I don’t know how BetaFlight and ArduPilot differ in this regard, but Liang’s article makes me wonder about the 1hz SERVO_DSHOT_RATE and using Dshot600.

I’ve been using 4-in-1 ESC’s with BLHeli_32 and Dshot600 in hopes that I can gain some performance improvements over PWM signaling. Other than the weight savings and wiring simplicity afforded by a 4-in-1 ESC, I haven’t noticed anything significant in the way of performance improvements. (the motors do spin-up at a much lower rpm - and stop so fast on disarm that sometimes my spin-on prop adaptors come unscrewed)

I’d be nice to know more about this - and to have some confidence that I’m using the technology effectively.

My observations from large craft to small using Dshot protocol is there is little to no noticeable performance improvement on larger craft and even on small ones it’s subtle. The FPV Pro’s (I’m not one) will say they can definitely see an improvement even between Dshot rates and other settings like variable PWM frequency. I’m sure we have members here that do recognize an improvement and I would simply accept that as it’s more likely it’s me that is missing the finer points. The other aspects of the protocol though are clearly superior not the least of which is a good reference to drive the Dynamic notch filter!


I just hate to have tools in my toolbox that I’m not using - or don’t know how to use. All part of the learning process. If it works better - that’s a win. If it doesn’t - but I learned something - that’s a win too.