component
BME688
UnreviewedBosch Sensortec BME688 — Digital low power gas, pressure, temperature & humidity sensor with AI
{
"schema_version": 1,
"type": "component",
"slug": "bme688",
"title": "BME688",
"brief": "Bosch Sensortec BME688 — Digital low power gas, pressure, temperature & humidity sensor with AI",
"version": "1.0.0",
"tags": [],
"license": "MIT",
"component": {
"mpn": "BME688",
"manufacturer": "",
"package": "",
"pin_count": null,
"category": "datasheet",
"subcategory": "",
"body_size": null,
"parts": {},
"distributor_links": {}
},
"readme": "**Source:** [Bosch Sensortec Datasheet (BST-BME688-DS000-03)](https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bme688-ds000.pdf)\n**Manufacturer:** Bosch Sensortec\n**Part Number:** BME688\n**Document:** BST-BME688-DS000-03 — Rev 1.3, February 2024\n\n## Description\n\nThe BME688 is the first gas sensor with Artificial Intelligence (AI) and integrated high-linearity and high-accuracy pressure, humidity and temperature sensors. It is housed in a robust yet compact 3.0 x 3.0 x 0.93 mm metal lid LGA package and is especially developed for mobile and connected applications where size and low power consumption are critical requirements.\n\nThe gas sensor can detect Volatile Organic Compounds (VOCs), volatile sulfur compounds (VSCs) and other gases such as carbon monoxide and hydrogen in the part per billion (ppb) range. The BME688 features a gas scanner function that can be customized with respect to sensitivity, selectivity, data rate and power consumption using the BME AI-Studio tool, enabling customers to train the sensor on their specific application.\n\n## Key Specifications\n\n| Parameter | Value |\n| --- | --- |\n| Supply Voltage (VDD) | 1.71V to 3.6V |\n| Interface Voltage (VDDIO) | 1.2V to 3.6V |\n| Digital Interface | I2C (up to 3.4 MHz), SPI (up to 10 MHz) |\n| Package | 3.0 x 3.0 x 0.93 mm LGA-8 |\n| Temperature Range | -40 to +85 C |\n| Pressure Range | 300 to 1100 hPa |\n| Humidity Range | 0 to 100% r.H. |\n| Sleep Current | 0.15 uA |\n| Gas Scan H2S F1 Score | 0.94 |\n| IAQ Range | 0 to 500 |\n| Pin Count | 8 |\n\n## Features\n\n- First gas sensor with integrated AI capability for custom gas classification\n- 4-in-1 sensor: gas, pressure, temperature and humidity in a single package\n- Gas scanner function with H2S selectivity (F1 score 0.94) for VSC detection\n- Ultra-low power modes from 0.09 mA (ULP) to 12 mA (continuous)\n- BME AI-Studio toolchain enables training for custom gas classification use cases (up to 4 classes)\n- Index for Air Quality (IAQ) output with 0-500 scale and automatic calibration\n- bVOC and CO2 equivalent outputs via BSEC software library\n- I2C and SPI digital interfaces with configurable I2C address via SDO pin\n- IIR filter for temperature and pressure noise reduction\n- 10 programmable heater temperature steps for gas scanning profiles\n- Forced and parallel measurement modes for flexible power/performance tradeoff\n- RoHS compliant, halogen-free, MSL1\n\n## Pin Configuration\n\n| Pin | Name | Type | Description |\n| --- | --- | --- | --- |\n| 1 | GND | Power | Ground |\n| 2 | CSB | Input | SPI chip select (active low); connect to VDDIO for I2C |\n| 3 | SDI | In/Out | SPI data in / I2C SDA |\n| 4 | SCK | Input | SPI clock / I2C SCL |\n| 5 | SDO | In/Out | SPI data out / I2C address select (GND=0x76, VDDIO=0x77) |\n| 6 | VDDIO | Power | Digital interface supply (1.2V to 3.6V) |\n| 7 | GND | Power | Ground |\n| 8 | VDD | Power | Analog supply (1.71V to 3.6V) |\n\n## Absolute Maximum Ratings\n\n| Parameter | Min | Max | Unit |\n| --- | --- | --- | --- |\n| Voltage at any supply pin (VDD, VDDIO) | -0.3 | 4.25 | V |\n| Voltage at any interface pin | -0.3 | VDDIO + 0.3 | V |\n| Storage temperature | -45 | +85 | C |\n| Pressure | 0 | 20000 | hPa |\n| ESD (HBM, any pin) | - | +/-2 | kV |\n| ESD (Machine model) | - | +/-200 | V |\n\n## Electrical Characteristics\n\n| Parameter | Conditions | Min | Typ | Max | Unit |\n| --- | --- | --- | --- | --- | --- |\n| Supply Voltage VDD | Ripple max 50 mVpp | 1.71 | 1.8 | 3.6 | V |\n| Supply Voltage VDDIO | - | 1.2 | 1.6 | 3.6 | V |\n| Sleep Current | - | - | 0.15 | 1 | uA |\n| Standby Current | - | - | 0.29 | 0.8 | uA |\n| Current (humidity meas.) | Max at 85 C | - | 340 | 450 | uA |\n| Current (pressure meas.) | Max at -40 C | - | 714 | 849 | uA |\n| Gas heater current | 320 C target, VDD <= 1.8V | 9 | 12 | 13 | mA |\n| Peak supply current | First ms of heater on | 15 | 17 | 18 | mA |\n| Start-up time | VDD > 1.58V, VDDIO > 0.65V | - | 2 | - | ms |\n| Humidity accuracy | 20-80% r.H., 25 C | - | - | +/-3 | % r.H. |\n| Humidity response time | 0-63% step | - | 8 | - | s |\n| Pressure absolute accuracy | 300-1100 hPa, 0-65 C | - | - | +/-0.6 | hPa |\n| Pressure noise (RMS) | Full BW, highest OS | - | 1.4 | - | Pa |\n| Temperature accuracy | 0-65 C | - | - | +/-0.5 | C |\n| Temperature resolution | API output | - | 0.01 | - | C |\n\n## Power Consumption\n\n| Parameter | Conditions | Typ | Unit |\n| --- | --- | --- | --- |\n| Humidity + temperature | 1 Hz forced mode | 2.1 | uA |\n| Pressure + temperature | 1 Hz forced mode | 3.1 | uA |\n| Humidity + pressure + temperature | 1 Hz forced mode | 3.7 | uA |\n| Ultra-low power (p/h/T + air quality) | ULP mode | 90 | uA |\n| Low power (p/h/T + air quality) | LP mode | 0.9 | mA |\n| Standard gas scan mode | 5 scan + 10 sleep cycles | 3.96 | mA |\n| Continuous mode | 1 Hz update rate | 12 | mA |\n\n## Communication Interface\n\nThe BME688 supports I2C (standard, fast, and high-speed modes up to 3.4 MHz) and SPI (3-wire and 4-wire modes up to 10 MHz).\n\n**I2C:** The 7-bit device address is `1110110` (0x76) when SDO is connected to GND, or `1110111` (0x77) when SDO is connected to VDDIO. External pull-up resistors (typically 4.7 kOhm) are required on SDA and SCL. Use 100 nF bypass capacitors on VDD and VDDIO.\n\n**SPI:** Compatible with SPI mode 0 (CPOL=0, CPHA=0) and mode 3 (CPOL=1, CPHA=1). CSB is active low with an internal pull-up resistor. In 3-wire mode, SDI is used for bidirectional data.\n\n## Packages\n\n| Package | Pins | Body Size | Height |\n| --- | --- | --- | --- |\n| Metal Lid LGA | 8 | 3.0 x 3.0 mm | 0.93 mm |\n\n## Software API\n\nThe BME688 is designed to work with the **BSEC (Bosch Software Environmental Cluster)** library, which provides intelligent algorithms for:\n\n- **Index for Air Quality (IAQ):** 0-500 scale with automatic background calibration\n- **Gas scan classification:** Up to 4 custom gas classes trained via BME AI-Studio\n- **CO2 equivalents:** Derived from VOC/CO2 correlation in exhaled breath\n- **bVOC equivalents:** Breath-VOC concentration in ppm\n- **Compensated outputs:** Temperature and humidity corrected for device self-heating\n\n**BSEC Power Modes:**\n\n| Mode | Update Rate | Avg Current |\n| --- | --- | --- |\n| Standard gas scan | 1/10.8 s | 3.96 mA |\n| Ultra-low power (ULP) | 1/300 s | 0.09 mA |\n| Quick ULP (q-ULP) | 0.33 Hz (T/p/h), 3.3 mHz (IAQ) | 0.1 mA |\n| Low power (LP) | 0.33 Hz | 0.9 mA |\n| Continuous | 1 Hz | 12 mA |\n\n**Software Components:**\n\n| Component | Type | Description |\n| --- | --- | --- |\n| BME68x Sensor API | C code | Raw data access via SPI/I2C interface |\n| BSEC | C static library | Fused outputs and AI gas classification |\n| BME AI-Studio | PC application | AI toolchain for custom gas use cases |\n\n**Sensor API:** [github.com/BoschSensortec/BME68x-Sensor-API](https://github.com/BoschSensortec/BME68x-Sensor-API)\n\n## Applications\n\n- Indoor air quality monitoring and smart ventilation\n- Bad breath and spoiled food detection via volatile sulfur compounds\n- Gas leak detection (unusual gases and smells)\n- Diaper state detection for baby care\n- Early odor and bad smell detection\n- Weather station and environmental monitoring (pressure, humidity, temperature)\n- Wearable health and wellness tracking\n- Smart home devices (speakers, connected sensors, lamps)\n- Asset tracking and surveillance with environmental context\n\n## Key Formulas\n\n### Temperature Compensation\n```\nvar1 = (temp_adc / 16384.0 - par_t1 / 1024.0) * par_t2\nvar2 = ((temp_adc / 131072.0 - par_t1 / 8192.0)^2) * (par_t3 * 16.0)\nt_fine = var1 + var2\ntemp_comp = t_fine / 5120.0\n```\n\n### Heater Resistance Target\n```\nres_heat = 3.4 * ((1 + 0.023 * target_temp) * gas_res - 25)\n```\n\n### Gas Wait Duration\n```\nduration_ms = gas_wait[5:0] * multiplication_factor\nmultiplication_factor = {1, 4, 16, 64}[gas_wait[7:6]]\n```\n\n### IAQ Scale\n```\n0-50: Excellent — Pure air, best for well-being\n51-100: Good — No irritation or impact\n101-150: Lightly polluted — Ventilation suggested\n151-200: Moderately polluted — Increase ventilation\n201-250: Heavily polluted — Optimize ventilation\n251-350: Severely polluted — Maximize ventilation\n>351: Extremely polluted — Avoid presence in room\n```\n",
"author": {
"id": "695820315b5f1e4db2fcf602",
"name": "Kyle Bergstedt",
"email": "[email protected]"
},
"visibility": {
"public": true
},
"hero": null,
"sample_prompts": [],
"discovery_triggers": [],
"discovery_pitch": null,
"metadata": {},
"created_at": "2026-05-28T05:37:04.783Z",
"updated_at": "2026-05-28T05:37:04.783Z"
}