Compass calibration do not pass or is way off - external and internal 4.07

New Orange Cube and Here 2 seem not to calibrate at all. External compass has failed various times in two different locations. Internal calibrates easily and after just a few rounds but is way off. It varies from about 160 degrees to 90 degrees from the real direction. I tried to set the heading manually with large vehicle calibration but the heading does not stay. It varies everything from 180 degrees to 0 degrees. Sometimes heading jumps around for a while and returns close to real.
Calibration takes a very long time with an external compass and internal is only in 10 secs or so. I have tried Default and relaxed. Orientation is the default.
The location is Southern Finland.
Images of the copter are attached. It is a robust parachute tester.

Update. Now I have tried the following with the external Here 2 compass:

  • 4.07 and compass_offs_:max 3000. No success.
  • 4.02. No success
  • 4.10 Beta. No success. I did notice that the “Unhappy” sound is missing. Compass calibration just starts over without a sound.

Update 2:

  • 4.10 Beta and internal compass did not calibrate either with 5 attempts. Unhappy - sound is missing and calibration just starts over.

Update 3:

  • 4.07 did not calibrate internal compass but it did give Unhappy - sound.

I try another location later and also change all M3 steel screws away in 10 cm radius to stainless. The external compass is already far from the screws but Cube is closer. I change them just in case to see if Cube calibration works better then.

Update 4:

  • 4.10 Beta and all steel screws from a 10 cm radius are now stainless. No success and no difference.

  • I tried external and internal compass separately.

  • Internal did calibrate successfully once but it was way off the target. It was something over 90 degrees from the real direction.

  • At last I tried large airframe calibration and gave real direction manually, After reboot, the direction was more than 90 degrees out from the real direction. On the image below drone thinks it is pointing 359, direct north. The compass on the ground shows reality. Just about 90+ degrees in this too. The orientation of both compasses is set 0°, the default.

Now I’m out of options with this particular autopilot. Any ideas, someone?

This probably won’t help, but try a different battery or try to move the battery as far away as possible. I only say this because I have one battery that always causes me compass issues on one of my quads, but it’s fine with any other battery I try.

Failing that, have you been able to calibrate everything out of the airframe? Painless360 style, where he tapes the compass to the top of the cube and runs the calibration sequence? Won’t help with the airframe but if it calibrates it might give you some clues as to where the problem is.

Thanks Allister!
The battery is worth trying, I’ll do that. I’m planning next to try also another older frame with another autopilot to rule out location issues. Also trying with FW it already has inside and did calibrate and also with 4.10 Beta to rule out FW issues.

Update 5:

I tried another frame and another autopilot at the same location with 4.03. The calibration went through for two compasses on the first try.

I also tried different battery (same type, however) detached from the frame as long as the cable allows. Then gave direction with a large airframe method. The result was the same. The compass was off from the direction and roamed slowly.

I have a very strong feeling that this autopilot of software or settings related to it is somehow faulty. External and internal compasses are both the same ICM-20948 type and both fail. I also noticed that telemetry parameter import via RFD868+ varies a lot. Sometimes it takes normal time and sometimes “forever”, or gives error. Sometimes the progress box does not update and it just suddenly finishes. With that another vendor autopilot and telemetry progress box run as should.

Next step I wait for another autopilot arrival and swap them.

This was another build:

1 Like

Update 5:
I removed Cube with all accessories and installed old Pixhawk that did work fine earlier, but suffered almost freefall from altitude of 100m.
It worked fine still and the external compass did calibrate at first try. Loiter was solid.

So it is quite sure this is HW issue. Or is there any settings everyone should know that may do issues Cube is experiencing? In summary, It works and communicates but with poor performance.


It sounds like your testing and experience is extensive. I’ve only set up a few Cube Orange controllers but I don’t recall anything special about their compass calibration. I can’t suggest anything beyond what you’ve tried. Were you able to get the Cube Orange and Here2 to calibrate on their own away from the airframe?

It was Ardupilot parachute test where crash occurred. Now idea was to try again with 4.1beta and mainstream highend hardware. 4.1 should have a fix for the situation we experienced and that lead to too long freefall with no detection for eject and crash.

But apparently we are not doing it then.

I do isolated plywood installation some day later and confirm hw issues.

This was our last test where the crash occurred:

Wow, I’ve looked at your parachutes in the past. Very nice work.

I think I have a Cube Orange and Here2 in my workshop not installed in anything yet. I will try to set them up for a test to see if I notice anything strange in the compass calibration. May take a day or two but I’ll let you know if I notice anything.

Just checking:
Do you go outside and wait for a good 3D fix before calibrating?
Have you tried disabling the internal compass then calibrating?

Shawn, Yes, it has had the 3D fix. Hdop below 1 and usually 0.6 - 0.8. Onse screenshot up there shows 18 sats hdop 0.6.
I have tried dozens of times with different combinations: internal only, external only, and both same time.

Allister, thank you! I look forward to your tests. Don’t hurry with it and take your time. I got notice today that the new Pixhawk 4 is on the way.

This Cube-based test will delay a lot anyhow.

Are all the device IDs showing up? Tried BRD_BOOT_DELAY,5000 ?

Shawn, I don’t know about IDs. Need to learn how to check that. Boot delay is the same, haven’t tried.

I put those gears to dummy wooden “copter” to rule all external things out and try then.

In MissionPlanner there’s the HW ID section under Setup, it should list all the compasses and everything
except serial devices - most GPS units are still on the old serial ports.
If you think something might be missing, try the boot delay and see if it appears after a power cycle.