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

How to Use GY-BNO055: Examples, Pinouts, and Specs

Image of GY-BNO055
Cirkit Designer LogoDesign with GY-BNO055 in Cirkit Designer

Introduction

The GY-BNO055 is a 9-axis sensor module that integrates a gyroscope, accelerometer, and magnetometer into a single package. Unlike traditional sensor modules, the GY-BNO055 features an onboard microcontroller that performs sensor fusion, providing orientation data directly in the form of Euler angles or quaternions. This eliminates the need for complex calculations on the host microcontroller, making it an ideal choice for applications requiring precise motion tracking and orientation sensing.

Explore Projects Built with GY-BNO055

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 GY-BNO055 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
Arduino Nano-Based Wearable Gesture Control Interface with Bluetooth Connectivity
Image of spine: A project utilizing GY-BNO055 in a practical application
This is a battery-powered sensor system with Bluetooth communication, featuring an Arduino Nano for control, an MPU-6050 for motion sensing, and an HC-05 module for wireless data transmission. It includes a vibration motor for haptic feedback, a flex resistor as an additional sensor, and a piezo speaker and LED for alerts or status indication.
Cirkit Designer LogoOpen Project in Cirkit Designer
Bluetooth Audio Receiver with Battery-Powered Amplifier and Loudspeakers
Image of speaker bluetooh portable: A project utilizing GY-BNO055 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
Arduino Nano-Based Wireless Joystick and Motion Controller
Image of hand gesture: A project utilizing GY-BNO055 in a practical application
This circuit features an Arduino Nano microcontroller interfaced with an HC-05 Bluetooth module, an MPU-6050 accelerometer/gyroscope, and a KY-023 Dual Axis Joystick Module. The Arduino Nano is powered by a 9V battery through a rocker switch and communicates with the HC-05 for Bluetooth connectivity, reads joystick positions from the KY-023 module via analog inputs, and communicates with the MPU-6050 over I2C to capture motion data. The circuit is likely designed for wireless control and motion sensing applications, such as a remote-controlled robot or a game controller.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with GY-BNO055

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 GY-BNO055 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 spine: A project utilizing GY-BNO055 in a practical application
Arduino Nano-Based Wearable Gesture Control Interface with Bluetooth Connectivity
This is a battery-powered sensor system with Bluetooth communication, featuring an Arduino Nano for control, an MPU-6050 for motion sensing, and an HC-05 module for wireless data transmission. It includes a vibration motor for haptic feedback, a flex resistor as an additional sensor, and a piezo speaker and LED for alerts or status indication.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of speaker bluetooh portable: A project utilizing GY-BNO055 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
Image of hand gesture: A project utilizing GY-BNO055 in a practical application
Arduino Nano-Based Wireless Joystick and Motion Controller
This circuit features an Arduino Nano microcontroller interfaced with an HC-05 Bluetooth module, an MPU-6050 accelerometer/gyroscope, and a KY-023 Dual Axis Joystick Module. The Arduino Nano is powered by a 9V battery through a rocker switch and communicates with the HC-05 for Bluetooth connectivity, reads joystick positions from the KY-023 module via analog inputs, and communicates with the MPU-6050 over I2C to capture motion data. The circuit is likely designed for wireless control and motion sensing applications, such as a remote-controlled robot or a game controller.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications

  • Robotics and autonomous vehicles
  • Virtual reality (VR) and augmented reality (AR) systems
  • Drone stabilization and navigation
  • Wearable devices for motion tracking
  • Industrial automation and control systems

Technical Specifications

The GY-BNO055 module is designed for ease of use and high performance. Below are its key technical details:

General Specifications

Parameter Value
Operating Voltage 3.3V to 5V
Communication Protocols I2C, UART
Gyroscope Range ±125°/s, ±250°/s, ±500°/s,
±1000°/s, ±2000°/s
Accelerometer Range ±2g, ±4g, ±8g, ±16g
Magnetometer Range ±1300 µT
Output Data Euler angles, quaternions,
linear acceleration, gravity
Operating Temperature -40°C to +85°C
Dimensions 21mm x 16mm x 3.8mm

Pin Configuration

The GY-BNO055 module has a standard pinout for easy integration into circuits. Below is the pin configuration:

Pin Name Description
VIN Power input (3.3V to 5V)
GND Ground
SDA I2C data line
SCL I2C clock line
PS0 Protocol selection (I2C or UART)
PS1 Protocol selection (I2C or UART)
RST Reset pin (active low)
INT Interrupt pin (optional, for advanced use)

Usage Instructions

Connecting the GY-BNO055 to an Arduino UNO

The GY-BNO055 can be easily connected to an Arduino UNO using the I2C protocol. Below is a step-by-step guide:

  1. Wiring:

    • Connect the VIN pin of the GY-BNO055 to the 5V pin on the Arduino.
    • Connect the GND pin of the GY-BNO055 to the GND pin on the Arduino.
    • Connect the SDA pin of the GY-BNO055 to the A4 pin on the Arduino.
    • Connect the SCL pin of the GY-BNO055 to the A5 pin on the Arduino.
  2. Install Required Libraries:

    • Install the "Adafruit BNO055" library from the Arduino Library Manager.
  3. Example Code: Use the following code to read orientation data from the GY-BNO055:

    #include <Wire.h>
    #include <Adafruit_Sensor.h>
    #include <Adafruit_BNO055.h>
    
    // Create an instance of the BNO055 sensor
    Adafruit_BNO055 bno = Adafruit_BNO055(55);
    
    void setup() {
      Serial.begin(9600);
      // Initialize the BNO055 sensor
      if (!bno.begin()) {
        Serial.println("Error: BNO055 not detected. Check wiring or I2C address.");
        while (1);
      }
      Serial.println("BNO055 initialized successfully!");
      bno.setExtCrystalUse(true); // Use external crystal for better accuracy
    }
    
    void loop() {
      // Get Euler angles (heading, roll, pitch)
      sensors_event_t event;
      bno.getEvent(&event);
    
      Serial.print("Heading: ");
      Serial.print(event.orientation.x);
      Serial.print("°, Roll: ");
      Serial.print(event.orientation.y);
      Serial.print("°, Pitch: ");
      Serial.print(event.orientation.z);
      Serial.println("°");
    
      delay(500); // Delay for readability
    }
    

Important Considerations

  • Power Supply: Ensure the module is powered within its operating voltage range (3.3V to 5V). Exceeding this range may damage the module.
  • I2C Address: The default I2C address of the GY-BNO055 is 0x28. If the ADR pin is pulled high, the address changes to 0x29.
  • Protocol Selection: Use the PS0 and PS1 pins to select between I2C and UART communication. For I2C, both pins should be set to low (default configuration).
  • External Crystal: Enabling the external crystal oscillator improves accuracy and stability.

Troubleshooting and FAQs

Common Issues

  1. Sensor Not Detected:

    • Cause: Incorrect wiring or I2C address mismatch.
    • Solution: Double-check the connections and ensure the correct I2C address is used in the code.
  2. Inaccurate Orientation Data:

    • Cause: Sensor not calibrated.
    • Solution: Perform calibration by following the Adafruit BNO055 library's calibration example. Move the sensor in all directions to complete the process.
  3. No Output on Serial Monitor:

    • Cause: Incorrect baud rate or serial monitor settings.
    • Solution: Ensure the serial monitor is set to 9600 baud.
  4. Random Freezing or Resetting:

    • Cause: Insufficient power supply or electrical noise.
    • Solution: Use a decoupling capacitor (e.g., 0.1µF) near the module's power pins.

FAQs

  1. Can the GY-BNO055 be used with 3.3V microcontrollers?

    • Yes, the module is compatible with both 3.3V and 5V systems.
  2. What is the maximum update rate of the sensor?

    • The GY-BNO055 can provide data at up to 100Hz.
  3. How do I reset the sensor?

    • Pull the RST pin low for at least 1ms to reset the module.
  4. Can I use the GY-BNO055 with UART instead of I2C?

    • Yes, configure the PS0 and PS1 pins for UART mode and connect the TX and RX pins accordingly.

By following this documentation, you can effectively integrate the GY-BNO055 into your projects and troubleshoot common issues with ease.