← All tools

Message & Error Explainer

What an ArduPilot message means and what to do about it

Українська

A gyro filter or the noise analyser could not get its memory

WarningIMU: accelerometers, gyros, vibration

What ArduPilot says:

Also explained here: 1 more
  • AP_GyroFFT: disabled, required N bytes

At start-up a feature that filters or analyses the gyro signal asked for memory and did not get it, so it is not running: a harmonic notch filter (“… bytes for notch filter”), or the in-flight FFT (the lines with AP_GyroFFT, DSP engine and window). The aircraft arms and flies, but without that filter: more motor noise reaches the controller than the tune assumes, which can mean hot motors or oscillation.

What to do, most likely first

  1. The notch filters ask for too many individual filters for a small board: many harmonics, one notch per motor, double or triple notches, on every IMU.

    CheckCount the bits in INS_HNTCH_HMNCS and look at INS_HNTCH_OPTS.

    FixKeep only the harmonics your log shows (often the first, or the first two) and drop the double and triple options on a small board. Reboot and check that the message is gone before flying.

  2. Other features use up the memory: Lua scripting above all.

    CheckSCR_ENABLE is 1 and SCR_HEAP_SIZE is large; the free memory shown in the ground station is low.

    FixReduce SCR_HEAP_SIZE or switch off features you do not use, then reboot.

  3. The FFT window is too large for this board.

    CheckThe lines name AP_GyroFFT or the DSP engine, and FFT_WINDOW_SIZE is above its default.

    FixSet FFT_WINDOW_SIZE back to its default and reboot.

Parameters to look at

ParameterWhat it is
INS_HNTCH_ENABLEHarmonic Notch Filter enable
INS_HNTCH_HMNCSHarmonic Notch Filter harmonics
INS_HNTCH_OPTSHarmonic Notch Filter options
FFT_ENABLEEnable
FFT_WINDOW_SIZEFFT window size
SCR_ENABLEEnable Scripting
SCR_HEAP_SIZEScripting Heap Size
The code that sends it

Failed to allocate window for AP_GyroFFT

libraries/AP_GyroFFT/AP_GyroFFT.cpp AP_GyroFFT::init() · Open in ArduPilot Copter-4.7.1

Failed to initialize DSP engine

libraries/AP_GyroFFT/AP_GyroFFT.cpp AP_GyroFFT::init() · Open in ArduPilot Copter-4.7.1

FFT: unable to run self-test, required N bytes

libraries/AP_GyroFFT/AP_GyroFFT.cpp AP_GyroFFT::self_test_bin_frequencies() · Open in ArduPilot Copter-4.7.1

Failed to allocate N bytes for notch filter

libraries/Filter/HarmonicNotchFilter.cpp HarmonicNotchFilter<T>::allocate_filters() · Open in ArduPilot Copter-4.7.1

And 3 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