← All tools

Message & Error Explainer

What an ArduPilot message means and what to do about it

Українська

The in-flight noise analyser (FFT) is not ready

Stops itIMU: accelerometers, gyros, vibration

What ArduPilot says:

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

  1. 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.

  2. FFT_MAXHZ is too high for the rate the gyro is sampled at.

    Check“FFT config MAXHZ” gives both numbers: yours first, the limit second.

    FixSet FFT_MAXHZ at or below the second number and reboot.

  3. 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_MAXHZ and FFT_SAMPLE_MODE back 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 set FFT_ENABLE to 0.

These lines are tagged as INS failures, but they belong to the FFT group of arming checks.

Parameters to look at

ParameterWhat it is
FFT_ENABLEEnable
FFT_MAXHZMaximum Frequency
FFT_MINHZMinimum Frequency
FFT_WINDOW_SIZEFFT window size
FFT_SAMPLE_MODESample Mode
INS_GYRO_RATEGyro rate for IMUs with Fast Sampling enabled
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.

Written here for Copter 4.6. In the tool you choose your vehicle and version, see your own parameter values beside the ones named here, and drop a flight log to have every message in it explained.

Open it in the Message & Error Explainer