Overview

The Si7021 is a high-precision CMOS relative humidity and temperature sensor IC manufactured by Silicon Labs. Housed in a 3.0×3.0 mm3.0 \times 3.0\text{ mm} 6-pin DFN package (frequently fitted with an optional protective hydrophobic PTFE membrane filter cover over the sensor opening), it is used in weather stations, HVAC environmental controls, and indoor air monitors.

Delivering typical accuracies of ±3% RH\pm 3\%\ \text{RH} and ±0.4C\pm 0.4^\circ\text{C}, 14-bit temperature / 12-bit humidity ADC resolution, an integrated heating element, and I2CI^2C output (0x40), the Si7021 draws a standby sleep current of just 60 nA60\text{ nA}. It is fully command-compatible with the HTU21D.

Quick reference

Operating voltage (VIN)3.3 V to 5.0 V DC (breakout module with 3.3V LDO regulator)
IC supply voltage (VDD)1.9 V to 3.6 V DC (3.3 V nominal)
InterfaceI2CI^2C Fast-Mode (up to 400 kHz)
Fixed I2CI^2C address0x40
Humidity range & accuracy0% to 100% RH0\%\text{ to }100\%\text{ RH} (±3.0% RH\pm 3.0\%\ \text{RH} typical)
Temperature range & accuracy40C to +125C-40^\circ\text{C}\text{ to }+125^\circ\text{C} (±0.4C\pm 0.4^\circ\text{C} typical)
Protective FilterOptional factory-fitted PTFE hydrophobic film cover
Standby current60 nA60\text{ nA} (0.06 μA0.06\ \mu\text{A})

Pinout

Breakout module 4-pin header:

PinNameTypeDescription
1VINPowerSupply power input (+3.3 V to +5.0 V DC)
2GNDPowerGround reference (0 V)
3SCLDigital InputI2CI^2C Serial Clock
4SDADigital Input / OutputI2CI^2C Serial Data

Specifications

ParameterSymbolMinTypMaxUnitConditions
Supply Voltage (Module)VVINV_{VIN}3.33.3 / 5.05.5VPower rail with LDO
Active CurrentICCI_{CC}150180µAActive RH measurement
Standby CurrentIsdI_{sd}0.060.6µASleep mode
Temp Accuracy (0C60C0^\circ\text{C}\dots 60^\circ\text{C})TaccT_{acc}-0.4±0.4\pm 0.4+0.4°CTypical accuracy
RH Accuracy (0%80%0\%\dots 80\%)RHaccRH_{acc}-3.0±3.0\pm 3.0+3.0% RHAt 25C25^\circ\text{C}
Conversion Time (12-bit RH)trht_{rh}1012msStandard mode

Data Calculations & Math

  • Temperature Calculation (C^\circ\text{C}):

Temperature (C)=(175.72×Raw 16-bit Temp Register65536)46.85\text{Temperature } (^\circ\text{C}) = \left( \frac{175.72 \times \text{Raw 16-bit Temp Register}}{65536} \right) - 46.85

  • Humidity Calculation (% RH\%\text{ RH}):

Relative Humidity (% RH)=(125.0×Raw 16-bit RH Register65536)6.0\text{Relative Humidity } (\%\text{ RH}) = \left( \frac{125.0 \times \text{Raw 16-bit RH Register}}{65536} \right) - 6.0

Wiring

Si7021 PinArduino / MCUESP32Notes
VIN5V / 3.3V3.3VPower rail
GNDGNDGNDSystem ground
SCLA5GPIO 22I2CI^2C Clock
SDAA4GPIO 21I2CI^2C Data

Example (Adafruit_Si7021 Library)

cpp
#include <Wire.h>
#include "Adafruit_Si7021.h"

Adafruit_Si7021 sensor = Adafruit_Si7021();

void setup() {
  Serial.begin(115200);
  Serial.println("Adafruit Si7021 Sensor Test");

  if (!sensor.begin()) {
    Serial.println("Couldn't find Si7021 sensor! Check I2C wiring.");
    while (1);
  }

  Serial.print("Found Si7021 Serial Number: 0x");
  Serial.println(sensor.readSerialNumber(), HEX);
}

void loop() {
  float temp = sensor.readTemperature();
  float humidity = sensor.readHumidity();

  Serial.print("Temperature: "); Serial.print(temp); Serial.print(" °C | ");
  Serial.print("Humidity: "); Serial.print(humidity); Serial.println(" % RH");

  delay(1000);
}

Common mistakes

  • Peeling off the white PTFE filter protective sticker: On Si7021 modules equipped with a white PTFE film cover over the sensor opening, do not attempt to peel off the white film. It is a breathable hydrophobic barrier that protects the capacitive sensor element from dust contamination while allowing water vapor to pass.
  • Address collision (0x40): Si7021 shares I2CI^2C address 0x40 with HTU21D and HDC1080.

Notes

  • Si7021 vs HTU21D vs SHT31: Si7021 is command-compatible with HTU21D and includes an optional factory-fitted protective PTFE filter membrane.

Assets & downloads