Overview
The ENS160 is a digital multi-gas indoor air quality (IAQ) sensor manufactured by ScioSense (formerly ams OSRAM environmental sensors). Built on TrueMEMS technology with 4 independent metal-oxide (MOX) micro-hotplate sensing elements, it provides high resistance to siloxane contamination and chemical poisoning.
Processing raw MOX gas resistance data internally with an embedded ASIC algorithm, the ENS160 computes three calibrated air quality metrics directly over or SPI:
- Air Quality Index (AQI 1–5): According to German UBA indoor air quality guidelines.
- Total Volatile Organic Compounds (TVOC): .
- Equivalent (): .
It is widely deployed on SparkFun Qwiic, Adafruit STEMMA QT, and ESPHome environmental nodes for HVAC ventilation control and smart home air monitors.
Quick reference
Operating voltage (VCC) | 3.3 V to 5.0 V DC (breakout with 1.8V LDO & level shifters) |
IC supply voltage (VDD) | 1.71 V to 1.98 V DC (1.8 V nominal) |
| Interface | (up to 1.0 MHz) & SPI (up to 10 MHz) |
| Default address | 0x53 (ADDR pin High / un-connected) |
| Alternate address | 0x52 (ADDR pin Low to GND) |
| Air Quality Index (AQI) | 1 (Excellent) to 5 (Unhealthy) |
| TVOC range | 0 ppb to 65,000 ppb |
| range | 400 ppm to 65,000 ppm |
| Warm-up time | 3 minutes initial heating / 1 hour full baseline stabilization |
Pinout
Breakout module header & STEMMA QT / Qwiic connectors:
| Pin | Name | Type | Description |
|---|---|---|---|
| 1 | VCC | Power | Supply input (+3.3 V to +5.0 V DC) |
| 2 | GND | Power | Ground reference (0 V) |
| 3 | SCL / SCLK | Digital Input | Serial Clock / SPI Clock |
| 4 | SDA / MOSI | Digital Input / Output | Serial Data / SPI Data In |
| 5 | MISO | Digital Output | SPI Data Out (in SPI mode) |
| 6 | CS | Digital Input | Chip Select (High = mode, Low = SPI mode) |
| 7 | ADDR | Digital Input | Address select (High = 0x53, Low = 0x52) |
| 8 | INT | Digital Output | Active-Low interrupt output (data ready trigger) |
Specifications
| Parameter | Symbol | Min | Typ | Max | Unit | Conditions |
|---|---|---|---|---|---|---|
| Supply Voltage (Module) | 3.3 | 3.3 / 5.0 | 5.5 | V | Power rail with LDO | |
| Active Supply Current | — | 29.0 | 35.0 | mA | Continuous 4-hotplate heating | |
| Low Power Current | — | 0.9 | — | mA | Low power pulse mode | |
| Deep Sleep Current | — | 5 | — | µA | Reset state | |
| TVOC Range | 0 | — | 65000 | ppb | Parts per billion | |
| Range | 400 | — | 65000 | ppm | Equivalent estimate | |
| AQI Rating Range | 1 | — | 5 | — | 1 = Excellent, 5 = Unhealthy | |
| Operating Temperature | -40 | — | 85 | °C | Ambient air |
Temperature & Humidity Compensation
The ENS160 allows writing current ambient temperature ( in ) and relative humidity ( in ) values into compensation registers 0x13 and 0x15. Passing live temperature/humidity readings (from an paired AHT20, SHT31, or BME280 sensor) ensures max accuracy under varying climate conditions:
Wiring
| ENS160 Pin | → | Arduino / MCU | ESP32 | Notes |
|---|---|---|---|---|
VCC | 5V / 3.3V | 3.3V | Module includes 1.8V LDO | |
GND | GND | GND | System ground | |
SCL | A5 | GPIO 22 | Clock | |
SDA | A4 | GPIO 21 | Data | |
CS | 3.3V / 5V | 3.3V | Pull High for mode |
Example (ScioSense / SparkFun ENS160 Library)
#include <Wire.h>
#include "SparkFun_ENS160.h"
SparkFun_ENS160 myENS;
void setup() {
Serial.begin(115200);
Wire.begin();
Serial.println("ENS160 Multi-Gas Sensor Test");
if (!myENS.begin(0x53)) { // Default address 0x53
Serial.println("ENS160 not found! Check CS and ADDR pins.");
while (1);
}
// Set operating mode to Standard In-Air Operation (0x02)
myENS.setMode(ENS160_OPMODE_STD);
Serial.println("ENS160 initialized. Warming up...");
}
void loop() {
if (myENS.checkDataStatus()) {
Serial.print("AQI Index (1-5): "); Serial.print(myENS.getAQI());
Serial.print(" | TVOC: "); Serial.print(myENS.getTVOC()); Serial.print(" ppb");
Serial.print(" | eCO2: "); Serial.print(myENS.getECO2()); Serial.println(" ppm");
}
delay(2000);
}
Common mistakes
- Leaving
CSfloating: PullCSHigh to 3.3V for operation. FloatingCSdrops the IC into SPI mode. - Reading during initial 3-minute warm-up: The MOX micro-hotplates require 3 minutes after power-on to reach operating temperatures (). Readings during the first 180 seconds indicate
WARMUPstatus.
Notes
- ENS160 vs CCS811 vs SGP30: ENS160 features 4 independent MOX hotplates (vs 1 on CCS811) and higher siloxane immunity.
Assets & downloads
- datasheetdatasheet
- product-pagereference