Teyleten Robot BNO055

Teyleten Robot BNO055 9-Axis Attitude Sensor Module User Manual

Model: BNO055

1. Introduction

The Teyleten Robot BNO055 is a 9-axis attitude sensor module designed for precise motion and orientation sensing. It integrates a 3-axis 12-bit accelerometer, a 3-axis geomagnetic sensor, and a 3-axis 16-bit gyroscope. A built-in Atmel 32-bit microcontroller handles sensor fusion, providing calibrated sensor data and advanced orientation outputs. This module is suitable for various applications, including smartphones, wearable devices, and robotics.

This manual provides essential information for the proper setup, operation, and troubleshooting of your BNO055 sensor module.

2. Product Features

  • Integrated 3-axis 12-bit accelerometer, 3-axis geomagnetic sensor, and 3-axis 16-bit gyroscope.
  • Built-in Atmel 32-bit MCU for sensor fusion and data processing.
  • Supports standard I2C and UART communication protocols.
  • Compact module size: 12mm x 20mm.
  • Operating voltage range: 3V to 5V (with internal low differential voltage regulator).
  • Can function as a plug-and-play sensor hub solution for Windows 8.0/8.1 operating systems via HID-I2C protocol.

3. Setup and Connection

Proper connection and configuration are crucial for the BNO055 module's functionality.

3.1 Pinout Diagram

Teyleten Robot BNO055 module bottom view with pin labels
Figure 1: Bottom view of the BNO055 module showing pin labels (VIN, GND, SCL/RX, SDA/TX, AD0, INT, BOOT, REST).
  • VIN: Power supply input (3V-5V).
  • GND: Ground connection.
  • SCL/RX: I2C Clock Line / UART Receive.
  • SDA/TX: I2C Data Line / UART Transmit.
  • AD0: I2C Address Select.
  • INT: Interrupt Pin.
  • BOOT: Boot Mode Select.
  • REST: Reset Pin.

3.2 Power Supply

The module operates with a power supply voltage between 3V and 5V. An internal low differential voltage regulator is present, allowing direct connection to a 5V source. However, the logic levels for SCL and SDA are 3.3V. If connecting to a 5V microcontroller (e.g., some Arduino models), a bi-directional logic level shifter is recommended for reliable communication.

3.3 Communication Mode Configuration (Solder Jumpers)

The BNO055 module supports both I2C and UART communication protocols. The mode is selected by configuring solder jumpers on the board. These jumpers control the PS0 and PS1 pins.

Teyleten Robot BNO055 module top view showing components and solder pads
Figure 2: Top view of the BNO055 module, highlighting the location of solder pads for configuration.
  • For I2C Mode: Solder both solder jumpers (PS0 and PS1) to pull them LOW. By default, these pins are pulled HIGH, which can place the BNO055 into a "reserved" mode where it will not function correctly.
  • I2C Address: The default I2C address is 0x29 (when the AD0 pin is pulled HIGH by default). If you pull the AD0 pin LOW, the address becomes 0x28.
  • For UART Mode: Solder only the PS0 jumper (pulling PS0 LOW), and leave PS1 open.
  • UART Settings: Use 115200 baud rate, N81 (No parity, 8 data bits, 1 stop bit).

Important: Ensure solder jumpers are correctly configured for your desired communication mode before attempting to use the module.

3.4 Initial Boot-up

After power-on-reset, allow approximately 300ms for the BNO055 to boot up before initiating communication.

4. Operation

The BNO055 provides various data outputs, including raw sensor data (accelerometer, gyroscope, magnetometer) and fused sensor data (e.g., quaternions, Euler angles, linear acceleration, gravity vector).

4.1 Sensor Fusion Modes

The BNO055 supports several operating modes, from raw sensor data output to fully fused 9-DOF (Degrees of Freedom) orientation data. Refer to the Bosch BNO055 datasheet for detailed information on configuring these modes. Libraries like the Adafruit BNO055 library can simplify interaction with the sensor and access to its various data outputs.

4.2 Calibration

For accurate geomagnetic and orientation readings, the BNO055 requires calibration. This typically involves a "compass dance" where the sensor is rotated slowly around all three axes. The sensor's internal firmware handles the calibration process, and calibration status can be read from specific registers. It is recommended to save calibration offsets if your application requires consistent accuracy across power cycles.

Note: The sensor's magnetometer can be affected by strong magnetic fields or high current wires. Keep the module away from such interference for optimal performance.

5. Maintenance

The BNO055 module is a sensitive electronic component.

  • Avoid exposing the module to excessive mechanical stress, moisture, or extreme temperatures.
  • Handle the module by its edges to prevent damage to components or solder joints.
  • Ensure proper electrostatic discharge (ESD) precautions are taken when handling.

6. Troubleshooting

If you encounter issues with your BNO055 module, consider the following troubleshooting steps:

  • Module Not Detected (I2C/UART):
    • Verify power supply (VIN) is within 3V-5V and GND is correctly connected.
    • Check solder jumper configuration for PS0 and PS1. For I2C, both must be soldered LOW. For UART, only PS0 soldered LOW.
    • Ensure correct I2C address (0x29 default, 0x28 if AD0 is pulled LOW).
    • If using a 5V microcontroller, confirm the use of a bi-directional logic level shifter for SCL/SDA lines.
    • Allow 300ms boot-up time after power-on before attempting communication.
    • For UART, confirm baud rate is 115200 N81.
    • Inspect all solder connections for continuity and shorts.
  • Inaccurate Readings / Drift:
    • Perform a full calibration ("compass dance") as described in Section 4.2.
    • Ensure the module is not near strong magnetic fields, motors, or high current wires that could interfere with the magnetometer.
    • Consider the impact of the external 32kHz crystal. Some modules may have a flaky crystal; if experiencing issues, avoid setting the clock to external (register 0x3F, write 0x80) and rely on the internal oscillator.
  • Intermittent Communication:
    • Check cable lengths and quality, especially for I2C.
    • Ensure pull-up resistors are correctly implemented for I2C if not already present on your microcontroller board.

7. Specifications

FeatureSpecification
BrandTeyleten Robot
ModelBNO055
MaterialCopper (PCB traces/components)
Maximum Supply Voltage5V DC
Measurement Accuracy±1.5% (General)
Mounting TypeSurface Mount
Output TypePush-Pull
Specific UsesAttitude sensing, smartphones, wearable devices
Upper Temperature Rating104 °F (40 °C)
Module Dimensions12mm x 20mm
Communication ProtocolsI2C, UART

8. Warranty and Support

For warranty information or technical support, please refer to the official Teyleten Robot website or contact your retailer.

© 2023 Teyleten Robot. All rights reserved.

Ask a question about this manual

Ask about setup, troubleshooting, compatibility, parts, safety, or missing instructions. Manuals+ will review the question and use this page’s manual context to help answer it.