EasyManua.ls Logo

CEVA BNO085 - User Manual

Default Icon
5 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
Loading...
February 2023 Document 1000-4045 -- Revision 1.3
www.ceva-dsp.com © 2023 CEVA, Inc. All rights reserved 1 / 5
1000-4045 - App Note
BNO085/BNO086 Tare Function
Usage Guide
Introduction
This document describes the Tare function of the BNO085/BNO086 that redefines the orientation of the
sensor. This allows the outputs of the BNO085/BNO086 to be in line with the orientation with which it
was mounted into the main device. These commands are described in more detail in the SH-2
Reference Manual [1] and this document assumes that the reader has this manual available for
reference.
Note: The BNO080 is discontinued. For new designs CEVA recommends the BNO085 or BNO086.
Tare Overview
The BNO085/BNO086 uses two commands and a configuration record to redefine the sensor’s
orientation, or “Tare”:
- Commands:
o Tare Now (Section 6.4.4.1 of SH-2 Reference Manual)
Allows for a temporary Tare. Useful at the start of a game to define the current
orientation.
o Persist Tare (Section 6.4.4.2 of SH-2 Reference Manual)
Saves the current Tare orientation into the Sensor Orientation configuration
record. This is a persistent setting that now becomes the default orientation.
- Configuration Record
o Sensor Orientation
Stores the orientation of the device. Once you know the standard orientation of
your BNO085/BNO086 in your device, you can use the same starting orientation
for all devices using this record as a convenient starting point. More accurate
per-device taring can be done using the commands above.
Tare Options
There are two options that you can choose from when running a Tare operation:
- Axes
o Which axes do you want to tare across? For instance, you can choose to only tare on
yaw (Z-axis) which will reset the heading to the user’s current forward orientation. Or
you can tare across all axes (resets heading, pitch and roll).
Question and Answer IconNeed help?

Do you have a question about the CEVA BNO085 and is the answer not in the manual?

Overview

The provided document is an application note (1000-4045 - Revision 1.3) from CEVA/Hillcrest Labs, detailing the "Tare Function Usage Guide" for the BNO085/BNO086 sensors. The BNO080 is mentioned as discontinued, with BNO085 or BNO086 recommended for new designs.

Function Description

The Tare function of the BNO085/BNO086 sensors allows for redefining the sensor's orientation. This is crucial for aligning the sensor's outputs with the physical orientation in which it is mounted within a device. The document explains that this function ensures the sensor's reported orientation accurately reflects the device's orientation.

The Tare function is implemented using two primary commands and a configuration record:

  • Tare Now: This command provides a temporary orientation adjustment. It's particularly useful for immediate, on-the-fly adjustments, such as at the beginning of a game or application session, to set the current orientation as the new reference.
  • Persist Tare: This command saves the current Tare orientation into the "Sensor Orientation" configuration record. This makes the adjusted orientation a persistent default setting, meaning it will be maintained across reboots.
  • Sensor Orientation Configuration Record: This record stores the device's orientation. It serves as a convenient starting point for all devices if a standard orientation is known, allowing for more precise per-device taring using the commands.

Important Technical Specifications

While the document doesn't list explicit technical specifications like power consumption or data rates, it details the operational parameters and data structures involved in the Tare function:

  • Command Structure: The Tare function utilizes specific command structures, as shown in tables for "Tare Now" and "Persist Tare." These commands are sent as reports with a Report ID of 0xF2 (Command Request) and a Command value of 0x03 (Tare Command).
    • Tare Now Parameters:
      • P0 (Subcommand): 0x00 (Tare Now)
      • P1 (Bitmap of Axes): Specifies which axes to tare. 0x07 indicates all 3 axes (X, Y, Z), while 0x04 indicates only the Z-axis (yaw).
      • P2 (Rotation Vector basis): 0x00 (Rotation Vector). This parameter determines which Rotation Vector output (Rotation Vector, Game Rotation Vector, Geomagnetic Rotation Vector) is used as the basis for the Tare. The document notes that 0x00 typically refers to the standard Rotation Vector.
    • Persist Tare Parameters:
      • P0 (Subcommand): 0x01 (Persist Tare)
  • Rotation Vector Basis: The BNO085/BNO086 offers three types of Rotation Vector outputs (Rotation Vector, Game Rotation Vector, Geomagnetic Rotation Vector) that can be chosen as the basis for the Tare. The standard "Rotation Vector" is generally recommended, but the choice depends on the application's primary input.
  • Accuracy Estimate: During magnetometer calibration, the Rotation Vector's Accuracy Estimate field provides an indication of calibration quality in radians. A target accuracy of less than 10 degrees (0.1745 radians) is suggested for good calibration.

Usage Features

The document outlines several usage scenarios and procedures for implementing the Tare function:

  • Axes Selection: Users can choose to tare across specific axes. For example, taring only the Z-axis (yaw) resets the heading to the user's current forward orientation without affecting pitch or roll. Taring all axes (X, Y, Z) resets heading, pitch, and roll.
  • Device First Time Setup (Full Tare): This procedure is for defining the sensor's orientation, typically performed at the factory or by the user during initial setup. It involves a full tare across all 3 axes and saving the setting persistently using Persist Tare.
    1. Power on and activate the Rotation Vector sensor.
    2. Calibrate the magnetometer by rotating the device in a figure 8 until the Accuracy Estimate is below 10 degrees.
    3. Calibrate the accelerometer by positioning the device in 4-6 unique, stable orientations (like placing a cube on each face).
    4. Allow the gyroscope ZRO to calibrate by setting the device down for a few seconds.
    5. Determine North using a physical compass or the Rotation Vector (W=1, X=0, Y=0, Z=0 indicates North).
    6. Position the device so the desired forward direction points North and the device is level.
    7. Run the Tare Now command with P1 set to 0x07 (all 3 axes) and P2 set to 0x00 (Rotation Vector basis).
    8. Run the Persist Tare command with P0 set to 0x01 to save these settings as the default.
  • Set Current Forward Direction (User Tare - Z-axis only): This scenario is for users who want to define a forward orientation for a game or application without changing the "level" (pitch and roll). This can be done via a GUI or button. Since only the Z-axis is tared, aligning the device to North is not required.
    1. Ensure sensors are well-calibrated (magnetometer and gyroscope ZRO).
    2. Position the device in the desired forward direction.
    3. Run the Tare Now command with P1 set to 0x04 (Z-axis only) and P2 set to 0x00 (Rotation Vector basis).
    • This setting is temporary and will revert to the Sensor Orientation FRS config record upon reboot.
  • Applying Tare Changes to Multiple Devices At Production: For production environments where many devices share the same sensor orientation, the Tare settings from a "reference" device can be copied to other units.
    1. Perform the full "First Time Setup" Tare procedure on a reference device.
    2. Read the Sensor Orientation FRS record from the reference device.
    3. Copy this FRS record to the Sensor Orientation FRS record of each production device.
    4. These devices will then have identical Tare settings after the next hub reset.

Maintenance Features

The document does not explicitly detail "maintenance features" in the traditional sense (e.g., cleaning, repair). However, the procedures described for calibration and persistent configuration can be considered part of device maintenance to ensure optimal performance and consistent user experience:

  • Calibration Procedures: The detailed steps for calibrating the magnetometer (figure 8 motion) and accelerometer (multiple orientations) are essential for maintaining the accuracy of the sensor's orientation outputs. Regular calibration, especially during first-time setup or if accuracy issues arise, is a form of performance maintenance.
  • Persistent Configuration: The Persist Tare command and the use of the Sensor Orientation FRS record allow for saving a known good orientation configuration. This ensures that the device consistently starts with the correct orientation, reducing the need for repeated manual adjustments and simplifying deployment across multiple units. This can be seen as a maintenance feature for configuration management.
  • Troubleshooting: The mention of checking the "Accuracy Estimate" during magnetometer calibration provides a diagnostic tool for users to assess the quality of their calibration and identify if a "cleaner magnetic environment" is needed, which is a form of operational maintenance.

In summary, the BNO085/BNO086 Tare function is a critical feature for accurately defining and maintaining the orientation of the sensor within a device, offering both temporary and persistent configuration options for various application scenarios, from initial setup to production deployment.

CEVA BNO085 Specifications

General IconGeneral
BrandCEVA
ModelBNO085
CategoryComputer Hardware
LanguageEnglish