FC & ESC update speeds

Multishot shortest pulse 5 microseconds
Multishot longest pulse 25 microseconds (40kHz)Designed to allow 32kHz update frequency, so 40-32 = 7kHz “sleep” time between pulses.
Oneshot42 shortest pulse 42 microseconds
Oneshot42 longest pulse 83 (?) microseconds (=250/3?)
Oneshot125 shortest pulse 125 microseconds
Oneshot125 longest pulse  4kHz 250 microseconds
Betaflight 2.5 looptime on SPI targets 8kHz 125 microseconds
Betaflight 2.5 looptime on F1 boards 4kHz 250 microseconds

On betaflight the frequencies are defined by two denom-values:

  • gyro_sync_denom
  • pid_process_denom

gyro read interval in uS = 125 * gyro_sync_denom

motor update interval in uS = gyro read interval in uS * pid_process_denom

For example Naze32 is set to looptime 250us. The betaflight sets both denom-values to 2, therefore:

  • gyro is read every 250 us (125*gyro_sync_denom) -> on every loop, at 4kHz
  • PID is ran and motor update every 500us (gyro read interval in uS * pid_process_denom) -> at 2kHz (oneshot125 can handle this easily!)

“even at 8 kHz sampling time which is only possible on boards running spi connectivity to the gyro, your PID loops and thus motor update will only be running 4khz (actually just short) (in fact may even be 2666hz, don’t recall, as Boris has pointed out, it doesn’t seem to make much difference)
Oneshot125 handles this fine.
There is no driver for using oneshot42 or multishot (other than star wars startup tones)”

See: http://www.rcgroups.com/forums/showpost.php?p=34196204&postcount=21460

“From higher sampling the filter delays are being removed. You get less delay and cleaner signal in your pid loop.
You essentially dont need something faster than oneshot125 if you dont care about running @4khz motor update speeds. “