Overview

The BMP280 is an absolute barometric pressure sensor designed specifically for mobile applications by Bosch Sensortec. It succeeds the BMP180 and offers higher accuracy, lower power consumption, and smaller footprint dimensions (2.0 mm × 2.5 mm × 0.95 mm LGA package).

The sensor integrates piezo-resistive pressure and temperature sensing elements, an analog-to-digital converter, and digital control circuitry supporting both I2C and 3-/4-wire SPI serial interfaces.

Quick reference

Operating voltage (VDD)1.71 V – 3.6 V
Pressure range300 hPa – 1100 hPa (+9000 m to -500 m relative to sea level)
Temperature range-40 °C to +85 °C
Absolute pressure accuracy±1.0 hPa (0 °C to 65 °C)
Relative pressure accuracy±0.12 hPa (equivalent to ±1 m altitude)
I2C addresses0x76 (SDO to GND) / 0x77 (SDO to VDD)
Current draw2.7 µA @ 1 Hz sampling / 0.1 µA sleep mode

Pinout

Standard 6-Pin Breakout Module

PinNameTypeDescription
1VCCPowerSupply voltage (1.8 V to 3.3 V; 5V if module has onboard 3.3V LDO)
2GNDPowerGround (0 V)
3SCL / SCKDigital InputI2C Clock / SPI Serial Clock
4SDA / SDIDigital I/OI2C Data / SPI Serial Data In
5CSBDigital InputChip Select (High = I2C mode; Low = SPI mode)
6SDODigital OutputI2C Address Select (GND: 0x76, VDD: 0x77) / SPI Data Out

Specifications

ParameterSymbolMinTypMaxUnitConditions
Operating VoltageVDD1.711.8 / 3.33.6VIC supply
Peak CurrentIIDD7201120µADuring pressure measurement
Standby CurrentIDDSB0.20.5µAStandby mode
Temperature ResolutionT_res0.01°C16–20 bit output
Pressure ResolutionP_res0.016hPaUltra-high resolution mode

Register map

AddressRegisterAccessResetDescription
0x880xA1calib00..calib25RFactoryTrimming parameter coefficients (dig_T1..T3,dig_P1..P9dig\_T_1..T_3, dig\_P_1..P_9)
0xD0idR0x58Chip ID register (reads 0x58 for BMP280)
0xE0resetW0x00Write 0xB6 to initiate soft reset
0xF3statusR0x00Bit 3: measuring, Bit 0: im_update
0xF4ctrl_measR/W0x00Temp/Pressure oversampling & power mode
0xF5configR/W0x00Standby time, IIR filter coefficient, 3-wire SPI
0xF70xF9press_msb..xlsbR0x8000020-bit raw pressure data
0xFA0xFCtemp_msb..xlsbR0x8000020-bit raw temperature data

Wiring (I2C Mode)

BMP280 BreakoutMicrocontroller (Arduino / ESP32)
VCC3.3 V
GNDGND
SCLI2C SCL
SDAI2C SDA
CSBVCC (Pulls HIGH to select I2C mode)
SDOGND (Selects default address 0x76)

Common mistakes

  • Confusing BMP280 with BME280: The BMP280 measures Pressure and Temperature only. The BME280 adds Humidity sensing (chip ID 0x60). Drivers expecting humidity reading will fail or return zero on BMP280 (0x58).
  • Ignoring calibration registers: Raw 20-bit pressure and temperature values from registers 0xF70xFC must be processed using the factory calibration coefficients stored in registers 0x880xA1 via Bosch's polynomial compensation math.
  • Powering 3.3V-only breakouts with 5V: Unregulated BMP280 modules lacking a 3.3V LDO will be damaged if connected directly to a 5V supply pin.

Notes

  • Altitude calculation: Relative altitude can be estimated using the hypsometric formula:
h=44330×(1(PP0)15.255)h = 44330 \times \left(1 - \left(\frac{P}{P_0}\right)^{\frac{1}{5.255}}\right)

where P0P_0 is sea level pressure (1013.25 hPa).

Assets & downloads