Taken from this forum post.
Install the necessary software and run the calibration program as follows:
sudo apt-get update
sudo apt-get install octave -y
cp /usr/share/librtimulib-utils/RTEllipsoidFit ./ -a
You will then see this menu:
m - calibrate magnetometer with min/max
e - calibrate magnetometer with ellipsoid (do min/max first)
a - calibrate accelerometers
x - exit
m. The following message will then show; press any key to start.
Magnetometer min/max calibration
Waggle the IMU chip around, ensuring that all six axes
(+x, -x, +y, -y and +z, -z) go through their extrema.
When all extrema have been achieved, enter 's' to save, 'r' to reset
or 'x' to abort and discard the data.
Press any key to start...
After it starts, you will see something similar to this scrolling up the screen:
Min x: 51.60 min y: 69.39 min z: 65.91
Max x: 53.15 max y: 70.97 max z: 67.97
Focus on the two lines at the very bottom of the screen, as these are the most recently posted measurements from the program. Now you have to move the Astro Pi around in every possible way you can think of. It helps if you unplug all non-essential cables to avoid clutter.
Try and get a complete circle in each of the pitch, roll and yaw axes. Take care not to accidentally eject the SD card while doing this. Spend a few minutes moving the Astro Pi, and stop when you find that the numbers are not changing anymore.
Now press lowercase
s then lowercase
x to exit the program. If you run the
ls command now, you’ll see a new
RTIMULib.ini file has been created.
In addition to those steps, you can also do the ellipsoid fit by performing the steps above, but pressing
e instead of
When you’re done, copy the resulting
RTIMULib.ini to /etc/ and remove the local copy in
sudo cp RTIMULib.ini /etc
You are now done.