Skip to content

BMP280 Barometric Pressure & Temperature Sensor

Bosch digital atmospheric pressure and temperature sensor

BMP280 pressure sensor module

I2C address: 0x76

The BMP280 is a precision digital barometric pressure and temperature sensor from Bosch. It is widely used for altitude estimation, weather monitoring, and indoor navigation.

The full BMP280 datasheet is available here.

RegisterAddressDescription
calib00–calib250x880xA1Factory calibration coefficients (read-only)
id0xD0Chip ID — always 0x60
reset0xE0Write 0xB6 to soft-reset
status0xF3Measuring / im_update flags
ctrl_meas0xF4Oversampling settings + power mode
config0xF5Standby time, IIR filter, SPI mode
press_msb/lsb/xlsb0xF70xF9Raw pressure output (20-bit)
temp_msb/lsb/xlsb0xFA0xFCRaw temperature output (20-bit)
Mode (ctrl_meas bits [1:0])Description
00Sleep — no measurements
01 / 10Forced — one measurement then back to sleep
11Normal — continuous measurements at configured standby rate

The BMP280 stores unique factory calibration coefficients at power-on. All raw ADC values must be passed through the Bosch compensation formulas (detailed in datasheet §4.2.3) to obtain physical units:

  • Temperature: returns value in 0.01 °C units
  • Pressure: returns value in Pa (divide by 256 for float Pa)

The simulator applies these compensation formulas internally and exposes the calibrated values directly.

ControlRangeDescription
Temperature slider−40 to +85 °CSets ambient temperature
Pressure slider300 to 1100 hPaSets ambient pressure

Thermal lag (τ ≈ 2 s) and Gaussian measurement noise matching the datasheet specs are applied to every reading.

Altitude can be derived from pressure using the barometric formula:

altitude = 44330 × (1 − (P / P0)^(1/5.255))

Where P0 is sea-level reference pressure (typically 1013.25 hPa).

  • IIR filter coefficients are stored but do not affect the simulated output
  • Standby time in normal mode is not simulated — data updates on each read