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. “
http://www.rcgroups.com/forums/showpost.php?p=34196337&postcount=21463