BME688 Environmental Sensor 4-in-1
Introduction
The BME688 Environmental Sensor 4-in-1 is a compact module that integrates temperature, humidity, barometric pressure, and gas sensing (including VOCs and IAQ) in a single package. Based on Bosch Sensortec technology, it offers digital I²C/SPI interfaces for easy integration with platforms like Arduino, ESP32, and Raspberry Pi. Its low power consumption and small size make it ideal for wearables, portable devices, and IoT applications. The sensor also supports AI-based gas classification via Bosch’s BME AI-Studio, enabling advanced air quality monitoring.

📦 Overview
Parameter | Value/Description |
---|---|
Operating Voltage | 1.71V to 3.6V |
Supply Current | 0.9 µA (sleep), 2.1 µA (ULP), ~920 µA (gas scan) |
Operating Temperature | -40°C to +85°C |
Relative Humidity Range | 0% to 100% RH |
Pressure Range | 300 hPa to 1100 hPa |
Gas Sensing | VOCs, IAQ index via integrated gas sensor |
Interfaces | I²C and SPI (up to 3.4 MHz) |
Package Size | 3.0 × 3.0 × 0.93 mm³ |
Key Features
- Relative Humidity: Accurately measures ambient moisture for precise environmental monitoring.
- Barometric Pressure: Detects atmospheric pressure changes to support dynamic weather tracking.
- Excellent Temperature Stability: Delivers consistent temperature readings even under varying conditions.
- Gas Sensing: Monitors a range of gases to help identify potential environmental hazards.
- Power Consumption: Optimized for low power usage, making it ideal for battery-operated devices.
- Interfaces: I²C and SPI
- Input Voltage via VCC Pin: 3.6–6.0 V (through onboard voltage regulator)
🧪 Use Cases
- Environmental Monitoring: Tracks air quality, humidity, temperature, and pressure in smart homes and industrial settings.
- IoT Devices: Integrates into IoT systems for real-time environmental data collection and analysis.
- Weather Stations: Enables accurate weather forecasting and monitoring in DIY weather station projects.
- Smart Agriculture: Monitors soil and air conditions to optimize crop growth and yield.
- Wearable Devices: Supports health and fitness wearables for environmental parameter monitoring.
📚 Resources
📝 License
All hardware and documentation in this project are licensed under the MIT License.
Please refer to LICENSE.md
for full terms.
Hardware Overview
Key Technical Specifications
- Operating Voltage: 1.71V to 3.6V
- Supply Current: 0.9 µA (sleep), 2.1 µA (ULP), ~920 µA (gas scan)
- Operating Temperature: -40°C to +85°C
- Relative Humidity Range: 0% to 100% RH
- Pressure Range: 300 hPa to 1100 hPa
- Gas Sensing: VOCs, IAQ index via integrated gas sensor
- Interfaces: I²C and SPI (up to 3.4 MHz)
- Package Size: 3.0 × 3.0 × 0.93 mm³
⚙️ Technical Specifications
Parameter | Technical Data |
---|---|
Package dimensions | 8-Pin LGA with metal 3.0 x 3.0 x 0.93 mm³ |
Operation range (full accuracy) | Pressure: 300...1100 hPa Humidity: 0…100% Temperature: -40…85°C |
Supply voltage VDDIO | 1.2 - 3.6 V |
Supply voltage VDD | 1.71 - 3.6 V |
Interface | I²C and SPI |
Average current consumption | 2.1 µA at 1 Hz humidity and temperature 3.1 µA at 1 Hz pressure and temperature 3.7 µA at 1 Hz humidity, pressure and temperature 90 µA at ULP mode for p/h/T & air quality 0.9 mA at LP mode for p/h/T & air quality 3.9 mA in standard gas scan mode (gas scan mode & scan rate can be optimized on applications with BME AI studio) |
Gas sensor - F1 score for H₂S scanning | 0.94 |
Gas sensor - Standard scan speed | 10.8 s / scan |
Gas sensor - Electric charge for standard scan | 0.18 mAh (5 scans ~ 1 min) |
Gas sensor - Response time (τ 33-63%) | < 1 s (for new sensors) |
Gas sensor - Sensor-to-sensor deviation | +/- 15% |
Gas sensor - Power consumption | < 0.1 mA in ultra-low power mode |
Gas sensor - Output data processing | Major direct outputs: Index for Air Quality (IAQ), bVOC-& CO₂-equivalents (ppm), Gas scan result (%) & many more (all listed in datasheet in Table 20: BSEC outputs) |
Humidity sensor - Response time (τ0-63%) | 8 s |
Humidity sensor - Accuracy tolerance | ± 3 % relative humidity |
Humidity sensor - Hysteresis | ≤ 1.5 % relative humidity |
Pressure sensor - RMS Noise | 0.12 Pa (equiv. to 1.7 cm) |
Pressure sensor - Sensitivity Error | ± 0.25 % (equiv. to 1 m at 400 m height change) |
Pressure sensor - Temperature coefficient offset | ±1.3 Pa/K (equiv. to ±10.9 cm at 1°C temperature change) |
🔌 Pinout
Pinout Diagram
Pinout Details
Pin Label | Description |
---|---|
VCC | Power supply (3.3V or 5V) |
GND | Ground |
SDA/SDI | I²C data / SPI data in |
SCL/SCK | I²C clock / SPI clock |
CSB | Chip select (SPI, active low) |
SDO | SPI data out |
📏 Dimensions
📃 Topology
Ref. | Description |
---|---|
IC1 | BME688 Environmental Sensor |
L1 | Power On LED |
U1 | AP2112K 3V3 Regulator |
JP1 | 2.54 mm Castellated Holes |
J1 | QWIIC Connector (JST 1 mm pitch) for I2C |
Key Technical Specifications
- Operating Voltage: 1.71V to 3.6V
- Supply Current: 0.9 µA (sleep), 2.1 µA (ULP), ~920 µA (gas scan)
- Operating Temperature: -40°C to +85°C
- Relative Humidity Range: 0% to 100% RH
- Pressure Range: 300 hPa to 1100 hPa
- Gas Sensing: VOCs, IAQ index via integrated gas sensor
- Interfaces: I²C and SPI (up to 3.4 MHz)
- Package Size: 3.0 × 3.0 × 0.93 mm³
⚙️ Technical Specifications
Parameter | Technical Data |
---|---|
Package dimensions | 8-Pin LGA with metal 3.0 x 3.0 x 0.93 mm³ |
Operation range (full accuracy) | Pressure: 300...1100 hPa Humidity: 0…100% Temperature: -40…85°C |
Supply voltage VDDIO | 1.2 - 3.6 V |
Supply voltage VDD | 1.71 - 3.6 V |
Interface | I²C and SPI |
Average current consumption | 2.1 µA at 1 Hz humidity and temperature 3.1 µA at 1 Hz pressure and temperature 3.7 µA at 1 Hz humidity, pressure and temperature 90 µA at ULP mode for p/h/T & air quality 0.9 mA at LP mode for p/h/T & air quality 3.9 mA in standard gas scan mode (gas scan mode & scan rate can be optimized on applications with BME AI studio) |
Gas sensor - F1 score for H₂S scanning | 0.94 |
Gas sensor - Standard scan speed | 10.8 s / scan |
Gas sensor - Electric charge for standard scan | 0.18 mAh (5 scans ~ 1 min) |
Gas sensor - Response time (τ 33-63%) | < 1 s (for new sensors) |
Gas sensor - Sensor-to-sensor deviation | +/- 15% |
Gas sensor - Power consumption | < 0.1 mA in ultra-low power mode |
Gas sensor - Output data processing | Major direct outputs: Index for Air Quality (IAQ), bVOC-& CO₂-equivalents (ppm), Gas scan result (%) & many more (all listed in datasheet in Table 20: BSEC outputs) |
Humidity sensor - Response time (τ0-63%) | 8 s |
Humidity sensor - Accuracy tolerance | ± 3 % relative humidity |
Humidity sensor - Hysteresis | ≤ 1.5 % relative humidity |
Pressure sensor - RMS Noise | 0.12 Pa (equiv. to 1.7 cm) |
Pressure sensor - Sensitivity Error | ± 0.25 % (equiv. to 1 m at 400 m height change) |
Pressure sensor - Temperature coefficient offset | ±1.3 Pa/K (equiv. to ±10.9 cm at 1°C temperature change) |
Pinout
Pinout Diagram
Pinout Details
Pin Label | Description |
---|---|
VCC | Power supply (3.3V or 5V) |
GND | Ground |
SDA/SDI | I²C data / SPI data in |
SCL/SCK | I²C clock / SPI clock |
CSB | Chip select (SPI, active low) |
SDO | SPI data out |
Dimensions
Topology
Ref. | Description |
---|---|
IC1 | BME688 Environmental Sensor |
L1 | Power On LED |
U1 | AP2112K 3V3 Regulator |
JP1 | 2.54 mm Castellated Holes |
J1 | QWIIC Connector (JST 1 mm pitch) for I2C |
Getting Started
Quick Setup
1. Hardware Connections
- VCC → 3.3V or 5V supply
- GND → Ground
- SDA → I2C Data Line (SDA)
- SCL → I2C Clock Line (SCL)
Compatible with a JST 1 mm pitch QWIIC connector for easy I2C integration (power only, D0 must be connected separately).
2. Software Installation
Examples
Arduino/C++ Examples
The following examples demonstrate various features of this development board.
⚡ i2c: example1.ino
#include <Arduino.h>
#include "bme68xLibrary.h"
#include <Wire.h>
#define SDA_PIN 21
#define SCL_PIN 22
Bme68x bme;
void setup() {
Serial.begin(115200);
while (!Serial) delay(10);
Wire.begin(SDA_PIN, SCL_PIN);
Wire.setClock(100000); // 100 kHz
// ✅ Solo llama a begin, sin usar if
bme.begin(0x77, Wire);
// Verifica estado del sensor
📄 Ver código completo en GitHub
⚡ spi: example_spi.ino
#include <Arduino.h>
#include <SPI.h>
#include "bme68xLibrary.h"
// Pines personalizados para ESP32-C6
#define PIN_MOSI 7
#define PIN_MISO 2
#define PIN_SCK 6
#define PIN_CS 18
SPIClass mySPI(0); // Bus SPI #0 para ESP32-C6
Bme68x bme;
void setup() {
Serial.begin(115200);
while (!Serial);
// Inicializar SPI con pines personalizados
mySPI.begin(PIN_SCK, PIN_MISO, PIN_MOSI, PIN_CS);
📄 Ver código completo en GitHub
Datasheet & Documentation
📄 Professional Datasheet
Complete technical specifications and professional documentation.
📎 View Professional Datasheet - Interactive HTML version
📎 Download PDF Datasheet - Downloadable PDF version
🔗 Additional Resources
Hardware Resources
- 🔌 Schematic Diagram - Complete circuit schematic
- 📐 Board Dimensions - Physical specifications
- 🔧 Pinout Reference - Pin configuration details
Software Resources
- 💻 Getting Started Guide - Setup and first steps
- 📝 Code Examples - Arduino sketches and demos
- 🛠️ Development Setup - IDE configuration
External Links
- 🔗 Source Code Repository - Complete project files
📋 Quick Reference
Resource Type | Description | Link |
---|---|---|
📄 Datasheet (HTML) | Interactive technical specs | View |
📄 Datasheet (PDF) | Downloadable technical specs | |
🔌 Schematic | Circuit diagram | |
� Dimensions | Board measurements | View |
🔧 Pinout | Pin configuration | View |
�💻 Examples | Code samples | View |
🔧 Setup Guide | Getting started | View |
For the most up-to-date information, please refer to the official documentation and repository.
License
MIT License
Copyright (c) 2025 UNIT-Electronics-MX
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
This project is licensed under the MIT License - see the LICENSE file for details.