Initial calibration of the BNO055

NDOF sensor fusion mode

The GPS-PIE slice GPS modules feature a BNO055 IMU motion sensor which provides the ability to generate absolute orientation data. This absolute orientation comes from the fusion of the output of an accelerometer, a gyroscope and a magnetometer. The sensor fusion is done internally by a microprocessor integrated with the three sensors in the BNO055. The output of each sensor in the BNO055 is also available separately so you could write your own custom application specific sensor fusion algorithm.
Please note that due to the need for calibration you will not be able to guarantee an "instant on" for the IMU fusion mode functionality of the BNO055. Although the process can be shortened by reloading a stored calibration, it cannot be guaranteed that the system will start with all sensors calibrated. In NDOF fusion mode the magnetometer will tend to lose accurate absolute heading over time. As the GPS receiver is able to provide absolute heading, the relative IMUPLUS fusion mode may be preferred for some applications.

Although the BNO055 greatly simplifies interfacing to an IMU, it is still a very complex device with many different modes and settings. Although our source code provides an interface to the device, you will still need to understand its functionality for your own application. Please read the datasheet linked below for full details. We regret that we cannot provide application specific advice on the best settings for individual projects. Here we explain the initial calibration procedure for the NDOF mode.
BNO055 Datasheet Calibration procedure detailed on page 48
Initially, when the BNO055 is powered up, it must be calibrated. The procedure for doing this calibration will be illustrated with reference to our example Raspberry Pi software program 'cube.bin '. The program will store the calibration data in a file which will be automatically reloaded when the program is rerun on subsequent occasions. Start the program with the boards on a level surface as shown below.

During initial calibration of the NDOF mode the BNO055 reports 4 values for the calibration state of the 3 sensors plus the sensor fusion system. Each calibration state can have a value between 0 and 3, where 0 is not calibrated and 3 is fully calibrated. Each of the 3 sensors should return a calibration state of 3 and then the system should calibrate setting its state to 3. The example program reports the progress of the calibration by printing these values out to the terminal window as shown below. In addition the green status LED on the GPS module board will flash while the calibration is in progress.

Gyroscope Calibration
The gyroscope should calibrate with the BNO055 in a single stable position for a few seconds.
Accelerometer Calibration
Rotate the boards through a series of 45 degree increments around each axis, stopping at each increment for approximately 5 seconds. Y axis shown below. Repeat with slightly longer pauses if the accelerometer does not calibrate after the first set of motions.
Magnetometer Calibration
To become calibrated the magnetometer needs to be able to sense the Earth's magnetic field. The calibration should therefore take place away from sources of magnetism. Pick the boards up, hold them parallel to the ground and move them through a series of figure 8s in the air at right angles.

Even when calibrated according to the calibration state output value the BNO055 reading for magnetic north may still be +/- 15 degrees off that measured by a compass immediately. You should however see the magnetometer reading align in a relatively short period.

System Calibration

BNO055 IMU output being used to animate an OpenGL cube.

After the calibration of the three sensors is complete the system status value will be set to 3. A set sensor offsets will have been stored by the BNO055 in its registers. These values are read from the registers and are written to a file 'bno055_data.cfg' which can then be read by the program on subsequent starts to shorten or eliminate the need for the full calibration procedure above. The BNO0555 sensor configuration algorithm will continue to run. This means that the system and sensor calibrations can change back to 0 in some cases in the fusion modes.



© The BlackBoxCameraTM Company Limited 2019