Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use BNO 086: Examples, Pinouts, and Specs

Image of BNO 086
Cirkit Designer LogoDesign with BNO 086 in Cirkit Designer

Introduction

The BNO 086 is a 9-axis absolute orientation sensor that integrates a 3-axis accelerometer, a 3-axis gyroscope, and a 3-axis magnetometer. This sensor is designed to provide precise orientation data by fusing data from its internal sensors using advanced algorithms. The BNO 086 is widely used in applications such as robotics, drones, augmented reality (AR), virtual reality (VR), and motion tracking systems.

Explore Projects Built with BNO 086

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Arduino Nano and BNO055 Sensor with Bluetooth Connectivity
Image of Clutch Pedal Gyro: A project utilizing BNO 086 in a practical application
This circuit features an Arduino Nano interfaced with a BNO055 sensor and an HC-05 Bluetooth module. The Arduino communicates with the BNO055 via I2C (using A4 for SDA and A5 for SCL) and with the HC-05 via serial communication (using D0/RX and D1/TX for data transfer). The HC-05's Key and State pins are connected to D2 and D3 of the Arduino for module control, and all components share a common ground with the Arduino powered at 5V and the BNO055 at 3.3V from the Arduino's 3V3 output.
Cirkit Designer LogoOpen Project in Cirkit Designer
Battery-Powered Arduino UNO with BNO085 IMU and Bluetooth HC-06 for Orientation Tracking
Image of bno085: A project utilizing BNO 086 in a practical application
This circuit integrates an Arduino UNO with an Adafruit BNO085 9-DOF Orientation IMU and a Bluetooth HC-06 module. The Arduino reads orientation data from the IMU via I2C and transmits it over Bluetooth, powered by a 7.4V battery.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino UNO-Based IMU and Bluetooth Communication System
Image of New one: A project utilizing BNO 086 in a practical application
This circuit features an Arduino UNO microcontroller interfaced with a Bluetooth HC-06 module for wireless communication and an Adafruit BNO085 9-DOF Orientation IMU for motion sensing. The Arduino handles data acquisition from the IMU via I2C and communicates the data wirelessly through the Bluetooth module.
Cirkit Designer LogoOpen Project in Cirkit Designer
Bluetooth Audio Receiver with Battery-Powered Amplifier and Loudspeakers
Image of speaker bluetooh portable: A project utilizing BNO 086 in a practical application
This circuit is a Bluetooth-enabled audio system powered by a rechargeable 18650 Li-ion battery. It includes a TP4056 module for battery charging and protection, a PAM8403 amplifier with volume control to drive two loudspeakers, and a Bluetooth audio receiver to wirelessly receive audio signals.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with BNO 086

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of Clutch Pedal Gyro: A project utilizing BNO 086 in a practical application
Arduino Nano and BNO055 Sensor with Bluetooth Connectivity
This circuit features an Arduino Nano interfaced with a BNO055 sensor and an HC-05 Bluetooth module. The Arduino communicates with the BNO055 via I2C (using A4 for SDA and A5 for SCL) and with the HC-05 via serial communication (using D0/RX and D1/TX for data transfer). The HC-05's Key and State pins are connected to D2 and D3 of the Arduino for module control, and all components share a common ground with the Arduino powered at 5V and the BNO055 at 3.3V from the Arduino's 3V3 output.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of bno085: A project utilizing BNO 086 in a practical application
Battery-Powered Arduino UNO with BNO085 IMU and Bluetooth HC-06 for Orientation Tracking
This circuit integrates an Arduino UNO with an Adafruit BNO085 9-DOF Orientation IMU and a Bluetooth HC-06 module. The Arduino reads orientation data from the IMU via I2C and transmits it over Bluetooth, powered by a 7.4V battery.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of New one: A project utilizing BNO 086 in a practical application
Arduino UNO-Based IMU and Bluetooth Communication System
This circuit features an Arduino UNO microcontroller interfaced with a Bluetooth HC-06 module for wireless communication and an Adafruit BNO085 9-DOF Orientation IMU for motion sensing. The Arduino handles data acquisition from the IMU via I2C and communicates the data wirelessly through the Bluetooth module.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of speaker bluetooh portable: A project utilizing BNO 086 in a practical application
Bluetooth Audio Receiver with Battery-Powered Amplifier and Loudspeakers
This circuit is a Bluetooth-enabled audio system powered by a rechargeable 18650 Li-ion battery. It includes a TP4056 module for battery charging and protection, a PAM8403 amplifier with volume control to drive two loudspeakers, and a Bluetooth audio receiver to wirelessly receive audio signals.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications:

  • Robotics for navigation and control
  • Drones for stabilization and orientation
  • Motion tracking in AR/VR systems
  • Wearable devices for activity monitoring
  • Gaming controllers for motion sensing

Technical Specifications

The BNO 086 is a high-performance sensor with the following key specifications:

Parameter Value
Operating Voltage 1.8V to 3.6V
Communication Interfaces I²C, SPI, UART
Accelerometer Range ±2g, ±4g, ±8g, ±16g
Gyroscope Range ±125°/s to ±2000°/s
Magnetometer Range ±1300 µT
Orientation Output Quaternion, Euler angles
Power Consumption ~1.3 mA (typical, depends on mode)
Operating Temperature Range -40°C to +85°C
Package Type LGA-28 (4.5mm x 4.5mm x 1.1mm)

Pin Configuration

The BNO 086 has 28 pins, but the most commonly used pins for basic operation are listed below:

Pin Number Pin Name Description
1 VDD Power supply (1.8V to 3.6V)
2 GND Ground
3 SDA I²C data line
4 SCL I²C clock line
5 CS Chip select for SPI communication
6 INT Interrupt output
7 RST Reset pin
8 BOOTN Boot mode selection

For a complete pinout, refer to the manufacturer's datasheet.

Usage Instructions

Connecting the BNO 086 to an Arduino UNO

The BNO 086 can be interfaced with an Arduino UNO using the I²C communication protocol. Below is a basic wiring guide:

BNO 086 Pin Arduino UNO Pin
VDD 3.3V
GND GND
SDA A4
SCL A5
INT Digital Pin 2

Sample Arduino Code

The following example demonstrates how to read orientation data (quaternions) from the BNO 086 using the I²C interface:

#include <Wire.h>
#include <Adafruit_BNO08x.h>

// Create an instance of the BNO08x sensor
Adafruit_BNO08x bno = Adafruit_BNO08x();

// Define the interrupt pin
#define BNO08X_INT_PIN 2

void setup() {
  Serial.begin(115200); // Initialize serial communication
  while (!Serial) delay(10); // Wait for the serial monitor to open

  // Initialize the BNO08x sensor
  if (!bno.begin_I2C()) {
    Serial.println("Failed to initialize BNO08x! Check wiring.");
    while (1);
  }
  Serial.println("BNO08x initialized successfully!");

  // Configure the sensor to output quaternions
  if (!bno.enableReport(BNO08X_REPORTID_ROTATION_VECTOR)) {
    Serial.println("Failed to enable quaternion reporting!");
    while (1);
  }
}

void loop() {
  // Check if new data is available
  if (bno.getEvent()) {
    // Retrieve quaternion data
    sensors_event_t event;
    bno.getEvent(&event);

    // Print quaternion values to the serial monitor
    Serial.print("Quaternion: ");
    Serial.print("W: "); Serial.print(event.orientation.w, 4);
    Serial.print(", X: "); Serial.print(event.orientation.x, 4);
    Serial.print(", Y: "); Serial.print(event.orientation.y, 4);
    Serial.print(", Z: "); Serial.println(event.orientation.z, 4);
  }

  delay(100); // Delay to avoid flooding the serial monitor
}

Important Considerations:

  1. Power Supply: Ensure the BNO 086 is powered with a stable voltage between 1.8V and 3.6V. If using a 5V microcontroller, use a level shifter for I²C lines.
  2. Pull-Up Resistors: The I²C lines (SDA and SCL) require pull-up resistors (typically 4.7kΩ) if not already present on the breakout board.
  3. Interrupt Pin: The INT pin can be used to detect when new data is available, reducing the need for constant polling.
  4. Orientation Modes: The BNO 086 supports multiple output formats (e.g., quaternions, Euler angles). Configure the sensor based on your application.

Troubleshooting and FAQs

Common Issues:

  1. Sensor Not Detected:

    • Ensure the wiring is correct and matches the pinout.
    • Verify that the I²C address (default: 0x4A or 0x4B) is correct.
    • Check for loose connections or damaged wires.
  2. Incorrect Orientation Data:

    • Perform a calibration procedure for the accelerometer, gyroscope, and magnetometer.
    • Avoid placing the sensor near magnetic or metallic objects that can interfere with the magnetometer.
  3. No Data Output:

    • Confirm that the sensor is properly initialized in the code.
    • Check the INT pin for activity if using interrupts.

FAQs:

Q: Can the BNO 086 be used with a 5V microcontroller?
A: Yes, but you must use a level shifter for the I²C lines (SDA and SCL) to avoid damaging the sensor.

Q: How do I calibrate the BNO 086?
A: The BNO 086 performs automatic calibration, but you can improve accuracy by moving the sensor in a figure-eight pattern to calibrate the magnetometer.

Q: What is the maximum I²C clock speed supported?
A: The BNO 086 supports I²C clock speeds up to 400 kHz (Fast Mode).

Q: Can I use SPI instead of I²C?
A: Yes, the BNO 086 supports SPI communication. Refer to the datasheet for SPI-specific wiring and configuration.

By following this documentation, you can successfully integrate the BNO 086 into your projects and leverage its powerful orientation sensing capabilities.