Compass issues, again and again and again

Corrado, you’re correct that there are a lot of posts about compasses. Mounting location, orientation, interference, calibration, etc, can all be difficult, and different for every copter. I’ve got at least a few posts around the web asking for help w/ magnetometers.
But, your specific issue might not be a common one. I doubt a lot of people have your exact flight controller and two uavcan compasses.
You could try qgroundcontrol, as fnoop mentioned. See if that shows the same issue w/ randomly displaying different compasses as 1,2,3. External are supposed to be first. Also be sure everything physical is OK. No intermittent connections or loose wires, etc. Then if it’s still not working, make a post w/ detailed info about compass types, device ID’s, how they’re connected, etc, and maybe you can help the developers find the issue.
Otherwise, I think it’s unfair to say not enough work is being done w/ the magnetometers.
It’s always getting better. Mounting location and ability to handle interference has gotten better over the years. Automatic orientation detection was recently added, and now the in flight learning. Those are huge improvements.
Plus, to your comment about supporting other boards, the people adding support for new FC’s are generally not the same people doing the core development on things like the magnetometers. Adding support for new FC’s is not slowing the development of anything else. If anything it will eventually lead to faster development as more people are interested in using and contributing to the project.


I’m sure there’s more that we can do to make the compass setup better/easier. I’m also sure that it’s one of the major issues that users face.

I have 2 things in mind that I hope to get to in the near-ish future:

  • add the individual compass device ids to the parameter descriptions so that a user can look at the COMPASS_DEVID parameter and instead of just seeing a number, they can see a description of the device and bus that it’s ok
  • document the procedure for connecting two external compasses (like two Hex HERE GPSs).

There is a 3rd item I’d like to do involving an EKF enhancement to make it better able to estimate the vehicle’s heading after takeoff. I think with this we could possibly relax some of our compass checks because we could deal with a bad compass better. This project will require some signficant funding however to get done (about $30k). I’m hoping that we can convince a partner (or two or three) to fund this but I haven’t managed to convince them yet. I’m sure it’ll get done eventually it’s just a matter of when…


As i said i don’t think it needs a big work on to make it a lot better and don’t give the user the sensation of being blind.
I think if the system could show all mag attached and let user just check what they want to use, in a clear way with no guessing.


Tried the new bitmask and loaded only uavcan and the driver for the mag chip on the zubaxx datasheet (LIS3MDL) and i get a “bad compass health”.

Than i loaded all the drivers as it was previously (curiously by default LIS3MDL was the only one not loaded) and all worked again, but system said i needed a compass calibration.

Obviously i have never been able to see the 2 external compasses, that, in theory, should show up and be detected as first and second.

The more i dig into this the less i understand the incredible logic behind it, it is just a mess.

It is my strong convincement that the magnetometer, being one of the fundamental sensor, should be way way way easier to setup and more understandable!!!

Really really do not understand why this stuff is not on top priority list, really puzzles me.

are your two external mags the same? Maybe they have the same address so the code cant tell the difference between them.

Most compass setups are fairly painless, so long as its mounted far enough from interference, especially with the new auto orientation feature. I think its far to say using dual CAN compass is very unusual. Out of interest why do you need two external compasses?

edit: the cube has two can bus’s i think, have you tried each compass on separate bus?

I have tried everything. Address of the 2 compasses are obviously different.

Probably you are right about painless compass setup, so it is almost incredible it is one of the most discussed argument. They must be all dumbs like me.

Just to point it out, it is not a matter of pain or not but is a feeling of complete confusion on how it works. If something goes wrong it becomes an hocus pocus kind of thing, but again, it is probably me and compass stuff is GREAT as is.

Your not giving us much to work with here, not much we can do to help you with your issue.

Maybe I am the ‘dumb’ but I really don’t see the ‘incredible’ amount of of issues about compasses.

Perhaps this would have been better posted in the Rants and Raves section.

Is there a Setup your compass for dummy’s somewhere. I nearly gave up on Pixhawks and Arducopter because of compass problems and they are prevalent in the various forums on the internet.

Over time I have been able to resolve them through grit and determination. But I confess if there was a document out there for us none technical users that explained how to set it up and what the main settings do, how to use them. Perhaps that would be helpful. A lot of time I read the Wiki and my eyes glaze over.

That said, I am sticking with Arudcopter…but goodness. Sometimes its hard


Maybe supporting 3-4 different magnetometer chips and have them working well and easy would be better than load 20 different drivers and drive people crazy. But that is how it is, there is a run to bell and whistless while important things are ages behind…

  • One still has to tell the system in which orientation your compass is? If so, this could be automated.
  • Is autocalibration now working on Ardupilot?
  • and, as noted above, call them internal and external, not 1 and 2

If you want to have real fun try to have 2 external uavcan compass working…but all is good…