BME280 Pinout

The BME280 is a digital environmental sensor that measures temperature, humidity, and barometric pressure simultaneously — three parameters, one IC, one I²C or SPI connection. It is factory-calibrated, runs on as little as 1.71V, and draws under 4µA when sampling all three sensors at 1Hz, making it as practical in a coin-cell-powered weather node as it is in a smartphone or smartwatch.

For projects that also need altitude estimation, the pressure sensor is precise enough to detect a floor change in a building.

What is BME280?

BME280 sensor

The BME280 is a combined digital humidity, pressure, and temperature sensor based on proven sensing principles. It provides both SPI and I²C interfaces and can be supplied using 1.71V to 3.6V for the sensor supply and 1.2V to 3.6V for the interface supply.

What makes it stand out from simpler sensors is the level of configurability packed into a device this small. Users can select from a variety of oversampling modes, filter modes, and data rates to tailor the tradeoff between noise, response time, and current consumption to their specific application. A weather station polling once per minute has very different requirements from a gaming drone needing fast altitude updates — the BME280 handles both.

Watch out for fakes: Some modules sold as BME280 are actually BMP280, which lacks the humidity sensor entirely. The chip ID register can confirm which sensor you have — 0x60 is a genuine BME280, while 0x56–0x58 indicates a BMP280.

BME280 overview

ParameterValue
Sensor TypeDigital Temperature, Humidity & Pressure Sensor
Operating Voltage (VDD)1.71V – 3.6V
Interface Voltage (VDDIO)1.2V – 3.6V
Current Consumption3.6µA @ 1Hz (all sensors), 0.1µA (sleep)
Temperature Range−40°C to +85°C
Humidity Range0% to 100% RH
Pressure Range300 to 1100 hPa
Output TypeDigital
CommunicationI²C (up to 3.4MHz) / SPI (up to 10MHz)
I²C Address0x76 (SDO → GND) or 0x77 (SDO → VDDIO)
Package8-pin LGA, 2.5 × 2.5 × 0.93mm
Compatible BoardsArduino Uno, ESP32, Raspberry Pi

Pinout

Breakout module pinout (typical 6-pin)

Breakout module pinout (typical 6-pin)

PinI²CSPI
VINModule supply (1.71 to 3.6 V)Module supply (1.2V – 3.6V)
GNDGroundGround
SCLI²C clockSPI clock (SCK)
SDAI²C dataSPI data in (MOSI)
CSBConnect to VCC (disabled)Chip select (CS)
SDOI²C address select (0x76/0x77)SPI data out (MISO)

I²C address: Connecting SDO to GND sets the address to 0x76; connecting it to VDDIO sets it to 0x77. SDO cannot be left floating.

Breakout module pinout (typical 4-pin)

Breakout module pinout (typical 4-pin)

PinDescription
VINModule supply (3.3V – 5V, onboard regulator handles it)
GNDGround
SCLI²C clock
SDAI²C data

I²C address: Connecting SDO to GND sets the I²C address to 0x76; connecting it to VDDIO sets it to 0x77. The SDO pin cannot be left floating.

Working principle

The BME280 houses three independent sensing elements that feed into a shared signal conditioning chain.

The BME280 can be operated in three power modes: sleep mode, forced mode, and normal mode.

  • Sleep mode — no measurements, 0.1µA current draw. Default state after power-on.
  • Forced mode — take one measurement, then return to sleep. Ideal for battery-powered devices polling at low rates.
  • Normal mode — continuous cycling between measurement and standby at a configurable interval. Used when regular data updates are needed.

The temperature measurement is used internally to compensate the pressure and humidity readings, which means the temperature output is more useful for calibration purposes than as a standalone ambient reading — the sensor self-heats slightly, so temperature readings can run a degree or two high depending on airflow and board layout.

The pressure sensor is precise enough to function as an altimeter with approximately ±1 metre accuracy over the 0°C to 65°C range. This makes it suitable for floor-change detection, elevator detection, and drone altitude hold — applications that would require a dedicated barometric altimeter in any other design.

Hardware overview of BME280

Hardware overview of BME280

(Image source)

The BME280 breakout module includes several supporting components around the sensor IC that handle power conditioning, signal integrity, and interface configuration — all soldered on so you don’t have to add them externally.

BME280 Sensor IC The small metal-lid chip at the centre of the board. Despite its 2.5 × 2.5mm size, it contains all three sensing elements — temperature, humidity, and pressure — along with a high-resolution ADC, OTP calibration memory, and the full I²C/SPI interface logic. Everything the sensor does happens inside this one package.

Filter Capacitors These absorb voltage spikes and filter out high-frequency noise from the power rail. This matters especially for the pressure sensor, which is sensitive enough to detect altitude changes of under 2 metres — even small supply fluctuations can show up as false readings without proper decoupling.

Pull-up Resistors The I²C protocol requires SDA and SCL to sit at a high logic level when idle, and these resistors provide that. Without them, communication becomes unreliable — most bare BME280 ICs require you to add these externally, but the breakout module includes them onboard.

Pull-down Resistor Holds the SDO pin at GND by default, setting the I²C address to 0x76. If you need to run two BME280 modules on the same bus, bridging the SDO pad to VCC on one of them shifts its address to 0x77, giving each module a unique address without any firmware tricks.

Specifications

Detailed Key Specifications are listed below.

ParameterValue
Supply Voltage (VDD)1.71V – 3.6V
Interface Voltage (VDDIO)1.2V – 3.6V
Current (all sensors @ 1Hz)3.6µA
Current (humidity + temp @ 1Hz)1.8µA
Current (pressure + temp @ 1Hz)2.8µA
Sleep Current0.1µA
Temperature Range−40°C to +85°C
Temperature Accuracy±1.0°C (0°C to 65°C), ±1.5°C (full range)
Temperature Resolution0.01°C
Humidity Range0% to 100% RH
Humidity Accuracy±3% RH
Humidity Response Time1 second (τ63%)
Humidity Hysteresis±1% RH
Pressure Range300 to 1100 hPa
Pressure Accuracy±1 hPa (0°C to 65°C)
Pressure RMS Noise0.2 Pa (equiv. 1.7cm altitude)
Altitude Resolution~±1 metre
I²C SpeedUp to 3.4 MHz
SPI SpeedUp to 10 MHz
I²C Address0x76 or 0x77
Chip ID0x60
Package8-pin LGA
Dimensions2.5 × 2.5 × 0.93mm
Operating Temperature−40°C to +85°C
RoHSCompliant, halogen-free, MSL1

Helpful resources

Download the datasheet: PDF here

Practical projects

Leave a Comment