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

- 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.

- 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
| Feature | Specification |
|---|---|
| Brand | Teyleten Robot |
| Model | BNO055 |
| Material | Copper (PCB traces/components) |
| Maximum Supply Voltage | 5V DC |
| Measurement Accuracy | ±1.5% (General) |
| Mounting Type | Surface Mount |
| Output Type | Push-Pull |
| Specific Uses | Attitude sensing, smartphones, wearable devices |
| Upper Temperature Rating | 104 °F (40 °C) |
| Module Dimensions | 12mm x 20mm |
| Communication Protocols | I2C, UART |
8. Warranty and Support
For warranty information or technical support, please refer to the official Teyleten Robot website or contact your retailer.