A lightweight and minimal Arduino library for the Bosch BNO055 9-DOF IMU sensor.
Supports initialization, raw data reading (Accel / Gyro / Mag / Linear / Gravity), Euler angles, quaternions, calibration helpers, and axis remapping.
Designed for low flash usage — compatible with AVR, ESP32, ESP8266, RP2040, STM32, and other Arduino platforms.
- I2C communication with auto-detection at address
0x28or0x29 - Works on standard and custom I2C pins (for ESP32, STM32, etc.)
- Orientation data:
- Euler angles (heading, roll, pitch)
- Quaternion (w, x, y, z)
- Raw data reading:
- Accelerometer
- Gyroscope
- Magnetometer
- Linear acceleration
- Gravity vector
- Sensor configuration:
- Operation modes
- Power modes
- Bandwidth & range (per sensor)
- Axis remapping
- Calibration helpers and sensor offset saving/restoring
-
Open the Arduino IDE
-
Go to:
Sketch > Include Library > Manage Libraries…(IDE 1.x), or- Use the 📚 Library Manager in the sidebar (IDE 2.x)
-
In the search bar, type: -7Semi BNO055
-
Click the Install button
Once installed, include the library in your sketch:
#include <7semi_bno055.h>
| BNO055 Pin | Arduino Pin |
|---|---|
| VIN | 3.3V or 5V |
| GND | GND |
| SDA | A4 (Uno) or custom SDA |
| SCL | A5 (Uno) or custom SCL |
Robotics and drones
Motion tracking and stabilization
AR/VR and head-tracking
Inertial navigation
Wearables and IoT motion sensing