For a while, the BetaFlight multirotor firmware supported 32kHz gyroscope polling, but now that feature has been dropped in favor of 8kHz being the highest polling rate. Does anyone know why this was removed?
1 Answer
In order to access the 32kHz gyro sampling mode, the gyroscopes in question (e.g. ICM 20689) would be switched to an experimental mode where there is higher gyro data jitter, and that sampling at the lower 8kHz frequency made use of lower overall latency lowpass filtering built into the gyro. Often to get usable gyro data from the 32kHz sampling rate, more filtering was required, and the overall phase delay response meant that the FC would not be able to start compensating for a change in craft orientation any faster.
The other part is that in terms of pure filtering performance, the net gain achievable assuming identical gyro signal-to-noise ratio performance is on the order of tens of microseconds. The bigger potential improvement would be to use the higher sampling rate to enable enhanced/fast Kalman filtering where the PID calculations can take into account more data, however, the input noise in that experimental 32kHz mode means the net improvement is minor for the computational cost involved, and that better performance is achievable at the lower sampling rate the IMU units available right now (that meet the cost and form factor requirements to install onto cheap FPV UAS systems)
Practically, lower overall phase delay response with RPM notch filtering and moving lowpass filters well beyond the prop wash and flight input frequency space, which results in much better overall performance, and often reduced motor heat in flight across a wide range of flight envelopes because less amplification of gyro noise is occurring, particularly through the D term of a PID controller which amplifies higher frequency oscillations.
-
2$\begingroup$ I have had quite a few discussions about this with various flight controller software developers. There is a core issue at the heart of this question that is viewed differently by the two main flight control software teams. The question is whether changing the mode of the ICM gyros fundamentally changes the accuracy of the underlying readings. One side believes that the accuracy of the gyro itself is impacted by changing the settings, while the other believes that enabling the mode simply gives you access to the same underlying data that is being used internally when the mode is not enabled. $\endgroup$ Commented Apr 15, 2020 at 17:30
-
2$\begingroup$ Unfortunately we don't have low enough level access to the hardware to be able to definitively answer that question one way or the other, but evidence collected via flight logs seems to indicate that there is a difference in the accuracy of the data collected when 32khz mode is enabled. Still it is possible that the difference lies purely in the filtering methodology used post gyro in the software vs the methodology used by the internal hardware filters in the gyro when 32khz mode is off. At this point it's impossible to be certain. The data collected so far seems to lean towards the former. $\endgroup$ Commented Apr 15, 2020 at 17:34