Compass Issue

Since installing Ardupilot Version 4 I have been experiencing compass calibration issues. I though the issue was sorted with the help of @rmackay9 by setting the BRD_BOOT_DELAY to 5000 but after the latest update the issue has returned.
Sometimes when I boot the copter it boots with COMPASS_DEV_ID = 131874 which I believe is the Cube internal Compass. If I try to arm I get a compass calibration error. If I then power cycle the copter it will usually have the COMPASS_DEV_ID = 466441 which i believe is the HERE Compass and the copter arms correctly.

Could I use the compss_typemask to disable all compass drivers except the HERE Compass driver?

David Ardis

Try masking internal compass. Use COMPASS_TYPEMASK.

Tried masking the internal compass and ended up with no compass.
What I have noticed if I power the Cube with the USB all Compass works as expeced but using the Copter battery they are detected some of the time.
I have tried replacing the power brick and removing anything plugged into the telemetry ports and replacing the here module and cable all with no luck.

This appears to be an issue with the boot sequence, the team are looking into it.

A mavlink reset with power left on will ensue a good startup

Glad I read this. I had this happen yesterday on my new build and I thought I was losing my mind.

For information what compass to the numbers next to the ID Refer

Compass

Mission planner has a tool to decode these numbers.

On Mission planner, go to Initial setup> Mandatory setup> HW ID
Post a screen shot here. If you have masked correctly, device ID shouldn’t show up and autopilot doesn’t look for that sensor during boot.

Got the setting and applied the mask. Below is the HID Screen Shots before and after the mask. I think the Compass ID for the Cube Black is LSM303D = 131874 and AK8963 = 263178 the Here GPS is 531465 = LIS3MDL and 466441 = HMC5983. Before Ardupilot Version 4 I was always using 466441 but it dosnt have a mask walue

Before Mask
Carrier 1 (Edison)

After Mask
HID With mask

Mask
Mask

Glad you figured it out!