

The Adafruit BNO055 and BMP280 BFF (Manufacturer Part ID: 5937) is a compact breakout board that integrates two powerful sensors:
This combination makes the board an excellent choice for applications such as robotics, drones, wearable devices, and weather stations.








| Parameter | BNO055 | BMP280 |
|---|---|---|
| Sensor Type | 9-DOF IMU (Accelerometer, Gyroscope, Magnetometer) | Barometric Pressure and Temperature Sensor |
| Operating Voltage | 3.3V or 5V | 3.3V or 5V |
| Communication Interface | I²C or UART | I²C |
| Pressure Measurement Range | N/A | 300 hPa to 1100 hPa |
| Temperature Measurement Range | N/A | -40°C to +85°C |
| Orientation Accuracy | ±2.5° | N/A |
| Pressure Accuracy | N/A | ±1 hPa |
| Temperature Accuracy | N/A | ±1°C |
| Dimensions | 25mm x 25mm | Integrated on the same board |
| Pin | Name | Description |
|---|---|---|
| 1 | VIN | Power input (3.3V or 5V). Powers both the BNO055 and BMP280 sensors. |
| 2 | GND | Ground connection. |
| 3 | SDA | I²C data line. Used for communication with both sensors. |
| 4 | SCL | I²C clock line. Used for communication with both sensors. |
| 5 | INT | Interrupt pin for the BNO055 sensor. Can be used for event-driven applications. |
| 6 | RST | Reset pin for the BNO055 sensor. |
Powering the Board:
I²C Communication:
Optional Connections:
Pull-Up Resistors:
0x28, and for the BMP280, it is 0x76. Ensure there are no address conflicts in your I²C bus. Below is an example code snippet to read data from both the BNO055 and BMP280 sensors using the Adafruit libraries.
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BNO055.h>
#include <Adafruit_BMP280.h>
// Create sensor objects
Adafruit_BNO055 bno = Adafruit_BNO055(55, 0x28); // BNO055 with I2C address 0x28
Adafruit_BMP280 bmp; // BMP280 with default I2C address 0x76
void setup() {
Serial.begin(9600);
while (!Serial); // Wait for Serial Monitor to open
// Initialize BNO055
if (!bno.begin()) {
Serial.println("Error: BNO055 not detected. Check wiring!");
while (1);
}
Serial.println("BNO055 initialized!");
// Initialize BMP280
if (!bmp.begin(0x76)) {
Serial.println("Error: BMP280 not detected. Check wiring!");
while (1);
}
Serial.println("BMP280 initialized!");
}
void loop() {
// Read orientation data from BNO055
sensors_event_t event;
bno.getEvent(&event);
Serial.print("Orientation: ");
Serial.print("X: "); Serial.print(event.orientation.x);
Serial.print(" Y: "); Serial.print(event.orientation.y);
Serial.print(" Z: "); Serial.println(event.orientation.z);
// Read pressure and temperature from BMP280
Serial.print("Pressure: ");
Serial.print(bmp.readPressure());
Serial.println(" Pa");
Serial.print("Temperature: ");
Serial.print(bmp.readTemperature());
Serial.println(" °C");
delay(1000); // Wait 1 second before next reading
}
Sensors Not Detected:
0x28 for BNO055, 0x76 for BMP280) are correct. Incorrect Orientation Data:
Inconsistent Pressure or Temperature Readings:
Can I use this board with a 5V microcontroller?
Yes, the board is compatible with both 3.3V and 5V systems.
Do I need separate libraries for the BNO055 and BMP280?
Yes, you will need the Adafruit BNO055 and Adafruit BMP280 libraries, both available in the Arduino Library Manager.
How do I reset the BNO055 sensor?
You can reset the sensor by toggling the RST pin or using the bno.begin() function in your code.
What is the maximum I²C bus speed supported?
The sensors support standard (100 kHz) and fast (400 kHz) I²C speeds.
This documentation provides a comprehensive guide to using the Adafruit BNO055 and BMP280 BFF breakout board. For further assistance, refer to the official Adafruit documentation and forums.