Cause: Contrary to what is stated on the web, the WS-M181 is not equipped with a QMC5883 chip, but an IST8310…
Fix: add one line to the board startup script
Startup script: boards/micoair/h743-aio/init/rc.board_sensors
# External IST8310 compass (Walksnail WS-M181)
ist8310 -X -b 1 -a 12 start
To verify it works first, run in NSH:
ist8310 -X -b 1 -a 12 start
listener sensor_mag 1
You should see live X/Y/Z magnetometer data.
Root cause: The IST8310 driver defaults to address 0x0E. The WS-M181 uses 0x0C, so auto-detection fails. No driver modifications needed, just put the correct chip.
Confirmed working on PX4 v1.16, MicoAir743-AIO-35A.
Note: Don’t forget to change sys_has_gps to true
. Also, wanted to answer the previous topic, but it’s closed now, sorry.