L431 node - i2c compasses not working

I am setting up a large VTOL plane and am struggling to get I2C compasses to be visible on the canbus.

I tried 1.4.1 and also the latest 1.5 and neither seem to do anything with connected i2c devices.

Using a holybro F9P with IST8310 compass connected to the UART port on an L431.
I have also tried other i2c compasses)

I can see the GPS great but the i2c compass does not register and does not appear in the HWID list in mission planner. I assumed the compass would be fairly plug and play. I have also tried a matek i2c airspeed sensor which on i2c which does not appear.

Has anyone tested i2c functionality and found that it works?

Is there something specific required to enable these devices?


First, does the GPS/Compass works ok if connected directly to FC ?
Next, have you flashed with Latest release:
ArduPilot firmware : /AP_Periph/latest/MatekL431-GPS

Then check the bitmask to make sure the IST8310 and CANBUS are not disabled

Finally you can check if devices appears on CANb using the DroneCan GUI

Hi @ppoirier
Thanks for the reply.

Yes - If I connect the Holybro f9p direct to FC GPS2 the GPS works and the compass appears in the HWID list as I would expect.

Yes I have tried the latest 1.5.482b7d74 and the behaviour is the same - GPS works, compass does not show up.

I have tried the typemask at 32, 0 and 512895 no difference to result.

In the dronecan GUI I go to bus monitor and look at data-types. I do not see any compass mesages. Is there anywhere else I should look?

I have a here3 which I am plugging into the can network to test.
The compass from that appears in the HWID list without issue.


Might be a bug, I suggest you jump on the discord channel to get dev support

Thanks. Will follow this up after Christmas as it would be great to get to the bottom of it.