RegForge

Comparisons / BME280 vs BMP280

BME280 vs BMP280

Register-level differences, generated from both maps.

They cannot share an I²C bus by default. Both answer on 0x76, 0x77. Re-strap one, use a multiplexer, or put them on separate buses.
BME280BMP280
ManufacturerBosch SensortecBosch Sensortec
What it isCombined humidity, pressure and temperature sensorDigital pressure and temperature sensor
Registers1411
BusesI2C, SPII2C, SPI
I²C addresses0x76, 0x770x76, 0x77
Shared registers1111
Unique registers30

Same name, different behaviour

These registers exist on both parts but are not interchangeable. This is where a driver ported between them breaks quietly.

RegisterBME280BMP280
CHIP_ID0xD0 · 8-bit · reset 0x600xD0 · 8-bit · reset 0x58

Only on the BME280

AddrRegisterDescription
0xF2CTRL_HUMHumidity acquisition options. Changes take effect only after a write to CTRL_MEAS.
0xFEHUM_LSBRaw humidity, bits [7:0]
0xFDHUM_MSBRaw humidity, bits [15:8]

Full BME280 register map

Get either as C

regforge gen BME280 --out ./src --driver --tests
regforge gen BMP280 --out ./src --driver --tests