El BNO085 sensor is a technology that has gained a lot of popularity in applications related to augmented reality (AR), virtual reality (VR) and robotic systems, among other areas. This small but powerful device combines the functionality of an accelerometer, gyroscope and magnetometer in a single chip, making it an indispensable tool for accurately measuring movements and orientations in three dimensions.
Jointly developed by CEVA and Bosch, the BNO085 is not simply an improvement on its predecessor, the BNO080, but also fixes some important performance flaws in the latter, such as issues with the SPI protocol. The BNO085 also incorporates a number of improvements that make it ideal for use in devices that require low power consumption and high precision in motion capture, such as IoT devices, VR controllers and mobile robots.
What is BNO085?
The BNO085 is a 9-axis System in Package (SiP) designed to enable rapid development of sensor-enabled devices, from augmented reality to robotics and Internet of Things (IoT) applications. It features an accelerometer, magnetometer, and gyroscope, combined with a low-power Arm Cortex M0+ processor running SH-2 firmware, which manages sensor data and fuses it to create usable information.
The BNO085 is designed to offer extreme precision in 9-degrees-of-freedom (9DOF) motion tracking, a capability that includes the detection of acceleration, angular velocity, and magnetic field direction, among other key parameters. In addition, this sensor is capable of running advanced libraries provided by CEVA, adapting to different applications, such as virtual reality controllers, where low power consumption and low latency are important.
Differences with the BNO080
One of the first questions when evaluating the BNO085 is how it differs from the BNO080. At first glance, both devices appear to share the same hardware components, but the key differentiator lies in the firmware. The BNO085 is not only an upgrade of the BNO080 but it solves important problems such as a 'timeout' in SPI, which negatively affected the functionality of the BNO080 when using this communication protocol. In addition, the BNO085 is completely backwards compatible with the code and infrastructures originally developed for the BNO080.
As for the data they provide, both sensors are capable of delivering the following types of information:
- Acceleration vector: Three axes of acceleration that include both gravity and linear motion.
- Angular velocity vector: Three axes of rotation to measure angular velocity.
- Magnetic field vector: Three axes of magnetic field detection in micro Tesla (uT).
- Orientation vector: Four quaternion points that allow obtaining precise data for the proper manipulation of rotation.
Advanced Features of BNO085
One of the biggest advantages of the BNO085 is its ability to perform sensor fusion directly on the device. This means that instead of simply delivering raw values of acceleration, angular velocity or magnetic fields, the sensor combines this information and delivers more useful data, such as gravity vectors and orientation.
In addition to the base sensors, the BNO085 provides additional reports optimized for different applications, such as virtual or augmented reality. These include:
- Optimized rotation vectors: Specifically designed for AR and VR applications, where low latency and low power consumption are crucial.
- Calibrated and raw sensor reports: The BNO085 can simultaneously deliver calibrated and uncalibrated data from the accelerometer, gyroscope and magnetometer sensors.
- Stability detection and classification: Able to recognize when an object is at rest or in constant motion.
- Impact and activity detectors: Includes detection of steps, shakes, significant movements and general classification of activities.
These additional reports make the BNO085 an ideal choice for product designers looking for accurate, easy-to-integrate data for wearables, robots, and VR controllers.
Main applications
The BNO085 is versatile and can be used in a wide range of applications. Some of the most notable ones include:
- Augmented and virtual reality (AR/VR): Thanks to its sensor fusion capabilities and low latency, the BNO085 is an excellent choice for AR and VR devices that require precise motion and orientation tracking.
- Mobile robots: The combination of accelerometers and gyroscopes makes it ideal for robots that need to measure movement in real time, whether autonomous vacuum cleaners or drones.
- Internet of Things (IoT): Its compact size and low power consumption make it a preferred solution for IoT devices that require positioning information.
Other potential applications include sports tracking, health and wellness devices, and gaming controllers. In general, any device that needs accurate measurement of three-dimensional motion can benefit from using this sensor.
Technical details and hardware
The BNO085 sensor comes in a very compact size, with dimensions of approximately 5,2mm x 3,8mm, making it suitable for applications where space is a major consideration. Inside this small package, you will find all the sensors needed to make your measurements, along with a small processor that handles data fusion.
Some platforms, such as Adafruit, have developed different versions of this sensor to make it more accessible and easy to use in DIY or educational projects. These versions include adaptations on breakout boards that allow direct connection to microcontrollers such as Arduino or Raspberry Pi, even offering voltage regulators and I2C connectors for more direct integration.
Operating modes
The BNO085 can be configured to operate in several modes, depending on the needs of the project. Among the simplest and most useful modes is the UART-RVC mode. This mode is specifically designed to obtain calibrated measurements of heading and acceleration, making it ideal for applications such as robot vacuum cleaners. This would be a simple but effective mode that allows obtaining useful data with a low level of complexity in integration.
This mode, along with other advanced settings, make it a hard-to-beat option when it comes to offering an all-in-one sensor that handles data fusion without the need for external processors or complex software.
Additionally, for those wishing to use the more advanced modes, libraries have been developed for both CircuitPython and Arduino, making it easy to integrate this sensor into electronics projects regardless of the user's level of experience.
All in all, the BNO085 is a powerful and versatile sensor that allows developers to work with motion and orientation data accurately and painlessly. Thanks to its advanced sensor fusion features and ability to operate at low power consumption, this device is ideal for a wide variety of applications, from wearables to robotics and even augmented and virtual reality systems.