FFT: self-test failed: wanted x had 25.0

I set up my Notch filters and thought I had got all the settings correct. We have had multiple test flights and everything functioned as expected with not problems. One day we went out and started to encounter a problem.

About the problem:
The flight controller fails to initialize with the following messages being sent to mission planner:
FFT: self-test failed: wanted 93.8 had 25.0
FFT: self-test failed: wanted 85.9 had 25.0
FFT: self-test failed: wanted 62.5 had 25.0
FFT: self-test failed: wanted 54.7 had 25.0
These messages then just repeat on a loop.

This seems to happen after a power cycle after a successful flight. The only way to stop it happening seems to be to remove power and wait a minute or two before powering on again.

The system:
Flight controller: Pixhawk cube orange
Firmware: Arducopter V4.1.4
Frame: Large x8 with 28 inch props.
Gyros: Duel here 3
image
image

Can somebody please let me know how the self-test works so I have a better idea of what to look at? Also if you can see any problems with my configurations please let me know.

Many thanks!

Maybe unrelated, but INS_GYRO_FILTER,40 should be INS_GYRO_FILTER,20 for those props.
A .bin log would be better.

I will try get a .bin file for you tomorrow.

Settings look ok to me, I’m not sure how it would fail in a self-test. It basically tries to run the FFT on a sine wave and checks that it finds the right frequency. Only things I can think of are - memory allocation problem, thread allocation problem or some issues with the gyro calibration. Maybe the gyros are still calibrating while it is running, I’ll double check the code for this.

I don’t know if this could be a problem. I don’t know enough about how there here3 and gyros work. But is it possible that the calibration is failing because it was calibrated when it was not properly up to temperature. I am just looking for something to explain why the problem only seems to happen after a power cycle and then goes away after a certain amount of time.

The stated calibration temperature is 27~28C. So I guess there are three things I am unclear on:

  • Are there here3 temperature stabilized and if so what is the target temperature?
  • Would a difference in temperature have a large effect on the calibration of the gyros?
  • Could a difference in temperature cause the calibration to fail on the here 3?
  • Could a difference in temperature calibrated at cause the self-test to fail?

Obviously a bin log could help answer some of this, I just don’t have access to the platform right now.

Thanks

I don’t think so - the FFT self-test happens on boot along with calibration, so even if it changes the gap wouldn’t be large enough to make a difference. As far as I can tell the gyros are definitely calibrated when this happens, so its something else.

Here is a link to a bin while with the error happening.

https://drive.google.com/file/d/1vz7HBGEO-WvY6-tGCDbGvJl9ZacfeIPi/view?usp=share_link

@xfacta @andyp1per Any more ideas or more information I can find?

Without a way of reproducing this its going to be hard to diagnose

Just so i inderstand more about the self test, does it involve the external here3s? Ie does it somehow send the sine wave to the here3? Is it worth trying to replace the here 3? Or is there more likly a problem with the cube?

Are you able to replicate this with 4.3.0? There have been a lot of FFT improvements since 4.1

I will give it a try and let you know.

Hi,

Today I had the same issue.

This is a quad with 30" propellers, and it has been flying until today, The first start of the day I got: “Prearm: FFT self-test failed…” After some restarts I got “Prearm: Gyros not healthy” and some time FFT self-test failed again.

Recalibrating accels did not change this.

Flight controller is a Quav Pixhawk V6X.
Firmware is ArduCopter 4.3.6

So it started failing without you making any changes? That is strange

Not exactly. After last fly I fix GPSTYPE and GPSTYPE2. I checked arming and was OK. Today I undo these changes after issue, but got same issue. I double check by doing “compare parameter”

I think unrelated. Can you post a log with LOG_DISARMED set?

Here is:

The fact that you are getting gyro not healthy messages is the problem. I don’t think its anything to do with FFT. The 3rd IMU has no data - did you disable this? If not then that’s the problem. I would guess an IMU failure. Do you know which IMU the third one is?

I will dissable it and try again. Thanks!

I has this error today with V4.4.0. It flew okay on the previous flight, and the problem went away after a warm reboot. Matek H743.