The BNO055 absolute orientation sensor is an amazing device. It integrates an accelerometer, a gyroscope, and a 32-bit microcontroller in a single package. Not only can you read the sensors simultaneously, but a fusion algorithm running on the onboard microcontroller analyzes all the measured data and calculates the orientation of the device in space.
It can be distinguished between non-absolute or relative orientation and absolute orientation. Absolute orientation means the orientation of the sensor to the earth and its magnetic field. In other words, absolute orientation sensor fusion modes calculate the direction of the magnetic north pole. In non-absolute orientation modes, the heading of the sensor can vary depending on how the sensor was placed initially.
Here are five features that make the BlueDot BNO055 9-Axis IMU such a fantastic board:
- Magnetic Field, Acceleration, and Angular Rate. The BNO055 contains a triaxial geomagnetic sensor, a triaxial 16-bit gyroscope, and a triaxial 14-bit accelerometer in a single package. This enables you to simultaneously measure linear acceleration, rotational acceleration, and the strength of the magnetic field.
- Fusion Modes. The fusion algorithm running on the onboard 32-bit microcontroller reads all the sensors simultaneously. It delivers valuable data like the gravity field vector, the device’s absolute orientation (through the quaternions and Euler vectors), the magnetic north (as with a compass), etc.
- 3.3V and 5V Power Supply. The onboard voltage regulator accepts anything from 2.6V to 5.5V to supply the BNO055 sensor.
- I²C Communication. Using the I²C protocol you need no more than two wires to communicate with the BNO055 sensor.
- Data Transfer with 5V and 3.3V devices. While devices like the Arduino Uno interpret a 5V signal as a logic HIGH, the BNO055 uses 3.3V as a logic HIGH. The onboard logic level converter translates the 5V signals into 3.3V signals and vice-versa.
Important Note: The sensors TSL2591 and BNO055 do not work together. They share the same I²C addresses (0x28 and 0x29). Despite using only the address 0x29 for the I²C communication, the sensor TSL2591 also reserves the address 0x28 all the time. If you wish to use the BME280+TSL2591 board with the BNO055 board, please consider using an I²C multiplexer.