Servers by jDrones

Compass/heading debugging Pixhawk w/M8N

(Scott Dresser) #1

I’m trying to isolate what I believe is a problem with my external compass (mRo M8N). The problem I observe is that I can’t get a reliable heading from my Pixhawk w/M8N (mRo) configuration running 3.5.3. This is a new build so it has never worked on a previous build, etc.

Things I’m trying to do to isolate the problem:

  • Disable the pixhawk compass (compass 2) so that only the external compass is used to derive the heading, primary compass is compass 1, external
  • Calibrate the external compass. Calibration always seems to work my offsets are 337,-250, 75
  • Once calibrated I simply rotate the compass and expect the heading in mission planner to track or at least move but the heading does not change.
  • If I move the Pixhawk holding the M8N steady the heading does change. So even though I have compass 2 disabled, it seems like the FC is using something other than external compass 1 to determine heading
  • I’ve read the advanced calibration page and the mx, my, mz values for compass 1 are consistent with me being in northern hemisphere and move in the right direction when I pitch and roll the M8N
  • The only thing I can see that is strange is the magfield is always around 900-1000 for compass 1. I’ve moved the M8N as far away from the copter as the cable will allow, tried different locations inside and outside, powered the FC and M8N through USB vs battery and it stays in the 800-1100 range no matter where I go or what I do.


  • Is the high magfield a problem with the M8N hardware or is there something else I can try to minimize it?
  • Is a high magfield something would that cause the pixhawk to always use compass 2 (or dead reckoning?) for the heading?
  • Is there anything else I can do to isolate the M8N compass to see if it is working or not?


(Scott Dresser) #2

In case others stumble on this thread with similar problems it was a bad compass. The extremely high magfield was the give away. mRo sent a new GPS/compass and it worked the first time.