← All parts
BMP280 Barometric Pressure
BMP280
Boschsensor environment
The Bosch BMP280 is a compact digital barometric pressure sensor module. It measures absolute pressure and temperature, offering high accuracy and low power consumption for mobile and embedded applications. It supports I2C and SPI interfaces.
In stock
Specifications
16- Pressure Range
- 300 to 1100 hPa
- Operating Temperature Range
- -40 to +85 °C
- Operating Voltage Vdd
- 1.71 to 3.6 V
- Operating Voltage Vddio
- 1.2 to 3.6 V
- Interface
- I2C, SPI
- Current Consumption Sleep
- 0.1 to 0.3 µA
- Current Consumption Forced Mode 1hz
- 2.7 µA
- Relative Accuracy Pressure
- ±0.12 hPa
- Absolute Accuracy Pressure
- ±1 hPa
- Resolution Pressure Ultra High
- 0.0016 hPa
- Resolution Temperature
- 0.01 °C
- Package
- 8-pin LGA
- I2c Address
- 0x76 or 0x77
- I2c Speed
- up to 3.4 MHz
- Spi Speed
- up to 10 MHz
- Start Up Time
- 2 ms
Pinout
7| Pin | Name | Functions | Notes |
|---|---|---|---|
| — | VDD | POWER | Main power supply for analog and digital blocks. |
| — | VDDIO | POWER | Interface supply voltage. |
| — | SCK | I2CSPI | Serial clock (SCL for I2C). |
| — | SDI | I2CSPI | Serial data input (SDA for I2C). Bi-directional in 3-wire SPI. |
| — | SDO | I2CSPI | Slave address LSB for I2C. Hi-Z in 3-wire SPI. |
| — | CSB | I2CSPI | Chip select, active low. Must be connected to VDDIO for I2C. |
| — | GND | GND | Ground. |
Interactive pinout
Highlight:
BMP280
Click a pin to copy its name · tap a tag above to spotlight a bus.
Logic level & voltage
VDD is 1.71-3.6 V and VDDIO 1.2-3.6 V (per the datasheet specs) — a 3.3 V pressure/temperature sensor on I2C or SPI (no humidity, unlike the BME280).
Typical uses
- Barometric pressure and altitude sensing
- Weather stations
- Drone/flight altitude reference
Wiring notes & gotchas
- Not 5 V-tolerant — level-shift with 5 V MCUs.
- I2C address is 0x76 or 0x77 via the SDO pin.
- Add SDA/SCL pull-ups if your module lacks them.
Commonly used with
3Starter code
Community starter examples — minimal, unofficial, and provided to get you wiring fast. Verify against the manufacturer datasheet before relying on them.
Arduino (C++)
Arduino library: Adafruit BMP280 Library
arduino
// BMP280 pressure + temperature (I2C) — community starter example
#include <Wire.h>
#include <Adafruit_BMP280.h>
Adafruit_BMP280 bmp; // I2C
void setup() {
Serial.begin(115200);
Wire.begin();
if (!bmp.begin(0x76)) { // many modules are 0x76; Adafruit is 0x77
Serial.println("BMP280 not found");
while (1) delay(10);
}
}
void loop() {
Serial.print("T="); Serial.print(bmp.readTemperature()); Serial.print(" C ");
Serial.print("P="); Serial.print(bmp.readPressure() / 100.0F); Serial.println(" hPa");
delay(1000);
}MicroPython
MicroPython library: bmp280 (robert-hh/BME280-style)
python
# BMP280 (ESP32) — community starter example
# lib: bmp280.py (e.g. dafvid/micropython-bmp280)
from machine import Pin, I2C
from bmp280 import BMP280
import time
i2c = I2C(0, scl=Pin(22), sda=Pin(21))
bmp = BMP280(i2c)
while True:
print(bmp.temperature, "C", bmp.pressure, "Pa")
time.sleep(1)Wiring
| Pin | Arduino Uno R3 | ESP32 DevKitC (WROOM-32) | Notes |
|---|---|---|---|
| VCC | +5V | 3V3 | 1.71-3.6 V chip; breakouts add a regulator (3-5 V) |
| GND | GND | GND | |
| SCK | A5/SCL | GPIO22 | I2C clock |
| SDI | A4/SDA | GPIO21 | I2C data |