Compass inconsistent

#1

Hello,

I am using a Pixhawk Cube and I have some problems to arm my vehicule.
The error message is “preflight failed compass inconsistent” or “accel inconsistent - check cal” or " Primary compass not found".
I redo the calibration several time with only the USB link and the GPS Here 2 Combo connected. There is no magnetic interference when I do calibration because my battery is far from the pixhawk
Sometimes it woks for a while but the problem reappears.

How can I solve this problem ?

Is there a way to disable compass from preflight check ?

I tried to disable the parameter CAL_MAG1_EN (and other number) but it did not change anything.

Thank you

1 Like
#2

I’m having the same problem here regarding the inconsistency

1 Like
#3

Good day, just check which compass is external and internal, you can check it with mag listener using the nsh console

#4

When I do the command “ls /obj”. I have sensor_mag0; sensor_mag1 and sensor_mag2.

I don’t see any compass which is external (see photo attached) . But I can see only one instance (0) for the three magnetometers. I don’t know how to listen another topic as the command “listener sensor_mag2” did not match any known topics

#5

Just try install the firmware 1.9.0

#6

I use the GPS Here 2 Combo

#7

I upload the firmware 1.9.1 the stable release and the problem still persist.

At the end, I want to upload a custom firmware but this one does not work also…

#8

Just try install ardupilot… maybe is more compatible.
I will do a test with my cube and gps here and i will let you know

1 Like
#9

Calibration on ardupilot is not really easy, I tried my best but still the same error :frowning:

When I look to the artificial horizontal it is completely tilted.

The error log is Critical : Prefligth Fail Compass 1 uncalibrated and Critical : Preflight Fail : Compzss Sensors inconsistent

#10

just send me pls a pic about the way you have installed your fc and gps module.

#11

To calibrate I have only the pixhawk link to my PC with a micro USB-USB link. I tried to calibrate with QGC on linux, MAC or Windows.

I also tried to calibrate with the GPS plug on GPS 1 pin. I use scotch to fix it during calibration.

In my final setup I have a modem RFD 868+, a DC battery 36 V, some castle becs which are near the Pixhawk

#12

When I upload the firmware it said found device PX4 FMU V2. I have an error before I can upload a firmware (I download the last version of QGC)

Should not be px4 fmu v3 ? for a pixhawk Cube ?
Otherwise I used the command make px4_fmu-v3_default upload.

I also tried on another pixhawk with another GPS linked and same errors. The two pixhawks work well before yesterday.errorflash

#13

pixhawk cube use px4 fmu v3, you can install it using the option in QGC “custom firmware”, you can find the file in px4 firmware releases.
Just in case you still have the same error, you have corrupted the bootloader with the previous installation, and for recover it you need a swd/jtag programmer

#14

For calibrate you fc and mags, better install the fc on a frame and the gps on a stand.

#15

Yes, you need to mount your external compass on the aircraft and ensure it is as far away as possible form all DC power lines. You also need to set your autopilot and external magnetometer orientation during the calibration. If they aren’t oriented the same they will show different measurements of the 3D magnetic field hence the “mags inconsistent”.

The “MAGS INCONSISTENT” warning means that the magnetic field measured by all the magnetometers (external and internal) are too far off from each other. You can change the threshold for this by adjusting the COM_ARM_MAG parameter.

Also, when you calibrate, make sure you are far away from any ferrous objects (engine blocks, fences, etc) and DC power lines.

#16

I would try the following command:

icm20948 info

And see if the driver for the external IMU is running.

icm20948 -X -M start

Will start the driver (external, magnetometer only) if it is not running. If it doesn’t find the device there may be a wiring issue.

This command gets run at startup here:

If you have access to the serial output you should see this command getting run at boot up.