← 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
PinNameFunctionsNotes
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

3

Starter 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

PinArduino Uno R3ESP32 DevKitC (WROOM-32)Notes
VCC+5V3V31.71-3.6 V chip; breakouts add a regulator (3-5 V)
GNDGNDGND
SCKA5/SCLGPIO22I2C clock
SDIA4/SDAGPIO21I2C data

Related parts

6