EKF Compass variance with NEO-M8N GPS and HMC5983 Compass (aka Mushroom Type)

Hi All,

Problem: I have been trying to use the Mushroom type GPS+Compass on PixHawk (v1) but I keep getting “EKF Compass Variance”.

Description: I bought 10 of these modules 2 months ago since it worked fine from previous batch. The main caveat was the modules came with PixHawk 2/ Dropix connector so I looked over board pinout and soldered wire extensions and crimped with DF 13 connector with 6 pin (4 wires for GPS) and 4 pin (2 wires for Compass I2C). I am using latest ArduCopter 3.4.6 firmware. The onboard mag calibration works successfully and the error starts showing as soon you we try to yaw i.e. the EKF Compass error bar either goes complete RED or stays close the 0.8 mark.

After this I have experimented with different setups.

  1. Since this error was shown on the UAV that is bigger platform than normal size (5ft motor - motor distance with octo coax setup) I decided to try this on DJI 550 platform and it showed the same error.
  2. Originally I was using the extended wire (50 cm) to stock wire which I removed and put the connector on stock wire but it showed he same error.
  3. I have also tried different combinations of disabling internal compass but no success.
  4. Same thing about I2C extension, originally we were using the I2C extension board which had LED extension and Compass connected. Then I removed the extension and connected the compass straight into PixHawk’s I2C port but no success.
  5. I looked up setup instructions on drotek’s page and it didn’t say anything about “ROTATION 180” for this module but just to check I tried that which gave me opposite heading as expected.
    Tests with Modules from different suppliers;
  6. On the same UAV setup (no software or hardware change) I connected 3DR GPS-Compass, A different GPS-Compass (NEO M8N and HMC5983), Here+ Module. They ALL WORKED FINE.


  1. Is there some basic setup step I am missing ?
  2. Am I making any mistakes with pinouts ? (I have posted a picture in the bottom of the pinout I am using)
  3. Is there any hardware issues with this particular batch ?

This is resolved. It was Roll_180 orientation.


Thanks for the feedback, we are refactoring documentation so feel free to make any comment about missing indications.


Hi @Kevin,

It would be good if you can add any such critical note on front page of product since it’s uncommon to mount the mag chip upside down (requiring ROLL_180 setup). I started realizing the issue after looking at closely to magfield values and it took wasted important time figuring this out. Just a suggestion.