meta data for this page
LamaPLC: BMP/BME Bosch Temperature/Humidity/Pressure sensors with I²C communication
Bosch BMP sensors primarily measure barometric pressure and temperature, while Bosch BME sensors are more comprehensive, adding humidity and, in newer models, gas/air quality sensing.
BMP180 (GY-68) Temperature/Barometric Pressure Module
BME280 (GY-BME280) Temperature/Humidity/Barometric Pressure module
BMP280 (HW-611) Temperature/Barometric Pressure module
BME680 Temperature/Humidity/Barometric Pressure/Gas (VOC) Module
BME688 Temperature/Humidity/Barometric Pressure/Gas (VOC) with AI Module
BMP180 Temperature/Barometric Pressure Module
Another name for the GY-68 module is a breakout board that integrates the Bosch BMP180 sensor to measure atmospheric pressure, temperature, and altitude. The two terms refer to different components of the same product for hobbyist use: the BMP180 is the sensing chip on the GY-68 printed-circuit board.
The GY-68 BMP180 sensor module is known for its high precision, low power consumption, and ease of use via the I2C interface, making it popular for a wide range of DIY and IoT projects.
| Feature | Specification |
|---|---|
| Chipset | Bosch BMP180 |
| Operating Voltage | 3.3V–5.5V (module input voltage, includes voltage regulator); the chip itself runs on 1.8V–3.6V |
| Power Consumption | Ultra-low power, typically 0.5 µA in standard mode (at 1 Hz sampling) |
| Interface | I²C (Serial Data Line/SDA and Serial Clock Line/SCL) |
| Multiple modules on the I²C | No. Default address 0x77 is fixed, making it impossible to add multiple sensors to the same I²C bus |
| Pressure Range | 300 to 1100 hPa (+9000m to -500m relative to sea level) |
| Pressure Accuracy | Up to ±0.03 hPa (~0.25m resolution) in high resolution mode |
| Temperature Range | -40°C to +85°C |
| Temperature Accuracy | ±0.5°C |
| Calibration | Fully calibrated at the factory, and data is stored in internal E2PROM |
BME280 Temperature/Humidity/Barometric Pressure module
Another name, GY-BME280, is a sensor module that integrates the Bosch BME280 environmental sensor chip and measures temperature, humidity, and atmospheric pressure. It is an upgrade to the BMP280 and is widely used in hobbyist electronics and IoT projects for comprehensive environmental monitoring.
The Bosch BME280 sensor features high precision and low power consumption, making it suitable for battery-powered systems. The GY-BME280 module often includes a voltage regulator and a logic-level converter, allowing it to operate with both 3.3V and 5V microcontrollers such as Arduino and Raspberry Pi.
| Feature | Specification |
|---|---|
| Chipset | Bosch BME280 |
| Measurements | Temperature, Humidity, and Pressure |
| Operating Voltage | 3.3V–5V (via onboard regulator on some modules; chip runs on 1.71V–3.6V) |
| Interface | I²C (default) and SPI (optional) |
| Multiple modules on the I²C | Max. 2 modules. The module's default I²C address is 0x76, which can be easily changed to 0x77 using the provided solder jumper * |
| Temperature Range | -40°C to +85°C |
| Humidity Range | 0% to 100% relative humidity (±3% accuracy) |
| Pressure Range | 300 to 1100 hPa (±1.0 hPa accuracy) |
| Power Consumption | As low as 0.1 µA in sleep mode, or 3.6 µA at 1 Hz for all three measurements |
*: To change the I²C address to 0x77, cut the trace between the middle and left copper pads with a sharp knife. Then add a solder blob between the middle and right copper pads to short them.
BMP280 (HW-611) Temperature/Barometric Pressure module
The GY-BMP280-3.3 is a sensor module featuring the Bosch BMP280 environmental sensor chip, which precisely measures atmospheric pressure and temperature. This module operates from a 3.3V DC power supply, making it a low-power solution for applications such as weather monitoring, altimetry, and navigation systems.
The Bosch BMP280 improves on its predecessors (BMP085/BMP180) by delivering better performance and lower power consumption in a smaller form factor. The GY-BMP280-3.3 module features versatile interfacing and precise measurements.
| Feature | Specification |
|---|---|
| Chipset | Bosch BMP280 |
| Measurements | Pressure and Temperature (Does not measure humidity) |
| Operating Voltage | 3.3V DC (module input voltage; chip runs on 1.71V–3.6V) |
| Power Consumption | Ultra-low power, typically 2.7 µA at 1 Hz sampling rate |
| Interface | I²C (up to 3.4 MHz) and SPI (up to 10 MHz) |
| Multiple modules on the I²C | Max. 2 modules. Default I²C is: 0x76 (SDO pin low). 2nd I²C address is: 0x77 * |
| Pressure Range | 300 to 1100 hPa (+9000m to -500m relative to sea level) |
| Pressure Accuracy | Up to ±1 hPa absolute accuracy, allowing for ~±1m altitude resolution |
| Temperature Range | -40°C to +85°C |
| Temperature Accuracy | ±1.0°C |
| Calibration | Factory-calibrated, with data stored in internal E2PROM |
*: To set the I²C address to 0x77, connect pin 6 of the module (SDO) to Vcc, typically the 3.3V supply, and connect pin 5 of the module (CSB) to Vcc to select the I²C interface.
GY-BMP280-3.3 Pinout
| Pin | Name | I²C Function | SPI Function (4-wire) | Description | |
|---|---|---|---|---|---|
| 1 | VCC | Power (3.3V) | Power (3.3V) | Supply voltage (1.71V to 3.6V) | |
| 2 | GND | Ground | Ground | Common ground | |
| 3 | SCL | SCL | SCK | Serial clock line | |
| 4 | SDA | SDA | SDI (MOSI) | Serial data line | |
| 5 | CSB | High (I²C) | CS | Chip select. Pull High for I²C (default via onboard resistor) or Low for SPI | |
| 6 | SDO | ADR | SDO (MISO) | Sets I²C address: High for 0x77, Low for 0x76 (default). Never leave the SDO pin floating. If it is not tied to GND or VCC, the I²C address may fluctuate randomly between the two values, causing communication errors. |
|
If you'd like to support the development of the site with the price of a coffee — or a few — please do so here.
Here's a handy tip: you can quickly save this page as a PDF by clicking “export to PDF” in the menu on the right side of the screen.
BME680 Temperature/Humidity/Barometric Pressure/Gas (VOC) Module
The BME680 (CJMCU-680) is an environmental sensor breakout board based on the Bosch BME680 chip. It is a versatile “4-in-1” module designed for DIY electronics and IoT projects.
Core Capabilities
The module measures four distinct environmental parameters:
- Temperature: Provides ambient temperature readings.
- Humidity: Measures relative humidity.
- Barometric Pressure: Can be used to calculate altitude or track weather changes.
- Gas (VOC): Features a heated metal-oxide sensor that detects Volatile Organic Compounds (VOCs) to estimate indoor air quality.
| Feature | Specification | Details |
|---|---|---|
| Model | CJMCU-680 / BME680 | 4-in-1 Environmental Sensor |
| Operating Voltage | 1.7V – 3.6V | Often compatible with 5V via onboard regulator |
| Communication | I²C or SPI | I²C (up to 3.4 MHz), SPI (up to 10 MHz) |
| Multiple modules on the I²C | Max. 2 modules. Default I²C is: 0x76 (SDO pin low). 2nd I²C address is: 0x77 * | |
| Current (Sleep) | 0.15 µA | Extremely low standby power |
| Current (Active) | 2.1 µA – 12 mA | Varies by mode; gas sensor heater uses most power |
| Dimensions | ~30 x 14 x 10 mm | Compact breakout board size |
Sensor Performance
| Parameter | Measurement Range | Accuracy / Tolerance |
|---|---|---|
| Temperature | -40°C to +85°C | ±1.0°C |
| Humidity | 0% to 100% RH | ±3% RH |
| Pressure | 300 to 1100 hPa | ±1 hPa (absolute) / ±0.12 hPa (relative) |
| Gas (VOC) | Qualitative IAQ Index | Detects ethanol, CO, and other VOCs |
Gas Sensor Note: For accurate air quality readings, it is recommended to “burn-in” the sensor for 48 hours during the first use and allow 30 minutes of warm-up time for each subsequent session.
Response Times:
- Gas Sensor: < 1 second (τ33-63%)
- Humidity Sensor: ~8 seconds (τ0-63%)
Comparison Table: BME680 vs. BME688
| Feature | BME680 | BME688 |
|---|---|---|
| Primary Focus | General Air Quality (IAQ) | Specific Gas Detection & AI |
| Gas Sensor Type | MOX (Metal Oxide) | |
| AI Integration | None (Software-based IAQ only) | Integrated AI support (BME AI-Studio) |
| Gas Detection | Broad VOCs (Volatile Organic Compounds) | VOCs + VSCs (Volatile Sulfur Compounds) |
| Gas resistance range | Standard | Extended (for better discrimination) |
| Humidity Stability | Moderate cross-sensitivity (~15-25% error) | High stability (<5% error in high humidity) |
| Software Support | Basic BSEC library | BSEC + BME AI-Studio |
| Replacement Type | N/A | Backward compatible “Drop-in” replacement |
CJMCU-680 Pinout
The standard CJMCU-680 module uses the following pin arrangement:
| Pin | Name | Function |
|---|---|---|
| 1 | VCC | Power Supply (1.7V to 3.6V; commonly used with 3.3V) |
| 2 | GND | Ground |
| 3 | SCL | I²C Clock (SCL) or SPI Clock (SCK) |
| 4 | SDA | I²C Data (SDA) or SPI Data In (SDI/MOSI) |
| 5 | SDO | SPI Data Out (MISO). Also sets the I²C Address: connect to GND for 0x76 (default) or VCC for 0x77. Never leave the SDO pin floating. If it is not tied to GND or VCC, the I²C address may fluctuate randomly between the two values, causing communication errors. |
| 6 | CS | Chip Select for SPI. Pulling this high or leaving it disconnected defaults the module to I²C mode |
Controller wiring
- SCL: A5
- GND: GND
- SDA: A4
- Vdd: 3.3V (or 5V if your breakout board has a regulator).
Source codes
Arduino C : Read BME680 Temperature/Humidity/Barometric Pressure/Gas (VOC) Module
RP2040_ETH_Modul: Read BME 680/688 sensor data
RP2040_ETH_Modul: Read BME 680/688 sensor data and store in Modbus input registers
BME688 Temperature/Humidity/Barometric Pressure/Gas (VOC) Module
The Bosch BME688 is an advanced 4-in-1 environmental sensor that integrates high-accuracy measurements for temperature, humidity, barometric pressure, and gas. It is the first sensor of its kind to include Artificial Intelligence (AI) features, enabling it to detect specific gas compositions, such as Volatile Organic Compounds (VOCs) and Volatile Sulfur Compounds (VSCs).
| Parameter | Measurement Range | Accuracy | |
|---|---|---|---|
| Temperature-40°C to +85°C | ±0.5°C to ±1.0°C | ||
| Humidity | 0 to 100% | RH±3% RH | |
| Pressure | 300 to 1100 hPa | ±0.6 hPa (absolute) | |
| Gas Sensor | VOC, VSC, CO, H₂ | AI-trained classification | |
Hardware & Communication
- Operating Voltage: 1.71V to 3.6V (typically 3.3V).
- Interface: Supports both I²C (up to 3.4 MHz) and SPI (up to 10 MHz).
- I²C Addresses: The default is 0x76 or 0x77, depending on the SDO pin connection.
- Current Consumption: Ranges from 0.15 µA in sleep mode to 3.9 mA during a standard gas scan.
AI Features (The “Digital Nose”)
The BME688's standout feature is its ability to be trained using the BME AI-Studio software. This allows the sensor to:
- Recognize unique “fingerprints” of different gas mixtures.
- Detect bacteria growth or spoiled food by identifying volatile sulfur compounds.
- Provide an Indoor Air Quality (IAQ) index through the Bosch BSEC software library.
Comparison Table: BME680 vs. BME688
| Feature | BME680 | BME688 |
|---|---|---|
| Primary Focus | General Air Quality (IAQ) | Specific Gas Detection & AI |
| Gas Sensor Type | MOX (Metal Oxide) | |
| AI Integration | None (Software-based IAQ only) | Integrated AI support (BME AI-Studio) |
| Gas Detection | Broad VOCs (Volatile Organic Compounds) | VOCs + VSCs (Volatile Sulfur Compounds) |
| Gas resistance range | Standard | Extended (for better discrimination) |
| Humidity Stability | Moderate cross-sensitivity (~15-25% error) | High stability (<5% error in high humidity) |
| Software Support | Basic BSEC library | BSEC + BME AI-Studio |
| Replacement Type | N/A | Backward compatible “Drop-in” replacement |
Since the BME688 and BME680 provide gas data as resistance in ohms (Ω), the value decreases as the air becomes more polluted. Here is how to interpret those ohm values for a typical indoor environment:
| Gas Resistance (Ω) | Air Quality | Interpretation |
|---|---|---|
| > 1,000,000 (1M+) | ♦ Excellent | Very clean air. Typical for outdoors or well-ventilated rooms. |
| 500k – 1,000k | ♦ Very Good | Fresh indoor air. |
| 100k – 500k | ♦ Good | Normal indoor environment. |
| 50k – 100k | ♦ Fair | Noticeable odors or VOCs (e.g., cooking, cleaning products). |
| 10k – 50k | ♦ Poor | Significant pollution. Time to open a window. |
| < 10k | ♦ Very Poor | High concentration of VOCs or gases (e.g., heavy smoke or alcohol). |
Source codes
RP2040_ETH_Modul: Read BME 680/688 sensor data
RP2040_ETH_Modul: Read BME 680/688 sensor data and store in Modbus input registers
I²C topics on lamaPLC
This page has been accessed for: Today: 12, Until now: 285








