BMP280 Pinout, Specifications & Applications

BMP280 is a two-in-one temperature and pressure sensor module that can be easily interfaced with microcontrollers. It is an upgrade from the BMP180 by Bosch Sensortech. As the module comes in a breakout board format, experiments can be done faster on a breadboard.

BMP280 Pinout

Image: BMP280 Pinout

BMP280 Pinout Details

VCC3.3V supply pin.
SCLSerial Clock Pin for I2C and SPI communication.
SDASerial Data Pin for I2C and SPI communication.
CSBChip Select. Also used for SPI communication.
SDOUsed to set device address and for SPI communication.
Table: BMP280 Pinout Description

BMP280 Breakout Board Component Details

There are a few different components on the BMP280 breakout board apart from the BMP280 sensor chip. Two capacitors are used as smoothing capacitors to provide a stable DC voltage to the pins of BMP280. Three 10K resistors pull the pins SCL, SDA, and CSB to 3.3V while one 10K resistor pulls the SDO pin to the ground.

BMP280 Communication Interface

The CSB pin sets the communication interface to I2C or SPI in BMP280. When the CSB pin is pulled high, the module communicates using I2C. When the pin is low, it communicates using SPI. A pull-up resistor in the BMP280 module pulls the CSB pin high by default. So we can leave this pin unconnected if we want to use I2C for interfacing. BMP280 only acts as a slave device in both communication interfaces.

BMP280 has a 7-bit device address which can be configured using the SDO pin. When the pin is connected to the ground, the device has an address of 1110110 (0x76). This is the default mode in the BMP280 module which is set by a resistor onboard the module. Connecting the SDO pin to 3.3V will set the device address to 1110111 (0x77).

BMP280 Specifications

  • Supply Voltage: 1.71V to 3.6V
  • Pin Pitch: 2.54mm.
  • Operating Temperature Range: -40°C to 85°C.
  • Operating Pressure Range: 300hPa to 1100hPa.
  • Footprint: (2.0 × 2.5 )mm.

Temperature sensor specifications:

  • The temperature data can be oversampled up to 16 times.
  • Temperature measurement can be enabled or disabled via code.
  • Maximum temperature resolution: 0.0003 °C while oversampling is done 16 times.
  • IIR(Infinite Impulse Response) filter is available for filtering temperature data.

Humidity sensor specifications:

The BMP280 Piezo-resistive pressure sensing element.

  • Pressure measurement can be enabled or disabled via code.
  • Oversampling and IIR filter is available for pressure measurements.
  • Pressure Resolution: 0.16Pa.
  • Relative Accuracy at 25 °C: ±0.12 hPa

BMP280 Features

The amount of oversampling of temperature and pressure data can be set using code. IIR filter in the sensor helps in filtering out minor disturbances in the sensed values. The filter coefficient of the IIR filter can be set using the appropriate code. Usually, functions in the BMP280 library take care of oversampling and filter coefficients. RMS noise in sensor readings is inversely proportional to the IIR filter coefficient. Also, the more the oversampling, the less noise.

BMP280 Power Modes

There are 3 power modes in BMP280: sleep mode, normal mode, and forced mode. In sleep mode, the sensor does not perform any operations. Minimum power consumption occurs in this mode. In normal mode, the sensor keeps on alternating between active and standby states. Normal mode should be used when using the IIR filter. In forced mode, the device makes one measurement and then goes to sleep mode.

BMP280 Use Cases

The datasheet of BMP280 specifies various use cases to use the sensor in different environments. These can be set while programming.

Use CaseModeOversampling SettingPressure OversamplingTemperature OversamplingIIR Filter Coefficient
Handheld device
(e.g. mobile device)
Handheld device
(lowest power consumption)
change detection
Drop detectionNormalLow
Indoor navigation(All parameters in maximum)NormalUltra-high
Table: BMP280 Use Cases

How To Use BMP280?

We can use either I2C or SPI communication to read BMP280 using a microcontroller. Read our guide on using BMP280 with Raspberry Pi Pico to know more about interfacing with the sensor. Below is a brief overview of the circuit diagram and MicroPython code.

BMP280 connection with RP2040

raspberry pi pico bmp280 wiring

Code To Read BMP280

We will need to install a MicroPython library for BMP280 for interfacing. Detailed instructions can be found in our article. The following code reads the sensor values.

from machine import Pin,I2C
from bmp280 import *
import time

bus = I2C(0,scl=Pin(1),sda=Pin(0),freq=200000)
bmp = BMP280(bus)


while True:
    print("Temperature: {} C".format(temperature))
    print("Pressure: {} Pa, {} bar, {} mmHg".format(pressure,p_bar,p_mmHg))
    time.sleep(1)Code language: Python (python)

BMP280 Applications

  • Navigation Systems.
  • Weather stations.
  • Altitude detection in drones.
  • Apartment floor detection.

BMP280 Alternatives

  • BME280-Barometric pressure, humidity & temperature sensor.
  • BM180- Barometric pressure & temperature sensor.
  • DHT22 and DHT11 sensor modules.

BME280 is a multipurpose environmental sensor. Read our article on pinout and specifications of BME280 or read our BME280 interafcing guide with Raspberry Pi Pico to know more about using this sensor.

I hope this article on BMP280 pinout and specifications was helpful. To know more, you can refer to its datasheet.





Leave a Reply

Your email address will not be published. Required fields are marked *