Bad External Compass Calibration

Setup:

  • Quadcopter
  • Pixhawk 2.1 Cube running ArduPilot 3.6.11
  • HERE+ V2 RTK Rover (External GPS) running 1.40 firmware - I am currently only using the rover module
  • mRo SiK Telemetry Radio V2 915Mhz
  • QGroundControl 3.5.5 as Ground Station

Problem:
I am trying to calibrate the sensors for an initial flight on a new drone I just built. When I complete the compass calibration, the new version of QGroundControl shows the quality of each compass’ calibration in a graphic. This graphic (see below) displays a low quality (red/yellow) calibration for the external compass and a high quality (green) calibration for the internal compasses. I have tried it several times with the same results. I do the calibration outside with the battery connected. The pixhawk is communicating to my laptop through telemetry. I’ve tried USB with the same results. The fact that the internal compasses have a high calibration makes me think that the environment and methods are acceptable. I don’t want the pixhawk to ignore the external compass in flight because it thinks the data is less accurate.

I have built drones in the past with similar setups. I would frequently get the error “PREFLIGHT FAIL: COMPASS SENSORS INCONSISTENT - CHECK CALIBRATION”. It would still let me fly, but it would throw that error when initializing. I was never able to figure out the problem, but I saw other people had similar issues. I suspect I am having the same issue now.

Questions:

  • Has anyone had this issue?
  • What does QGroundControl consider a “High Quality” calibration?
  • Why would the external compass have a significantly worse calibration than the internal compasses?
  • Does anyone have suggestions for how to get a high quality calibration on the external compass, specifically the HERE+ Rover?