Compass MMC5983 not working on Ardupilot

Hi,

I’m currently testing an MMC5983 magnetometer on a Pixhawk 6X flight controller running ArduPilot.

Using a Lua script to scan the I2C bus, I was able to detect the device at address 48 (decimal), which corresponds to 0x30 in hex. This matches the expected I2C address for the MMC5983, so it seems the sensor is connected correctly.

However, ArduPilot does not detect the compass during startup. I built a custom firmware with AP_COMPASS_MMC5XX3_ENABLED enabled, but the compass still does not appear in the list of detected compasses, and I don’t see any related messages in the boot logs.

Here is what I’ve confirmed so far:

  • The I2C scan via Lua shows the device at decimal address 48 (hex 0x30)
  • The wiring is correct
  • The custom firmware build includes AP_COMPASS_MMC5XX3_ENABLED = 1
  • COMPASS_ENABLE = 1

Is there anything else I should configure to allow ArduPilot to detect the MMC5983? Or is the driver not yet fully supported on the Pixhawk 6X?

Thanks in advance for your help!

Hi,

Were you able to fix the issue? I also have the same issue with my external MMC5983 compass being detected with CubeOrange.