The BNO085 fusion algorithm includes an automatic calibration routine — but for best results, an initial in-field calibration session matters. Without calibration, fusion drift can be 2-5× higher than after a proper session.
Calibration procedure
The standard ArduPilot routine works:
- Mount the IMU on the drone in its final orientation.
- Rotate slowly through all six axes — point each face of the drone “up” for ~5 seconds.
- The chip auto-detects the calibration patterns; status flags indicate progress.
- Once “fully calibrated” (status flag = 3), the calibration is saved in nonvolatile memory.
Noise sources
- Magnetic interference from motors — biggest source for our application. Use Game Rotation Vector (no mag) for the active flight loop.
- Vibration — high-frequency vibrations leak into the gyro. Vibration-damping mount is mandatory.
- Temperature drift — minor on the BNO085 (the fusion compensates) but can affect calibration if temperature changes a lot between calibration and flight.
Where to go next
- Fusion — fusion mode choices
- Description — specs
- BNO085 hub