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

How to Use GY-BNO08X IMU: Examples, Pinouts, and Specs

Image of GY-BNO08X IMU
Cirkit Designer LogoDesign with GY-BNO08X IMU in Cirkit Designer

Introduction

The GY-BNO08X is an advanced Inertial Measurement Unit (IMU) that integrates a 3-axis accelerometer, 3-axis gyroscope, and 3-axis magnetometer. It features a built-in sensor fusion algorithm, enabling it to provide highly accurate orientation, heading, and motion data. This makes it an ideal choice for applications requiring precise motion tracking and spatial awareness.

Explore Projects Built with GY-BNO08X IMU

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Battery-Powered Arduino UNO with BNO085 IMU and Bluetooth HC-06 for Orientation Tracking
Image of bno085: A project utilizing GY-BNO08X IMU 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 GY-BNO08X IMU 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
Arduino UNO R4 WiFi and Adafruit BNO085 IMU Fusion for Orientation Tracking
Image of v2: A project utilizing GY-BNO08X IMU in a practical application
This circuit consists of an Arduino UNO R4 WiFi microcontroller connected to an Adafruit BNO085 9-DOF Orientation IMU Fusion sensor. The Arduino communicates with the IMU sensor via I2C protocol, providing power and ground connections to the sensor, enabling it to read orientation data.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino UNO R4 WiFi and Adafruit BNO085 IMU Fusion for Orientation Tracking
Image of Last one: A project utilizing GY-BNO08X IMU in a practical application
This circuit consists of an Arduino UNO R4 WiFi microcontroller connected to an Adafruit BNO085 9-DOF Orientation IMU Fusion sensor. The Arduino provides power and ground to the IMU sensor and communicates with it via the I2C protocol using the SDA and SCL lines.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with GY-BNO08X IMU

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 bno085: A project utilizing GY-BNO08X IMU 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 GY-BNO08X IMU 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 v2: A project utilizing GY-BNO08X IMU in a practical application
Arduino UNO R4 WiFi and Adafruit BNO085 IMU Fusion for Orientation Tracking
This circuit consists of an Arduino UNO R4 WiFi microcontroller connected to an Adafruit BNO085 9-DOF Orientation IMU Fusion sensor. The Arduino communicates with the IMU sensor via I2C protocol, providing power and ground connections to the sensor, enabling it to read orientation data.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Last one: A project utilizing GY-BNO08X IMU in a practical application
Arduino UNO R4 WiFi and Adafruit BNO085 IMU Fusion for Orientation Tracking
This circuit consists of an Arduino UNO R4 WiFi microcontroller connected to an Adafruit BNO085 9-DOF Orientation IMU Fusion sensor. The Arduino provides power and ground to the IMU sensor and communicates with it via the I2C protocol using the SDA and SCL lines.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications

  • Robotics for navigation and control
  • Drones for stabilization and orientation
  • Virtual reality (VR) and augmented reality (AR) systems
  • Wearable devices for motion tracking
  • Gaming controllers and motion-based input devices

Technical Specifications

The GY-BNO08X is a versatile IMU with the following key specifications:

Parameter Value
Operating Voltage 3.3V - 5V
Communication Interfaces I2C, SPI, UART
Accelerometer Range ±2g, ±4g, ±8g, ±16g
Gyroscope Range ±125°/s, ±250°/s, ±500°/s, ±1000°/s, ±2000°/s
Magnetometer Range ±4900 µT
Orientation Output Quaternion, Euler angles
Operating Temperature -40°C to +85°C
Dimensions 15mm x 15mm

Pin Configuration

The GY-BNO08X module has the following pinout:

Pin Name Description
1 VIN Power input (3.3V - 5V)
2 GND Ground
3 SDA I2C data line
4 SCL I2C clock line
5 PS0 Protocol selection (I2C/SPI/UART)
6 PS1 Protocol selection (I2C/SPI/UART)
7 INT Interrupt output (optional)
8 RST Reset pin (active low)

Usage Instructions

Connecting the GY-BNO08X to an Arduino UNO

The GY-BNO08X can be easily interfaced with an Arduino UNO using the I2C protocol. Follow these steps to connect the module:

  1. Wiring:

    • Connect the VIN pin of the GY-BNO08X to the 5V pin on the Arduino.
    • Connect the GND pin of the GY-BNO08X to the GND pin on the Arduino.
    • Connect the SDA pin of the GY-BNO08X to the A4 pin on the Arduino (I2C data line).
    • Connect the SCL pin of the GY-BNO08X to the A5 pin on the Arduino (I2C clock line).
    • Leave the PS0 and PS1 pins unconnected for I2C mode (default).
  2. Install Required Libraries:

    • Install the Adafruit_BNO08x library from the Arduino Library Manager.
  3. Example Code: Use the following example code to read orientation data from the GY-BNO08X:

    #include <Wire.h>
    #include <Adafruit_BNO08x.h>
    
    // Create an instance of the BNO08x sensor
    Adafruit_BNO08x bno08x;
    
    void setup() {
      Serial.begin(115200); // Initialize serial communication
      while (!Serial) delay(10); // Wait for serial monitor to open
    
      // Initialize the sensor
      if (!bno08x.begin_I2C()) {
        Serial.println("Failed to initialize BNO08x! Check connections.");
        while (1);
      }
      Serial.println("BNO08x initialized successfully!");
    
      // Configure the sensor to output rotation vector data
      if (!bno08x.enableReport(SH2_ROTATION_VECTOR)) {
        Serial.println("Failed to enable rotation vector report!");
        while (1);
      }
    }
    
    void loop() {
      // Check if new data is available
      if (bno08x.getSensorEvent(&sensorEvent)) {
        // Extract quaternion data
        float qw = sensorEvent.un.rotationVector.real;
        float qx = sensorEvent.un.rotationVector.i;
        float qy = sensorEvent.un.rotationVector.j;
        float qz = sensorEvent.un.rotationVector.k;
    
        // Print quaternion data to the serial monitor
        Serial.print("Quaternion: ");
        Serial.print("qw = "); Serial.print(qw, 4);
        Serial.print(", qx = "); Serial.print(qx, 4);
        Serial.print(", qy = "); Serial.print(qy, 4);
        Serial.print(", qz = "); Serial.println(qz, 4);
      }
      delay(100); // Delay to limit output frequency
    }
    

Important Considerations

  • Ensure the VIN voltage matches the module's operating range (3.3V - 5V).
  • Use pull-up resistors (4.7kΩ recommended) on the SDA and SCL lines if not already present.
  • Avoid placing the module near strong magnetic fields or vibrations, as they may affect sensor accuracy.
  • Calibrate the sensor for optimal performance, especially in applications requiring high precision.

Troubleshooting and FAQs

Common Issues

  1. Sensor Not Detected:

    • Ensure proper wiring and check for loose connections.
    • Verify that the I2C address matches the one used in the code (default: 0x4B).
  2. Incorrect or No Data Output:

    • Confirm that the correct sensor report (e.g., rotation vector) is enabled in the code.
    • Check for interference from nearby electronic devices.
  3. Unstable Orientation Data:

    • Perform sensor calibration to improve accuracy.
    • Ensure the module is securely mounted to minimize vibrations.

FAQs

Q: Can the GY-BNO08X be used with a 3.3V microcontroller?
A: Yes, the module supports both 3.3V and 5V logic levels, making it compatible with a wide range of microcontrollers.

Q: How do I switch to SPI or UART communication?
A: Use the PS0 and PS1 pins to configure the desired protocol. Refer to the module's datasheet for the specific pin configurations.

Q: Is the GY-BNO08X suitable for outdoor use?
A: While the sensor operates in a wide temperature range, it is not waterproof. Protect it from moisture and extreme environmental conditions.

By following this documentation, you can effectively integrate the GY-BNO08X IMU into your projects and achieve accurate motion tracking and orientation sensing.