BME280 vs BMP280
The BME280 measures humidity and the BMP280 does not; everything else matches: both read 300 to 1100 hPa at ±0.12 hPa relative and ±1.0 hPa absolute, -40 to +85 °C, run on 1.71 V to 3.6 V and answer at 0x76 or 0x77 (Bosch BME280 datasheet rev 1.24, pp. 2, 11, 32; Bosch BMP280 datasheet rev 1.26, pp. 2, 7, 28). Buy the BMP280 when you only need pressure or altitude, the BME280 when you also want relative humidity (±3 %RH, BME280 datasheet, p. 2). The boards look identical, so check the chip ID at register 0xD0: 0x60 is a BME280, 0x58 a BMP280 (BME280 datasheet, p. 27; BMP280 datasheet, p. 24).
Side by side
| BME280 | BMP280 | |
|---|---|---|
| MeasuresBosch BME280 datasheet rev 1.24, p. 2; Bosch BMP280 datasheet rev 1.26, p. 2 | Pressure, temperature, relative humidity | Pressure, temperature |
| Pressure range and relative accuracyBosch BME280 datasheet rev 1.24, p. 11; Bosch BMP280 datasheet rev 1.26, pp. 2, 7 | 300 to 1100 hPa, ±0.12 hPa (about ±1 m) | 300 to 1100 hPa, ±0.12 hPa (about ±1 m) |
| Absolute pressure accuracyBosch BME280 datasheet rev 1.24, p. 11; Bosch BMP280 datasheet rev 1.26, p. 8 | ±1.0 hPa (0 to 65 °C) | ±1.0 hPa (0 to 65 °C) |
| HumidityBosch BME280 datasheet rev 1.24, pp. 2, 9 | 0 to 100 %RH, ±3 %RH (20 to 80 %RH at 25 °C), 1 s response | None |
| TemperatureBosch BME280 datasheet rev 1.24, p. 12; Bosch BMP280 datasheet rev 1.26, pp. 2, 8 | -40 to +85 °C, ±0.5 °C at 25 °C | -40 to +85 °C, ±0.5 °C at 25 °C |
| Chip supplyBosch BME280 datasheet rev 1.24, p. 2; Bosch BMP280 datasheet rev 1.26, pp. 7, 9 | 1.71 V to 3.6 V | 1.71 V to 3.6 V (4.25 V absolute maximum) |
| Current at 1 HzBosch BME280 datasheet rev 1.24, p. 2; Bosch BMP280 datasheet rev 1.26, p. 7 | 3.6 µA (all three channels), 0.1 µA sleep | 2.8 µA (forced mode, lowest oversampling), 0.1 µA sleep |
| InterfacesBosch BME280 datasheet rev 1.24, p. 2; Bosch BMP280 datasheet rev 1.26, p. 2 | I2C up to 3.4 MHz, SPI up to 10 MHz | I2C up to 3.4 MHz, SPI up to 10 MHz |
| I2C addressBosch BME280 datasheet rev 1.24, p. 32; Bosch BMP280 datasheet rev 1.26, p. 28 | 0x76 (SDO to GND) or 0x77 (SDO to VDDIO) | 0x76 (SDO to GND) or 0x77 (SDO to VDDIO) |
| Chip ID (register 0xD0)Bosch BME280 datasheet rev 1.24, p. 27; Bosch BMP280 datasheet rev 1.26, p. 24 | 0x60 | 0x58 |
Which one to pick
- Weather stations and room monitors that need humidity as well as pressure and temperature, from one chip on one I2C address.
- Greenhouse, terrarium or bathroom projects where relative humidity (±3 %RH, Bosch BME280 datasheet, p. 2) drives a fan or a humidifier.
- When you want a 5 V-ready breakout: the GY-BME280-5V version carries a 3.3 V regulator, so its VCC takes 3.3 V or 5 V; the 3.3 V version has none.
- Altimeters, drones and floor detection, where pressure is all you need: its ±0.12 hPa relative accuracy equals about ±1 m of height (Bosch BMP280 datasheet, p. 2).
- Battery nodes that sample pressure once a second: 2.8 µA at 1 Hz in forced mode (p. 7).
- The lowest-cost Bosch barometer, when humidity would go unused.
Swapping one for the other
What changes in the wiring and the code.
- Change the library: Adafruit_BME280 for the BME280, Adafruit_BMP280 for the BMP280. Each library checks the chip ID (0x60 or 0x58) and refuses the other chip (BME280 datasheet, p. 27; BMP280 datasheet, p. 24).
- Remove readHumidity() when moving to a BMP280; pressure, temperature and altitude calls stay the same.
- The address rules are identical, 0x76 with SDO low and 0x77 with SDO high (BME280 p. 32; BMP280 p. 28). Both common modules pull SDO low, so pass 0x76 to begin(); Adafruit_BMP280's bare begin() looks at 0x77.
- Check the supply before wiring 5 V. Only the 5 V versions of these boards (GY-BME280-5V) have a regulator and take 5 V on VCC; the 3.3 V versions, including the usual purple GY-BMP280, have none, so its VCC must be 3.3 V, since the chip's absolute maximum is 4.25 V (BMP280 datasheet, p. 9).
- The 6-pin 3.3 V boards share one header (VCC, GND, SCL, SDA, CSB, SDO), and on both chips CSB must stay high for I2C: one low pulse switches the chip to SPI until power is cycled (BME280 p. 32; BMP280 p. 27).
BME280 or BMP280: questions
How do I tell a BME280 from a BMP280?
Read register 0xD0. A BME280 returns 0x60 (Bosch BME280 datasheet rev 1.24, p. 27) and a BMP280 returns 0x58 (Bosch BMP280 datasheet rev 1.26, p. 24). The boards and the chips look almost the same, and BMP280s are sometimes sold as BME280s, so the chip ID is the reliable test.
Why does my BME280 read no humidity?
It is most likely a BMP280, which has no humidity sensor. A BME280 library refuses it on the chip ID, or humidity reads zero. Print the ID from register 0xD0: 0x58 means BMP280 (BMP280 datasheet, p. 24).
Is the BME280 better than the BMP280 for altitude?
No, they are equal on pressure: 300 to 1100 hPa, ±0.12 hPa relative (about ±1 m) and ±1.0 hPa absolute on both (BME280 datasheet, p. 11; BMP280 datasheet, pp. 2, 7, 8). For an altimeter alone, the BMP280 does the same job for less.
Can I run either sensor from 5 V?
Not the chips: both are rated 1.71 V to 3.6 V (BME280 datasheet, p. 2; BMP280 datasheet, p. 7). The GY-BME280-5V module adds a 3.3 V regulator and takes 5 V on VCC. The 3.3 V versions, including the common GY-BMP280 module, have no regulator and must be powered from 3.3 V.
Can a BME280 and a BMP280 share one I2C bus?
Yes, if they sit at different addresses: tie one board's SDO low for 0x76 and the other's high for 0x77 (BME280 datasheet, p. 32; BMP280 datasheet, p. 28).
The two references
Checked on 2026-10-29 against 2 sources, the makers’ datasheets first.
This comparison as plain Markdown. /compare/bme280-vs-bmp280.md

