{
  "compatibility_notes": "Logic thresholds scale with VDDIO (datasheet section 1.5). Register-compatible with the BMP280 pressure sensor, so existing BMP280 drivers work with the BME280's pressure and temperature channels. The 7-bit I2C address must be 0x76 or 0x77; if two BME280s share a bus, strap SDO differently on each.",
  "application_examples": [
    "Indoor environmental monitoring (temperature, humidity, pressure)",
    "Wearable / handheld altimeter and barometer",
    "Indoor navigation with floor-change detection",
    "HVAC control sensor node",
    "Battery-powered IoT climate node where ultra-low-power sleep is critical",
    "GPS dead-reckoning enhancement via barometric altitude"
  ],
  "metadata": {
    "type": "sensor",
    "schema_version": "1.5.0",
    "thumbnail": "https://storage.googleapis.com/protoboard-delta.firebasestorage.app/protoparts/bme280/thumbnail.png",
    "taxonomy": [
      "sensor.environmental"
    ],
    "id": "BME280",
    "tags": [
      "bme280",
      "bosch",
      "bosch-sensortec",
      "environmental",
      "humidity",
      "pressure",
      "temperature",
      "barometer",
      "i2c",
      "spi",
      "lga-8",
      "low-power"
    ],
    "manufacturer": "Bosch Sensortec",
    "version": "1.1",
    "part_number": "BME280",
    "name": "Bosch BME280",
    "description": "Bosch Sensortec BME280 is a bare LGA-8 combined digital humidity, barometric pressure, and temperature sensor. Tiny 2.5 x 2.5 x 0.93 mm package with I2C (up to 3.4 MHz) and SPI (3- and 4-wire, up to 10 MHz). Independent VDD (1.71-3.6 V) and VDDIO (1.2-3.6 V) supplies suit battery-powered and ultra-low-power designs at 3.6 uA running and 0.1 uA in sleep.",
    "datasheet_url": "https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bme280-ds002.pdf"
  },
  "usage_notes": "BME280 is a fine-pitch bare LGA IC, not a ready-to-wire breakout. Use it when the PCB can support the 2.5 mm LGA-8 footprint with two decoupling capacitors and external I2C pull-ups. For the simplest host integration, run it in I2C mode with CSB tied to VDDIO and SDO strapped to GND for address 0x76 (or VDDIO for 0x77). VDD and VDDIO can be driven from the same rail or from independent supplies (e.g., 3.3 V VDD + 1.8 V VDDIO).",
  "design_rules": [
    "Tie CSB (pin 2) directly to VDDIO to select I2C mode; the device only enters I2C mode while CSB is high.",
    "Do not leave SDO (pin 5) floating in I2C mode. Tie to GND for 7-bit address 0x76 or to VDDIO for 0x77.",
    "Add external pull-up resistors to VDDIO on SDA (pin 3) and SCL (pin 4) when using I2C. A 4.7 kOhm pull-up is typical for moderate bus capacitance.",
    "Place 100 nF decoupling capacitors close to VDD (pin 8) and VDDIO (pin 6).",
    "Maximum I2C clock is 3.4 MHz (high-speed mode); maximum SPI clock is 10 MHz.",
    "Do not exceed 4.25 V on VDD or VDDIO (datasheet absolute maximum ratings).",
    "Avoid placing the sensor near localized heat sources; self-heating shifts the temperature reading and the derived humidity / altitude values."
  ],
  "previewArtifactId": "art_thumbnail",
  "domains": [
    {
      "power_domains": [
        {
          "voltage_range_V": [
            1.71,
            3.6
          ],
          "name": "VDD Analog Supply",
          "id": "vdd",
          "isolation_type": "non_isolated",
          "nominal_voltage_V": 3.3,
          "description": "Analog and digital core supply. Typical full-sensor current is 3.6 uA at 1 Hz output rate; 0.1 uA in sleep mode. Datasheet section 1.1.",
          "ground_reference": "common",
          "max_current_mA": 1
        },
        {
          "nominal_voltage_V": 1.8,
          "description": "Digital I/O supply for CSB, SDI/SDA, SCK/SCL, and SDO pins. Independent of VDD so the host can run logic at 1.8 V while VDD is 3.3 V. Datasheet section 1.1.",
          "ground_reference": "common",
          "max_current_mA": 1,
          "voltage_range_V": [
            1.2,
            3.6
          ],
          "name": "VDDIO Interface Supply",
          "id": "vddio",
          "isolation_type": "non_isolated"
        }
      ],
      "pin_count": 8,
      "supply_voltage_V": [
        1.2,
        3.6
      ],
      "interfaces": [
        {
          "description": "I²C target. Supports Standard-mode (100 kHz), Fast-mode (400 kHz), and High-speed mode (up to 3.4 MHz). Pin mapping per datasheet Table 35: SDA on pin 3 (SDI), SCL on pin 4 (SCK). Configuration straps (board-level, not bus signals): CSB (pin 2) must be tied directly to VDDIO to latch I²C mode at power-on (datasheet §7.2, Figure 17); SDO (pin 5) selects the 7-bit address — tie to GND for 0x76, tie to VDDIO for 0x77, never leave floating. SDA and SCL require external pull-up resistors to VDDIO (~4.7 kΩ typical). Datasheet §6.2.",
          "constraints": {
            "requires_matching_voltage_domain": true,
            "max_lane_rate_mbps": 3.4,
            "max_connections": 1
          },
          "protocol": {
            "role": "slave",
            "type": "i2c"
          },
          "name": "I²C",
          "id": "i2c",
          "requires": [
            {
              "function": "SDA",
              "count": 1
            },
            {
              "count": 1,
              "function": "SCL"
            }
          ]
        },
        {
          "description": "SPI 4-wire target up to 10 MHz. Compatible with SPI mode '00' (CPOL=CPHA=0) and mode '11' (CPOL=CPHA=1); mode is auto-selected from the SCK level at the falling edge of CSB. Pin mapping per datasheet Table 35 and Figure 18: CSB (pin 2, active-low chip-select with internal pull-up to VDDIO), SCK (pin 4, serial clock input), SDI (pin 3, host-to-device serial data, sampled on SCK rising edge), SDO (pin 5, device-to-host serial data, changes on SCK falling edge). Datasheet §6.3.",
          "name": "SPI 4-wire",
          "id": "spi_4wire",
          "constraints": {
            "requires_matching_voltage_domain": true,
            "max_lane_rate_mbps": 10,
            "max_connections": 1
          },
          "protocol": {
            "role": "slave",
            "type": "spi"
          },
          "requires": [
            {
              "count": 1,
              "function": "CSB"
            },
            {
              "count": 1,
              "function": "SCK"
            },
            {
              "count": 1,
              "function": "SDI"
            },
            {
              "function": "SDO",
              "count": 1
            }
          ]
        },
        {
          "requires": [
            {
              "function": "CSB",
              "count": 1
            },
            {
              "count": 1,
              "function": "SCK"
            },
            {
              "count": 1,
              "function": "SDI/SDO"
            }
          ],
          "name": "SPI 3-wire",
          "id": "spi_3wire",
          "constraints": {
            "max_connections": 1,
            "requires_matching_voltage_domain": true,
            "max_lane_rate_mbps": 10
          },
          "protocol": {
            "role": "slave",
            "type": "spi"
          },
          "description": "SPI 3-wire target up to 10 MHz. Enabled by setting spi3w_en=1 in register 0xF5 (config). Same mode '00' / mode '11' behavior as SPI 4-wire. Pin mapping per datasheet Table 35 and Figure 19: CSB (pin 2, active-low chip-select), SCK (pin 4, serial clock), SDI/SDO (pin 3, half-duplex bidirectional data — host drives it during the address phase, device drives it during the data phase). SDO (pin 5) is held hi-Z in this mode and must be left DNC (Do Not Connect). Datasheet §6.3."
        },
        {
          "description": "1.71 V to 3.6 V analog and digital core supply. Typical current is 3.6 uA at 1 Hz humidity+pressure+temperature, 0.1 uA in sleep mode. Datasheet §1.1.",
          "name": "VDD Power",
          "id": "vdd_power_in",
          "protocol": {
            "role": "input",
            "type": "power"
          },
          "requires": [
            {
              "function": "VDD",
              "count": 1
            },
            {
              "count": 1,
              "function": "GND"
            }
          ]
        },
        {
          "description": "1.2 V to 3.6 V digital interface supply for the I²C / SPI bus. Independent of VDD so host logic can run at 1.8 V while VDD is 3.3 V.",
          "requires": [
            {
              "count": 1,
              "function": "VDDIO"
            },
            {
              "count": 1,
              "function": "GND"
            }
          ],
          "protocol": {
            "role": "input",
            "type": "power"
          },
          "name": "VDDIO Power",
          "id": "vddio_power_in"
        }
      ],
      "resources": [
        {
          "name": "Pin 1",
          "id": "pin_1",
          "connector_type": "surface_mount",
          "functions": [
            {
              "signal_class": "ground",
              "direction": "sink",
              "name": "GND"
            }
          ],
          "description": "GND — ground reference. Datasheet Table 35, p. 38.",
          "power_domain_id": "vdd"
        },
        {
          "power_domain_id": "vddio",
          "description": "CSB — chip-select input (SPI 4-wire and SPI 3-wire); must be tied directly to VDDIO to select I²C mode. Datasheet Table 35, p. 38.",
          "connector_type": "surface_mount",
          "functions": [
            {
              "direction": "sink",
              "name": "CSB",
              "signal_class": "data"
            },
            {
              "signal_class": "power",
              "direction": "sink",
              "name": "VDDIO"
            }
          ],
          "name": "Pin 2",
          "id": "pin_2",
          "notes": "SPI: CSB is active-low chip-select with an internal pull-up to VDDIO. I²C: pin must be hard-wired to VDDIO at power-on so the device latches I²C mode (datasheet §7.2, Figure 17)."
        },
        {
          "notes": "External pull-up to VDDIO required when used as I²C SDA (~4.7 kΩ typical, datasheet §7.2). In SPI 4-wire SDI is sampled on the SCK rising edge. In SPI 3-wire the same pin carries the device's response after the address phase.",
          "connector_type": "surface_mount",
          "functions": [
            {
              "name": "SDI",
              "direction": "sink",
              "signal_class": "data"
            },
            {
              "name": "SDI/SDO",
              "direction": "bidirectional",
              "signal_class": "data"
            },
            {
              "name": "SDA",
              "direction": "bidirectional",
              "signal_class": "data"
            }
          ],
          "name": "Pin 3",
          "id": "pin_3",
          "description": "SDI — serial data input in SPI 4-wire, bidirectional SDI/SDO half-duplex data in SPI 3-wire, SDA in I²C. Datasheet Table 35, p. 38.",
          "power_domain_id": "vddio"
        },
        {
          "power_domain_id": "vddio",
          "description": "SCK — serial clock input in SPI 4-wire and SPI 3-wire, SCL in I²C. Datasheet Table 35, p. 38.",
          "connector_type": "surface_mount",
          "functions": [
            {
              "signal_class": "clock",
              "direction": "sink",
              "name": "SCK"
            },
            {
              "signal_class": "clock",
              "direction": "sink",
              "name": "SCL"
            }
          ],
          "name": "Pin 4",
          "id": "pin_4",
          "notes": "External pull-up to VDDIO required when used as I²C SCL (~4.7 kΩ typical, datasheet §7.2)."
        },
        {
          "notes": "SPI 4-wire: SDO changes on the SCK falling edge (datasheet §6.3). SPI 3-wire: pin is held hi-Z, leave DNC. I²C: must not float — tie to GND for default 7-bit address 0x76 or to VDDIO for 0x77 (datasheet §6.2).",
          "name": "Pin 5",
          "id": "pin_5",
          "connector_type": "surface_mount",
          "functions": [
            {
              "signal_class": "data",
              "name": "SDO",
              "direction": "source"
            },
            {
              "direction": "bidirectional",
              "name": "DNC",
              "signal_class": "data"
            },
            {
              "signal_class": "ground",
              "name": "GND",
              "direction": "sink"
            },
            {
              "direction": "sink",
              "name": "VDDIO",
              "signal_class": "power"
            }
          ],
          "description": "SDO — serial data output in SPI 4-wire; DNC (Do Not Connect) in SPI 3-wire; I²C address strap in I²C (tie to GND for 0x76, VDDIO for 0x77). Datasheet Table 35, p. 38.",
          "power_domain_id": "vddio"
        },
        {
          "notes": "Place a 100 nF decoupling capacitor close to this pin (datasheet §7.2-§7.4).",
          "name": "Pin 6",
          "id": "pin_6",
          "connector_type": "surface_mount",
          "functions": [
            {
              "signal_class": "power",
              "direction": "sink",
              "name": "VDDIO"
            }
          ],
          "description": "VDDIO — digital / interface supply input (1.2 V to 3.6 V). Datasheet Table 35, p. 38.",
          "power_domain_id": "vddio"
        },
        {
          "name": "Pin 7",
          "id": "pin_7",
          "connector_type": "surface_mount",
          "functions": [
            {
              "signal_class": "ground",
              "name": "GND",
              "direction": "sink"
            }
          ],
          "description": "GND — ground reference. Datasheet Table 35, p. 38.",
          "power_domain_id": "vdd"
        },
        {
          "description": "VDD — analog and digital core supply input (1.71 V to 3.6 V). Datasheet Table 35, p. 38.",
          "power_domain_id": "vdd",
          "notes": "Place a 100 nF decoupling capacitor close to this pin (datasheet §7.2-§7.4).",
          "name": "Pin 8",
          "id": "pin_8",
          "connector_type": "surface_mount",
          "functions": [
            {
              "signal_class": "power",
              "name": "VDD",
              "direction": "sink"
            }
          ]
        }
      ],
      "metadata": {
        "max_operating_freq_Hz": 10000000,
        "package_type": "LGA-8"
      },
      "domain": "electrical",
      "power_consumption_mW": 0.012
    },
    {
      "interfaces": [
        {
          "name": "PCB Surface Mount",
          "id": "pcb_mount",
          "protocol": {
            "role": "mounting_point",
            "type": "mechanical_connection"
          },
          "requires": [
            {
              "function": "MECHANICAL_MOUNT",
              "count": 1
            }
          ],
          "description": "Surface-mount LGA solder attachment to PCB land pattern. Eight 0.4 mm pitch pads on the bottom of the metal-lid package."
        }
      ],
      "resources": [
        {
          "description": "Surface-mount 8-pin LGA package body with metal lid. 2.5 x 2.5 x 0.93 mm. Datasheet section 8.",
          "name": "LGA-8 Package",
          "id": "pkg",
          "connector_type": "surface_mount",
          "functions": [
            {
              "signal_class": "mechanical_drive",
              "name": "MECHANICAL_MOUNT",
              "direction": "bidirectional"
            }
          ]
        }
      ],
      "metadata": {
        "requires_special_tools": false,
        "field_serviceable": false,
        "mounting_method": "surface_mount"
      },
      "package_type": "LGA-8",
      "domain": "mechanical",
      "dimensions_mm": {
        "length": 2.5,
        "height": 0.93,
        "width": 2.5
      }
    },
    {
      "metadata": {
        "cooling_method": "passive",
        "requires_thermal_management": false,
        "thermal_monitoring_available": true
      },
      "domain": "thermal",
      "operating_temperature_C": [
        -40,
        85
      ],
      "resources": [],
      "interfaces": []
    }
  ],
  "artifacts": [
    {
      "name": "BME280 Datasheet (BST-BME280-DS001-24, Rev 1.24, Feb 2024)",
      "id": "art_datasheet",
      "type": "datasheet",
      "url": "https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bme280-ds002.pdf"
    },
    {
      "name": "Bosch Sensortec BME280 Product Page",
      "id": "art_product_page",
      "type": "link",
      "url": "https://www.bosch-sensortec.com/en/products/environmental-sensors/humidity-sensors-bme280/"
    },
    {
      "size": 17822,
      "name": "BME280 product photo (DigiKey)",
      "id": "art_product_image",
      "mimeType": "image/jpeg",
      "storagePath": "protoparts/bme280/artifacts/art_product_image.jpg",
      "url": "https://storage.googleapis.com/protoboard-delta.firebasestorage.app/protoparts/bme280/artifacts/art_product_image.jpg",
      "type": "image"
    },
    {
      "name": "Bosch BME280 thumbnail",
      "id": "art_thumbnail",
      "url": "https://storage.googleapis.com/protoboard-delta.firebasestorage.app/protoparts/bme280/thumbnail.png",
      "type": "image"
    }
  ],
  "warnings": [
    "Bare LGA-8 IC is not solderless-breadboard friendly. For prototyping, use a breakout board such as the Adafruit BME280 instead.",
    "Do not exceed 4.25 V on VDD or VDDIO; absolute maximum ratings will damage the device.",
    "The sensor is not waterproof. Long-term exposure to condensation can degrade humidity accuracy and may require reconditioning.",
    "Self-heating from neighboring components or from VDD regulator dissipation distorts the temperature, humidity, and pressure outputs."
  ]
}