External compass undetected

Hi, I noticed that the latest px4 versions (> 1.8.0) do not detect the external compass (this one ) on my mRo pixhawk based multicopter.

The second compass comes back again in the Sensors list after calibration only when I downgrade to version 1.8.0.
Is LIS3MDL still supported by the newest versions of PX4 firmware?

It’s more than a year that I am not able to upgrade the firmware.
I have already asked for help but nobody ever replied. Could anybody please provide any insight on this issue?

Thank you

---- UPDATES ----

I have just run some tests on my three “identical” mRo pixhawks.
Using the same firmware (1.10.1) on the three of them, just one can see three compasses, while the other two can detect only the internal one.

Then I read the @dlwalter’s posts about i2c and the lis3mdl sensor and I used the mavlink console to check the i2c bus. I ran the i2cdetect command and, on the pixhawks that detect only one compass, it returned nsh: i2cdetect: command not found.
So clearly the problem is somewhere in the i2c bus driver.

I hope this can be useful to whoever wants to help me…

Thanks again

Try lis3mdl start -X (Or something similar to start the driver on the external bus).


Some boards don’t automatically start the lis3mdl driver so you’ll either have to add that into a custom firmware build or start the driver in your extras.txt file on the sd card.

Hi Dave,
thank you so much for your help. The command you suggested gave me the same result, command not found.
But I have just been able to solve the issue!
The problem was related to the false Silicon errata issue, described here.
The fix that the px4 team suggests is to update the board’s bootloader but, since I wasn’t confident with this update, I found a workaround…
… so I manually rebuilt the code and forced the bootloader to flash it using the command:

./Tools/px_uploader.py build/px4_fmu-v3_default/px4_fmu-v3_default.px4 --port /dev/ttyACM0 --force

it seems to be working just fine… :crossed_fingers:

Thank you again!