The in-flight noise analyser (FFT) is not ready
What ArduPilot says:
- FFT: resolution is N.NHz, increase length
- FFT config MAXHZ NHz > NHz
- FFT calibrating noise
- FFT: self-test failed: wanted N.N, had N.N
- FFT self-test failed, max error N.NHz
- FFT still analyzing
Also explained here: 2 more
- FFT: self-test failed, failed to find frequency N.N
- FFT: calibrated N.NKHz/N.NHz/N.NHz
With FFT_ENABLE 1 the flight controller analyses the gyro signal in flight to find the frequency of the motors' noise for the notch filter. Before the first arming it measures the noise floor and tests itself on known frequencies; arming waits for that. “FFT calibrating noise” and “FFT still analyzing” are the wait. “FFT config MAXHZ” means FFT_MAXHZ is above half the rate the FFT samples at. “self-test failed” means it missed a test frequency by too much. “FFT: calibrated” is success: sample rate, frequency resolution and update rate.
What to do, most likely first
The analyser is still measuring its noise floor after power-on.
FixKeep the aircraft still for a few seconds and try again; “FFT: calibrated” tells you it is done.
FFT_MAXHZis too high for the rate the gyro is sampled at.Check“FFT config MAXHZ” gives both numbers: yours first, the limit second.
FixSet
FFT_MAXHZat or below the second number and reboot.The self-test fails: the FFT settings do not suit this board.
Check“FFT: resolution is … increase length” may come first: with a resolution coarser than 50 Hz the window is too short.
FixSet
FFT_WINDOW_SIZE,FFT_MINHZ,FFT_MAXHZandFFT_SAMPLE_MODEback to their defaults and reboot. If the test still fails, this board cannot run the FFT: drive the notch filter from throttle or ESC RPM and setFFT_ENABLEto 0.
These lines are tagged as INS failures, but they belong to the FFT group of arming checks.
Parameters to look at
| Parameter | What it is |
|---|---|
FFT_ENABLE | Enable |
FFT_MAXHZ | Maximum Frequency |
FFT_MINHZ | Minimum Frequency |
FFT_WINDOW_SIZE | FFT window size |
FFT_SAMPLE_MODE | Sample Mode |
INS_GYRO_RATE | Gyro rate for IMUs with Fast Sampling enabled |
Where to do it:Setup & Tuning Guide
The code that sends it
FFT: resolution is N.NHz, increase length
libraries/AP_GyroFFT/AP_GyroFFT.cpp AP_GyroFFT::pre_arm_check() · Open in ArduPilot Copter-4.7.1
FFT config MAXHZ NHz > NHz
libraries/AP_GyroFFT/AP_GyroFFT.cpp AP_GyroFFT::pre_arm_check() · Open in ArduPilot Copter-4.7.1
FFT calibrating noise
libraries/AP_GyroFFT/AP_GyroFFT.cpp AP_GyroFFT::pre_arm_check() · Open in ArduPilot Copter-4.7.1
FFT: self-test failed: wanted N.N, had N.N
libraries/AP_GyroFFT/AP_GyroFFT.cpp AP_GyroFFT::self_test() · Open in ArduPilot Copter-4.7.1
And 4 more messages, sent from the same places.