~/workshop $ cat ./inventory/gy-bmp280-breakout/README.md

GY-BME/BMP280 Breakout (4-Pin I2C, BMP280 Populated)

category
Sensor
qty
5 — updated per Alex's direct count; only 1 unit was visible in the original intake photo
status
owned / untested
maker
Generic (unbranded "GY" series breakout — this dual-footprint PCB design, silkscreened for either the Bosch BME280 or BMP280 chip, is sold under many reseller names)
GY-BME/BMP280 Breakout (4-Pin I2C, BMP280 Populated)

Overview

A small breakout board for Bosch’s BMP280 barometric pressure + temperature sensor (the board’s dual “BME/BMP280” silkscreen means the same PCB layout is also sold with the humidity-sensing BME280 populated instead — Alex’s unit has the BMP280 variant, which measures pressure and temperature only, no humidity). This specific board is the simplified 4-pin version (VIN, GND, SCL, SDA) — I2C only, no exposed SPI/CS/SDO pins, which also means the I2C address is fixed by the board’s own design rather than user-selectable.

Key specs

  • Sensing: barometric pressure + temperature (BMP280 chip — no humidity, unlike a BME280-populated version of the same board)
  • Interface: I2C only (this 4-pin variant has no SPI break-out)
  • Operating voltage: VIN pin naming (vs. a plain VCC) indicates an onboard regulator + logic-level shifting on this board family — commonly rated to accept 3.3V–5V input regardless of the chip’s native 3.3V logic, though this isn’t board-specific-confirmed (see Verification)
  • I2C address: fixed at 0x76 on this 4-pin variant — no SDO pin is exposed to select 0x77, so the board’s internal wiring almost certainly ties SDO to GND permanently (standard design for this 4-pin clone family)
  • Pressure range (per Bosch BMP280 datasheet): 300–1100 hPa
  • Temperature range (per Bosch BMP280 datasheet): -40°C to +85°C

Pinout

Pin Function
VIN Power input (3.3V–5V typical for this board family, onboard regulator)
GND Ground
SCL I2C clock
SDA I2C data

Wiring / typical usage

Four wires to the host’s I2C bus: VIN to 3.3V or 5V (whichever the host provides — this board’s onboard regulator is what makes both options viable, unlike a bare-chip 3.3V-only module), GND to ground, SCL/SDA to the host’s I2C clock/data lines (add pull-ups if the host doesn’t already have them on the bus). Address is fixed at 0x76 — if another 0x76 device is already on the same bus, this board can’t be moved to 0x77 without physical rework (no SDO pin exposed).

Code / libraries

  • Arduino: Adafruit’s Adafruit_BMP280 library (works with clone boards, not just genuine Bosch/Adafruit silicon) — initialize with bmp.begin(0x76).
  • ESP-IDF / MicroPython: any BMP280 I2C driver library, addressed at 0x76.
  • If the BME280-populated sibling of this same board is ever added to the library, note that library and register maps differ (BME280 adds humidity registers) even though the PCB and pin layout are identical — check which chip is actually populated before assuming the smaller BMP280 driver works.

Source material

Verification

Board silkscreen and pin labels read directly from the supplied photo — high confidence on pin names/order. Voltage tolerance (3.3–5V via onboard regulator) and the fixed-0x76-address inference are Inferred from the well-documented general behavior of this 4-pin GY-BME/BMP280 clone family — not confirmed against this exact board's own schematic, since no manufacturer/model beyond the generic silkscreen exists. Confirm actual VIN tolerance with a multimeter/datasheet-adjacent caution (start at 3.3V) before assuming 5V is safe on this specific unit.

Notes / gotchas

  • Dual-footprint board — always double check which chip is actually populated (BME280 vs BMP280) before wiring code around humidity data that a BMP280 simply doesn’t produce. Alex identified this unit as BMP280.
  • No SDO/CS pins exposed on this 4-pin variant — I2C address is not changeable, unlike the more common 6-pin GY-BME/BMP280 boards.
  • VIN (not VCC) naming is the tell that this board has onboard voltage regulation — don’t assume the same is true of every GY-series breakout without checking its own pin labeling.