RM3100 compass is more difficult to calibrate than LIS3MDL

Hello everyone,

I am using 2 external compasses: PNI RM3100 and LIS3MDL.
When doing calibration in MP, the green bar of LIS3MDL always reaches 100% twice faster than RM3100’s. Most of the time RM3100 calibration is not successful.

Do I have to change the COMPASS_OFFS_MAX? If so, which value do you suggest?

Thanks in advance,
Vu.

Are you rotating your vehicle in all the axis?

Hi @Dave84
Yes I did, the same procedure has been applied for LIS3MDL for 3 years. Since last month, when I have a chance to try a new RM3100 with bigger “coil”. Its performance is much better in strong magnetic interference compared to LIS3MDL. I guess the reason is because of these big coils (instead of MEMS structure in LIS3MDL)

This is a warning indicating that you have some magnetic interference on your vehicle. Fix the interference and you will be able to calibrate the compass.

Hi @CraigElder, I used both of 2 compasses in the same position in the same drone and LIS3MDL is fine in calibration all the time.

rm3100 it’s i2c and also SPI… which protocol are you using now for perform the calibration

It’s I2C_2, I used I2C_1 for the LIS3MDL. Two of them possibly used in the same I2C bus but I split it to make sure.

just check the address of every i2c coz if they have the same address you can have conflicts.
As your rm3100 support also SPI check if your fc can support SPI protocol

Hi, yes the RM3100 has pins to configure the address for I2C, but I also want to let you know that this is not the reason. I set the static address (and change to another one if I want to). The Arducopter recognizes both I2C slaves without errors.

The RM3100 may not conflict with LIS3MDL, even you let the adress pin float, the Arducopter will be confused between 2 different RM3100 slaves (because the address is not set)

RM3100 uses bigger coils so I guess this is the reason let it harder to be calibrated. Setting lower offset may help but I am not sure how to much is enough.

Im using Mro LocationOne one equipped with rm3100 and i the calibration its fast… done same test with an I2C/SPI rm3100 by drotek and I’ve same results also with flyfocus rm3100.
The best performance is with Mro LocationOne