Compass accuracy / resolution


The data sheet of the OpenIMU300ZA claims that the resolution of the magnetic sensor is ~0.3 mGauss.
Do you have an approximation of how it relates to the resolution in degrees of the compass? (assuming that the imu is calibrated for hard/soft iron and located at sea level)

Do you have an approximation for the accuracy of the compass app (which also takes the gyro and accelerometer data into account)?


Hi Ron,
The OpenIMU300ZA factory firmware version released only with IMU app currently, then verify the IMU performance and list the parameter on datasheet. I will contact with factory and send you an approximation accuracy for reference. Btw, what is the application scenarios of the compass you choose, In car or on ship?

It is used on a robot (which drives on a floor) indoors.

Thank you


Hi Ron,
I test ecompass application in office desktop, calibrate the mag sensor and add the result to gDefaultUserConfig struct in UserConfiguration.c file:
.hardIron_X = -0.13071,
.hardIron_Y = -0.06094,
.softIron_Ratio = 0.93736,
.softIron_Angle = 0.95718

use the openimu python driver(download from github) connect the and found the heading error with an approximation 0.4 degree when i place the openimu300ZA EVB x axis heading north.

Assumption: IMU is calibrated for hard/soft iron and located at sea level
   Take heading angle A as example, A = atan2(Mag_y, Mag_x), so evaluate the resolution influence should be based on combination of Mag_x and Mag_y.
Evaluation: dived to 2 conditions
   1. one of x, y axis Mag value is 0. If Mag_x = 0, +/- 0.3mGauss change of Mag_y does not result in any impact.
  2. both x & y Mag value are not 0. After calculation based on different Mag_x & Mag_y(different angles), the resolution 0.3mGauss could leads several 0.01 degree change.
So the resolution of IMU have negligible influence on angle heading generally.

Log in to reply