External compass not detected

I have tried connecting three different external GPS/Compass units to three different Pixhawk 2.4.8 units, none of which will auto-detect the second compass, only the internal one. The GPS units are fine. What can possibly be the issue?

Could you please tell us what GPS unit(s) you’ve tried?
Perhaps a photo of FC so we can see how many connection are currently being used?

If it is an open GPS unit / one with LED, is the light flashing at all?
If it is an independently supplied GPS unit (non Pixhawk) it may have communications wire the wrong way around (Tx/Rx)

HI Karl. They are inexpensive models without lights -




The fc is a Pixhawk 1 which normally works fine and is mentioned frequently on the Ardupilot forum -

I have tried just connecting the GPS/Compass alone to the fc w/o other connections. I have also tried reversing the Tx/Rx thinking it was mis-wired as you did. But these units are advertised to work with these fcs.

I have not had this problem with my Cube Black or Holybro setups. I know sometimes these lower priced units will sometimes have issues, but now four fc’s and three GPS/Compasses.

I assume you have followed these instructions:

The compass is not detected so I’m unclear what this page offers. I was incorrect about the LEDs which exist. One shows constant red, one shows constant green and the third shows blinking blue. I think these are related to the GPS data stream.

Have you insured that the I2C connections to the FC are correct? Do you have the external LED on the I2C bus, and does that work? I’ve tried and used multiple el-cheapo
GPS units with absolutely no compass issues, on a PIXHAWK with the external I2C
breakout. Typically a blinking indicator on those GPS units indicates that at least a 2D
lock is present (the GPS does not use the I2C bus).

Good to hear you don’t have issues. I am not sure of the i2c connection, and tried switching tx/rx as noted above, but no luck. It should be good out of the box, right?. I am unclear as to your second statement. What i2c bus LED?




Jack, it looks like you have something plugged into the CAN port. If those wires are on a 4-pin connector and connected to the GPS module, then it should probably be plugged into an I2C port.

1 Like

Thanks Yuri, et al. Indeed, that was the problem. I mistakenly inserted the compass into the canbus. I have a splitter in the i2c port, so will have to put the compass there.

Hi Jack,
PIXHAWK supports an external LED I2c module, that mirrors the status sequences expressed by the usually
buried FC. That display and external magnetometer are I2C devices and should just work with Arducopter.
I was implying that if you do have an external LED module, and it’s working - your I2C bus is at least functional.
Do you have the mag lead from the GPS/Mag device plugged directly into the PX I2C port, or is there a breakout involved
that allows multiple I2C sensors?

Good enough Jack. Your question was seen as an e-mail, and the telling PIX didn’t
appear. Glad you’re up.

Yes, should have posted one from the start.

On one of the builds I see mx3, my3, mz3 values whereas the other three I see the expected mx2, my2, mz2. What might account for this? I did a recalibration.


I had a same issue and the problem turned out to be the cable connector. Frequent pulling in/out makes those tiny leaf springs to open up and loose connection in the holder.