Hi readers! I hope you are fine and spending each day learning more about technology. Today, the subject of discussion is the BNO055- Intelligent 9-Axis Absolute Orientation Sensor Module.
The BNO055 from Bosch Sensortec is a high-class motion sensor module combining a 3-axis accelerometer, 3-axis gyroscope, and 3-axis magnetometer using an onboard ARM Cortex-M0+ microcontroller. This makes it usable for delivering ready-to-use orientation data in formats that include Euler angles, quaternions, and linear acceleration.
This module is designed with an embedded sensor fusion algorithm that offers accurate and drift-free orientation without extensive calibration or programming. It is compactly designed, low in power consumption, and easy to integrate into applications in robotics, wearable devices, drones, AR/VR systems, and IoT devices.
BNO055 eliminates the complexity involved with traditional motion-sensing solutions due to its plug-and-play functionality. It has become a game-changing tool for developers and engineers in fields that demand accurate motion sensing and orientation tracking due to precise, real-time orientation data.
This article will discover its introduction, features and significations, working principles, pinouts, datasheet, and applications.
Features |
Description |
9-Axis Sensors |
3-axis accelerometer, 3-axis gyroscope, 3-axis magnetometer. |
Sensor Fusion |
Onboard ARM Cortex-M0+ microcontroller for real-time data processing. |
Output Formats |
Euler Angles, Quaternions, Linear Acceleration, Gravity Vector. |
Automatic Calibration |
Self-calibration for accelerometer, gyroscope, and magnetometer. |
Low Power Modes |
Multiple power modes (Normal, Low-Power, Suspend). |
Compact Design |
Small form factor, suitable for space-constrained applications. |
Wide Temperature Range |
Operates from -40°C to +85°C. |
Easy Integration |
Supports I2C and UART communication protocols. |
Drift-Free Orientation |
Compensates for gyroscope drift using sensor fusion. |
High Accuracy |
Accurate orientation and motion tracking. |
Magnetic Interference Handling |
Compensates for magnetic field interference. |
Versatile Applications |
Suitable for robotics, wearables, AR/VR, drones, and IoT. |
Real-Time Processing |
Provides real-time output of orientation and motion data. |
Built-in Temperature Compensation |
Automatically compensates for temperature variations in sensors. |
Multiple Interface Support |
Supports I2C, UART, and SMBus for flexible connectivity. |
Simple Setup |
Easy to use with minimal configuration required for basic operation. |
High-Resolution Output |
Provides precise measurements, especially useful for fine orientation tracking. |
Small Package Size |
Compact dimensions (5.2mm x 3.8mm x 1.1mm) are ideal for embedded systems. |
Low Latency |
Suitable for time-sensitive applications requiring quick response times. |
Integrated Hardware Filters |
Built-in filters for reducing sensor noise and improving accuracy. |
Interrupt Capabilities |
Allows for event-driven communication to reduce polling and save power. |
Pin |
Function |
Description |
VDD |
Power Supply (3.3V to 5V) |
Powers the BNO055 sensor. |
GND |
Ground |
Ground connection for the sensor. |
SCL |
I2C Clock (or SCL for I2C) |
I2C clock line for communication. |
SDA |
I2C Data (or SDA for I2C) |
I2C data line for communication. |
INT |
Interrupt (Optional) |
Digital output pin for interrupt signaling. Can be used to notify the microcontroller of events. |
RST |
Reset Pin |
Used to reset the sensor. When pulled low, it resets the BNO055 module. |
MOSI |
Master Out Slave In (SPI Data) |
Data input to the BNO055 when using SPI communication. |
MISO |
Master In Slave Out (SPI Data) |
Data output from the BNO055 when using SPI communication. |
SCK |
SPI Clock |
Clock signal for SPI communication. |
CS |
Chip Select |
Used to select the BNO055 when using SPI. When low, SPI communication is enabled. |
BNO055 has three essential sensors.
Measures the linear acceleration in the X, Y, and Z axes. It helps detect movement, tilt, and forces of gravity.
It measures the angular velocity of the X, Y, and Z axes. It detects rotation and changes in orientation.
It detects the Earth's magnetic field about the three axes to provide the direction.
This integration enables the BNO055 to fully track motion and spatial orientation, which encompasses all the degrees of freedom (9DoF). By combining all these sensors, the BNO055 removes the necessity for individual components in cases where applications require detailed tracking of motion.
One of the great features of the BNO055 is that it has an onboard sensor fusion algorithm. Sensor fusion takes data from the accelerometer, gyroscope, and magnetometer to produce accurate, stable, and drift-free orientation data. Traditionally, this would require significant external computation, increasing the complexity of development.
The BNO055 overcomes this challenge by doing all sensor fusion calculations internally, using its ARM Cortex-M0+ microcontroller. This reduces processing overhead on the host device and simplifies the system architecture. The result is precise and ready-to-use orientation data that can be accessed directly through I2C or UART communication interfaces.
BNO055 offers a wide range of output data formats, making it adaptable to various use cases. Some of the primary data formats include:
Outs are roll, pitch, and yaw, values that describe the orientation of the device in terms easily understandable by a human.
Has a mathematical representation of orientation; is suitable for a precise orientation measurement and calibration necessary for robotic platforms and AR/VR devices.
It shows the acceleration values in which the gravity effect is removed to enable accurate motion tracking.
The vector and magnitude of gravity in terms of direction will help for spatial awareness or leveling application.
Raw data from accelerometers, gyroscopes, and magnetometers are available for users to use if needed.
All of these formats of multiple outputs enable the developers to adjust the sensor's output according to their needs, from simple tilt sensing to advanced three-dimensional motion tracking.
The BNO055 boasts a strong automatic self-calibration system. It can therefore ensure long-term accuracy by dynamically adjusting for environmental changes, such as temperature fluctuations or nearby magnetic interference. With the BNO055, manual calibration processes, which are time-consuming and prone to error, are unnecessary.
In addition, the sensor provides calibration status indicators that enable developers to monitor the calibration level of each sensor in real time. This ensures that the system maintains reliable performance over extended periods.
BNO055 has a small compact form factor that fits in 5.2 mm x 3.8 mm x 1.1 mm; these dimensions make the application even when space is very essential to use, examples of such applications include portable wearables, drones, and portative robots.
The sensor consumes an impressively low amount of energy compared to its functionalities that offer multiple power modes based on application:
provides the highest level of performance that reaches almost 12 mA consumption levels.
This mode reduces power consumption and is, therefore, suitable for battery-powered devices.
This mode reduces the power consumption when the sensor is not in use.
These features make the BNO055 suitable for long-term deployment in energy-sensitive applications.
The BNO055 is suitable for industrial applications and has an operating temperature range from -40°C to +85°C. This gives it quite a wide range of usability in both industrial and outdoor applications, like drones and vehicles that operate independently.
The BNO055 supports standard communication protocols, such as I2C and UART, thus being compatible with a broad range of microcontrollers and development platforms, such as Arduino, Raspberry Pi, and ESP32.
The BNO055 is very easy to set up due to its plug-and-play functionality. While it is not currently available in the market, developers can find various pre-built libraries and even example code on tutorial sites like Adafruit, Bosch Sensortec, etc. This minimizes the time taken in the development process and supports the creation of prototypes.
Drift is often a common problem with gyros: they tend to drift along and accumulate errors in the orientation, thus making a longer-time integration of sensor data quite unstable. The magnetometer and accelerometer data integrated into its sensor fusion algorithm by the BNO055 helps negate the drift component, resulting in stable orientation tracking and precise orientation reporting even during extended periods.
The outputs of the BNO055 offer high accuracy:
Accuracy in Orientation: ±2°
Accuracy in linear acceleration: ±0.3 m/s²
Gyro Range: ±125°/s to ±2000°/s
These performance metrics make the sensor suitable for precision-critical applications, including UAV stabilization, VR head tracking, and robotic navigation.
The magnetometer in BNO055 is sensitive to the magnetic interference that can occur from nearby objects. Still, the sensor has incorporated features to detect and compensate for these distortions and provide reliable orientation data even in electromagnetic noise environments. Developers are cautioned to mount the sensor away from ferromagnetic materials to optimize its performance.
The BNO055 has three core sensors that measure different aspects of movement and orientation. These include:
Accomplishes linear concerning The X Y Z axes. The accelerometer measures changes in velocity and direction besides having feeling and responding in equal measure to acceleration and gravity. The accelerometer correctly also detects the inclination or the orientation of the device with the vertical position of Earth's gravitational pull.
Measures the rate of angular velocity, i.e., how fast a sensor is rotating around the X, Y, and Z axes. Gyroscopes are considered necessary for tracking movements as a result of a rotational movement and changes in orientation by giving high-precision rotation values. However, the values are prone to drift due to gyroscopes being imprecise over long intervals.
Measures the local magnetic field around the sensor in a 3D fashion; it detects the Earth's north. The magnetometer, when combined with the acceleration sensors, is used primarily for correcting the drift caused by the gyroscope and defining device orientation in space.
For example, each sensor samples continuously raw data, whereas it is processed by an algorithm of sensor fusion producing meaningful outputs such as orientations and motion data.
Its most differentiating factor is that of onboard sensor fusion capability, which relates to combining data from three sensors. Sensor fusion deals with an aggregation of all the information that each sensor puts out. With a set of errors such as bias, offsetting, and thermal drift in gyros, along with the effect from the vicinity magnetic field into the information that comes back from it, combining their data with all the information from sensors would enable BNO055 to arrive at accurate results.
The sensor fusion algorithm utilized in BNO055 operates at the level of an ARM Cortex-M0+ microcontroller. This processes sensor data in real time. The ARM Cortex-M0+ uses its microcontroller to make accurate determinations of linear and angular movements, the rate of gravitational pull, and all data collected from three sensors.
The accelerometer determines how the gravity direction is perceived and how the device or gadget moves. It experiences noise and cannot be put continuously since long periods may result in large errors, especially during changes in directions.
The gyroscope is applied to track angular velocity. However, it suffers from drift meaning when solely used over time its outputs begin to lose accuracy.
A magnetometer gives absolute heading and helps correct the drift in the gyroscope, but it is sensitive to local magnetic fields from electronic devices or even metals, which can easily distort readings.
Sensor fusion helps the BNO055 compensate for the weaknesses in each sensor, such that the data produced here is accurate and drift-free data, reliable over extended periods.
After processing the raw sensor data using the fusion algorithm, the BNO055 provides the orientation and motion data in several formats for flexible application use:
This format expresses the device's orientation as three angles: roll, pitch, and yaw. The angles describe the rotation of the device around its X, Y, and Z axes and are a common representation in applications like navigation and human motion tracking.
Compared to Euler angles, Quaternions are less sensitive and consume less computational power for the determination of an object's orientation. Quaternions find application in instances where accuracy in detecting a three-dimensional orientation is desirable such as robotics, virtual reality, and augmented reality.
It is the data helpful in determining motion, whether it's changing speed, or tilting the device. The values provided represent axes X, Y, and Z, which remove gravity from the reading.
This measures the direction and magnitude of gravity and provides spatial awareness by informing the device of orientation regarding Earth's gravitational pull.
For experts, the BNO055 also provides raw data coming from each of its sensor elements: accelerometer, gyroscope, and magnetometer. The raw data can further be processed or calibrated on the outside if necessary.
The multiple output options let developers adapt the functionality of the sensor to meet specific application needs.
The BNO055 comes equipped with an automatic calibration feature such that the sensor operates without error over time. This is a fundamental characteristic for sensors like accelerometers, gyroscopes, and magnetometers, where temperature can influence, the effects of aging, or changes due to environmental changes.
The calibration performed here adjusts the accelerometer by offsetting constant terms to measure gravity or motion forces without errors.
The gyroscope calibration corrects for drift, improving the sensor's ability to track angular velocity over long periods.
The magnetometer is calibrated to eliminate errors caused by external magnetic fields. The sensor automatically compensates for these influences to provide reliable heading information.
Automatic calibration helps the BNO055 deliver consistent and accurate performance without requiring manual intervention, making it easier to use in real-world applications.
The processed orientation and motion data are accessible by external systems through two communication protocols: I2C and UART. The most common protocols for sensor connectivity to microcontrollers are also used for easy integration of development platforms such as Arduino, Raspberry Pi, and other embedded systems.
BNO055 communicates through I2C, which is a simple and widely used protocol that allows communication between multiple devices on a shared bus.
As a matter of alternative, the sensor can utilize UART which is a communication protocol perfectly suited for applications with greater speeds of data transfer.
These communication protocols provide easy integration of BNO055 in various applications and systems.
To optimize power usage, BNO055 incorporates different power modes. It's because battery-powered applications depend highly on minimizing their consumption of power. There are:
This mode offers full functionality, which is suitable for real-time motion and orientation tracking.
In this mode, the sensor minimizes its power consumption by reducing sensor usage while still providing useful motion data.
The sensor consumes minimal power in suspend mode, which is suitable for applications where the sensor is idle for extended periods.
The ability to switch between these modes allows developers to optimize the sensor's energy usage depending on the needs of their application.
Robotics: Applied in navigation, stabilization, and motion control in robotic systems.
Wearable Devices: Applied in fitness trackers, smartwatches, and health monitoring for activity tracking and gesture recognition.
Drones: Provides orientation and flight stabilization data for autonomous flight control.
Virtual Reality (VR) and Augmented Reality (AR): Tracks head movements and orientation for immersive experiences.
IoT Devices: Applied for motion detection, tilt sensing, and positioning in smart devices.
Automotive Systems: Helps in-vehicle navigation, tilt sensing, and electronic stability.
Industrial Automation: It serves for motion tracking, apparatus alignment, and machine monitoring.
The BNO055 sensor module provides an advanced solution for precise motion tracking and orientation sensing, integrating accelerometer, gyroscope, and magnetometer data with onboard sensor fusion. This module is ideal for robotics, wearable devices, drones, and virtual and augmented reality applications, as it provides accurate, drift-free orientation data without the need for external processing. The BNO055 simplifies complex motion sensing tasks with low power consumption, automatic calibration, and ease of integration. This feature makes it a valuable component in consumer electronics and industrial systems, allowing for a wide range of innovative applications.
JLCPCB – Prototype 10 PCBs for $2 (For Any Color)
China’s Largest PCB Prototype Enterprise, 600,000+ Customers & 10,000+ Online Orders Daily
How to Get PCB Cash Coupon from JLCPCB: https://bit.ly/2GMCH9w