Aliased from BNO055, BNO055ImuSensor

This page is about the BNO055 9-Axis Absolute Orientation sensor, an IMU.

The BNO055 is a Inertial Measurement Unit (IMU) sensor with 9 axis or Degrees of Freedom (DoF), all focused on telling you its orientation in space. It can output the following sensor data:

  • Absolute Orientation (Euler Vector, 100Hz) Three axis orientation data based on a 360° sphere
  • Absolute Orientation (Quatenrion, 100Hz) Four point quaternion output for more accurate data manipulation
  • Angular Velocity Vector (100Hz) Three axis of 'rotation speed' in rad/s
  • Acceleration Vector (100Hz) Three axis of acceleration (gravity + linear motion) in m/s^2
  • Magnetic Field Strength Vector (20Hz) Three axis of magnetic field sensing in micro Tesla (uT)
  • Linear Acceleration Vector (100Hz) Three axis of linear acceleration data (acceleration minus gravity) in m/s^2
  • Gravity Vector (100Hz) Three axis of gravitational acceleration (minus any movement) in m/s^2
  • Temperature (1Hz) Ambient temperature in degrees celsius

Here's a description from Adafruit:

If you've ever ordered and wire up a 9-DOF sensor, chances are you've also realized the challenge of turning the sensor data from an accelerometer, gyroscope and magnetometer into actual "3D space orientation"! Orientation is a hard problem to solve. The sensor fusion algorithms (the secret sauce that blends accelerometer, magnetometer and gyroscope data into stable three-axis orientation output) can be mind-numbingly difficult to get right and implement on low cost real time systems.

Bosch is the first company to get this right by taking a MEMS accelerometer, magnetometer and gyroscope and putting them on a single die with a high speed ARM Cortex-M0 based processor to digest all the sensor data, abstract the sensor fusion and real time requirements away, and spit out data you can use in quaternions, Euler angles or vectors.

See also: BNO08x IMU, related chip-wise to the BNO055.


  • "If you are designing a sensor solution for a system that has a limited range of motion, you can use Euler angles. But if you are designing a sensor that can be oriented anywhere in space, you should use quaternions." (All About Circuits, ref below)


BNO055 Configuration Mode (Transient Mode)
OPERATION_MODE_ACCONLY 0x01 Accelerometer only
OPERATION_MODE_MAGONLY 0x02 Magnetometer only
OPERATION_MODE_GYRONLY 0x03 Gyroscope only
OPERATION_MODE_ACCMAG 0x04 Accelerometer and Magnetometer only
OPERATION_MODE_ACCGYRO 0x05 Accelerometer and Gyroscope only
OPERATION_MODE_MAGGYRO 0x06 Magnetometer and Gyroscope only
OPERATION_MODE_AMG 0x07 Accelerometer, Magnetometer and Gyroscope (without fusion)
OPERATION_MODE_IMUPLUS 0x08 Inertial Measurement Unit (Accelerometer and Gyroscope Sensor Fusion Mode)
OPERATION_MODE_COMPASS 0x09 Tilt Compensated Compass (Accelerometer and Magnetometer Sensor Fusion Mode)
OPERATION_MODE_M4G 0x0A Magnetometer and Gyroscope Sensor Fusion Mode
OPERATION_MODE_NDOF_FMC_OFF 0x0B 9 Degrees of Freedom Sensor Fusion with Fast Magnetometer Calibration Off
OPERATION_MODE_NDOF 0x0C 9 Degrees of Freedom Sensor Fusion


Tags:  IMU, Sensor