PCBWiki
ActiveBosch Sensortec · 8-pin LGA (metal lid), 2.5 × 2.5 × 0.93 mm

BME280 PCB Design Guide: Footprint, Pinout, and Alternatives

Combined temperature humidity and pressure sensor on I2C or SPI

The BME280 is Bosch Sensortec's combined humidity, pressure, and temperature sensor in a 2.5 × 2.5 mm metal-lid LGA. One package on an I2C or SPI bus replaces three discrete sensors, and at 3.6 µA for a full 1 Hz reading of all three channels it fits battery designs without ceremony. It has become the default environmental sensor for weather stations, IoT nodes, and HVAC monitors, and Bosch lists it as active with a long-term delivery commitment.

The biggest BME280 problem happens before the board is even designed: many marketplace modules sold as "BME280" actually carry the BMP280, the same die family without the humidity sensor. The two parts look identical and share a footprint. The reliable test is the chip ID register at 0xD0 — a BME280 reads 0x60, a mass-production BMP280 reads 0x58. Check it in your bring-up code before trusting a humidity value of zero.

On a genuine part, almost every field problem traces to four things: a floating SDO or CSB pin, self-heating from neighboring components, a sealed enclosure with no air path to the sensor, or oversampling settings copied blindly from an example. Each is covered below.

What breaks boards

  1. Verify the chip ID — many "BME280" modules ship a BMP280

    Mislabeled modules are common enough that Bosch's chip ID register should be your first bring-up check. Register 0xD0 reads 0x60 on a BME280; the BMP280 reads 0x58 in mass production (0x56/0x57 on early samples). A BMP280 answers on the same address and returns plausible pressure and temperature, so the only symptom of the swap is a humidity channel that never works. Read the ID before debugging anything else.

  2. I2C address is set by SDO — do not let it float

    In I2C mode the SDO pin selects the address: tied to GND gives 0x76, tied to VDDIO gives 0x77. A floating SDO leaves the address undefined and produces the classic intermittent-ACK failure that looks like a bad solder joint. Tie it one way or the other on every design, and remember that breakout boards differ — 0x76 and 0x77 are both common defaults, which is why scanner sketches exist.

  3. Tie CSB high for I2C, or the part can latch into SPI mode

    CSB selects the digital interface. Holding it high keeps the part in I2C mode; if CSB sees a falling edge, the interface latches to SPI until the next power cycle. A floating CSB on an I2C design is therefore a time bomb — any coupled noise can silently switch the bus off. Tie CSB directly to VDDIO for I2C, or route it as a proper chip select for SPI.

  4. Self-heating from neighbors skews temperature, and therefore humidity

    The temperature reading is used to compensate the humidity channel, so any heating error corrupts both. A BME280 placed next to a regulator, an MCU, or a Wi-Fi module reads high by whole degrees and low on RH. Isolate the sensor with routed slots in the board, or place it on a small remote stub. The sensor also needs an actual vent to outside air, and it is not waterproof — condensation and immersion are outside its ratings.

  5. Use Bosch's recommended measurement profiles, not maximum everything

    The datasheet defines suggested oversampling and IIR-filter combinations per use case — a low-rate weather-monitoring profile, an indoor-navigation profile with heavy pressure oversampling, and so on. Cranking every setting to maximum wastes power and adds noise without improving the numbers you care about. For scale: humidity plus temperature at 1 Hz costs 1.8 µA, and the full three-channel reading only 3.6 µA, so the sensible profiles are nearly free.

Key specifications

ParameterValueSource
Pressure range / accuracy300–1100 hPa operating; absolute accuracy ±1.0 hPa (300–1100 hPa, 0–65 °C)BST-BME280-DS002 Table 3 (Pressure parameter specification), A_P,full
RH accuracy±3 %RH absolute (20–80 %RH, 25 °C, incl. hysteresis); hysteresis ±1 %RHBST-BME280-DS002 Table 2 (Humidity parameter specification), A_H
Temperature accuracy±0.5 °C at 25 °C and over 0–65 °C; ±1.25 °C (−20 to 0 °C) and ±1.5 °C (−40 to −20 °C) are target values, not guaranteedBST-BME280-DS002 Table 4 (Temperature parameter specification), A_T
VDD / VDDIO rangeVDD 1.71–3.6 V; VDDIO 1.2–3.6 VBST-BME280-DS002 Table 1 (Electrical parameter specification)
Current by profile1.8 µA @ 1 Hz humidity+temp; 2.8 µA @ 1 Hz pressure+temp; 3.6 µA @ 1 Hz humidity+pressure+temp; 0.1 µA sleep (typ)BST-BME280-DS002 p.2 Key features; Tables 1–3 (IDD,SL / IDD,H / IDD,LP)
Package size2.5 × 2.5 × 0.93 mm metal-lid LGA, 8 padsBST-BME280-DS002 p.2 Key features and Section 7.1 Pin-out

Verified against the manufacturer datasheet on 2026-07-09. Confirm the current revision before production use.

Alternatives

  • BMP280the same family without the humidity sensor — cheaper, and what many mislabeled "BME280" modules actually carry. Chip ID reads 0x58 instead of 0x60.
  • SHT31better humidity accuracy than the BME280, but no pressure channel. The right choice when RH is the measurement that matters.
  • BME680adds a VOC gas sensor on top of the BME280's three channels — at a higher price, and the gas heater adds materially to the power budget.

Common questions

What is the difference between the BME280 and BMP280?
The BMP280 is the same family without the humidity sensor — pressure and temperature only. They share a footprint and I2C addresses, so the reliable way to tell them apart is the chip ID register at 0xD0: 0x60 is a BME280, 0x58 is a BMP280.
What is the BME280 I2C address?
0x76 with SDO tied to GND, 0x77 with SDO tied to VDDIO. SDO must be tied one way or the other — a floating SDO gives an undefined address and intermittent bus errors.
Why does my BME280 read a few degrees high?
Almost always self-heating from neighboring components — regulators, MCUs, and radio modules warm the sensor through the board. Because temperature compensates the humidity channel, RH reads low at the same time. Isolate the sensor with board slots or a remote placement, and give it a vent to outside air.
Should I use SPI or I2C with the BME280, and what does CSB do?
Both work; I2C is the common choice and needs only two lines. CSB selects the interface: tie it high for I2C, because any falling edge on CSB latches the part into SPI mode until power cycles. For SPI, CSB is the chip select.

Sources