Compass calibration reading goes from 0 to 100 and then again to 0

Hi, I am trying to congifure a compass to my drone. The drone config is as following:

ArduCopter version :V4.1.3

**GPS/Compass - UBLOX M8N + HMC5883 module**
FC: Omnibus F4 V2 pro
Motors - A2212 1000KV
ECS - Simonk 30A, PWM protocol
Props: 1045
Battery: Orange | 1500mah, 4 cell, 14.8V 100C

Config Params:

COMPASS_OFF_MAX=500
COMPASS_OFS_X= -202.2989
COMPASS_OFS_Y= -135.7903
COMPASS_OFS_Z= +350.239
AHRS_ORIENTATION=0
COMPASS_EXTERNAL=1
COMPASS_DEV_ID=466433
COMPASS_AUTO_ROT=2
COMPASS_AUTODEC=1
COMPASS_LEARN=0
COMPASS_CAL_FIT=16(default)
COMPASS_DIA_X=1
COMPASS_DIA_Y=1
COMPASS_DIA_Z=1

The GPS+compass are mounted on a mast. There are 2 issues I am experiencing:

  1. While configuring the compass, the Mag1 reading goes from id:0 0% to 100% and then back to 0%. It starts to reach 100 again. This loop continues. video-clip
    What does this mean? is it configured? when do i click the Accept button?

  2. If by chance the compass is configured, which i identify when there is NO “prearm: compass not configured error”, I am getting one or both of the following randomly:
    2.1. Prearm: Error compass variance
    2.2. Prearm: Check mag field : (958 max, 875, min185) (This needs recalibration as per link but i get issue #1 then)

Thanks

What version of Arducopter are you running where you have this parameter?
COMPASS_OFF_MAX=500

This is default:
COMPASS_OFFS_MAX=1800

I had manually updated it to 500 in an attempt to find a sol. I have now updated it to 1800 and tried but with the same result.

ArduCopter version: 4.1.2

Thanks

restarting means it cannot workout the correct orientation automatically. You can help it by working out and setting COMPASS_ORIENT

I have experienced this same issue both on Copter and Rover. It just happened recently with Copter using one of the mRobotics SAM GPS/compass modules with the full size ground plane. I swapped out the GPS/compass module for another of the same model, and it calibrated immediately. Going back to the one that refused to complete, I changed tolerance to relaxed, but it continued to cycle through indefinitely. I sent the module back to mRobotics, and they claim it is fine when they test it. I’m running the latest stable version of copter (4.1.6 I think - latest when I was setting up the copter). The module that worked was mounted in the same copter with all the same hardware and wiring.

When we experienced this on Rover, we had a backdoor into the PixRacer through a secondary controller (Odroid), and using MavProxy we were able to initiate compass cal, and on that hardware setup it worked. I have no idea why sending compass cal commands through Mission Planner and MaxProxy would be different. Those were much older versions of FW.