I2C driver for SGP30 Sensirion VoC sensor

  • Author(s): ladyada

Implementation Notes


Software and Dependencies:

class adafruit_sgp30.Adafruit_SGP30(i2c, address=88)[source]

A driver for the SGP30 gas sensor.

  • i2c (I2C) – The I2C bus the SGP30 is connected to.

  • address (int) – The I2C address of the device. Defaults to 0x58

Quickstart: Importing and using the SGP30 temperature sensor

Here is one way of importing the Adafruit_SGP30 class so you can use it with the name sgp30. First you will need to import the libraries to use the sensor

import busio
import board
import adafruit_sgp30

Once this is done you can define your busio.I2C object and define your sensor object

i2c = busio.I2C(board.SCL, board.SDA, frequency=100000)
sgp30 = adafruit_sgp30.Adafruit_SGP30(i2c)

Now you have access to the Carbon Dioxide Equivalent baseline using the baseline_eCO2 attribute and the Total Volatile Organic Compound baseline using the baseline_TVOC

eCO2 = sgp30.baseline_eCO2
TVOC = sgp30.baseline_TVOC
property Ethanol

Ethanol Raw Signal in ticks

property H2

H2 Raw Signal in ticks

property TVOC

Total Volatile Organic Compound in parts per billion.

property baseline_TVOC

Total Volatile Organic Compound baseline value

property baseline_eCO2

Carbon Dioxide Equivalent baseline value

property eCO2

Carbon Dioxide Equivalent in parts per million


Retreive the IAQ algorithm baseline for eCO2 and TVOC


Initialize the IAQ algorithm


Measure the eCO2 and TVOC


Measure H2 and Ethanol (Raw Signals)

set_iaq_baseline(eCO2, TVOC)[source]

Set the previously recorded IAQ algorithm baseline for eCO2 and TVOC


Set the humidity in g/m3 for eCO2 and TVOC compensation algorithm

set_iaq_relative_humidity(celsius, relative_humidity)[source]

Set the humidity in g/m3 for eCo2 and TVOC compensation algorithm. The absolute humidity is calculated from the temperature (Celsius) and relative humidity (as a percentage).