Updated: 2021/Dec/3


SGP40MOX(4)                  Device Drivers Manual                 SGP40MOX(4)

NAME
     sgp40mox - Driver for Sensirion SGP40 MOx gas sensor

SYNOPSIS
     sgp40mox* at iic? addr 0x59

DESCRIPTION
     The sgp40mox driver provides an air quality measurement from the SGP40
     sensor via the envsys(4) framework.  The sgp40mox addr argument selects
     the address at the iic(4) bus.  The crc validity and temperature and %RH
     compensation can be changed through sysctl(8) nodes.

     In order to calculate the VOC index, the volatile organic compounds
     index, which is the measure of air quality the sensor is polled once a
     second and the raw sensor value is fed into the Sensirion VOC algorithm.
     This VOC algorithm used in this driver is licensed under a 3 clause BSD
     license and was pulled from the Sensirion Github repository at
     https://github.com/Sensirion/embedded-sgp.

SYSCTL VARIABLES
     The following sysctl(3) variables are provided:

     hw.sgp40mox0.compensation.temperature
             This should be set to the temperature in Celsius of the
             environment that the sensor is in.  The valid values are from -45
             to 130 degrees Celsius.

     hw.sgp40mox0.compensation.humidity
             This should be set to the %RH of the environment that the sensor
             is in.  The valid values are from 0 to 100.

             For the best performance of the VOC algorithm it is important
             that the temperature and %RH compensation values be current and
             set using the sysctl(3) variables mentioned above.  This data
             will need to be pulled from another source, such as a another
             sensor in the environment that the SGP40 is in.

     hw.sgp40mox0.ignorecrc
             If set, the crc calculation will be ignored on the calls to the
             chip for the purposes of measurement.

     hw.sgp40mox0.debug
             If the driver is compiled with SGP40_DEBUG, this node will appear
             and can be used to set the debugging level.

     hw.sgp40mox0.readattempts
             To read the air quality metric from the chip requires that the
             command be sent, then a delay must be observed before a read can
             be done to get the values back.  The delays are documented in the
             data sheet for the chip.  The driver will attempt to read back
             the values readattempts number of times.  The default is 10 which
             should be more than enough for most purposes.

SEE ALSO
     envsys(4), iic(4), envstat(8), sysctl(8)

HISTORY
     The sgp40mox driver first appeared in NetBSD 10.0.

AUTHORS
     The sgp40mox driver was written by Brad Spencer <brad@anduin.eldar.org>.

BUGS
     The driver does not make complete use of the VOC algorithm.  In
     particular, there is no need to restart the algorithm from scratch if
     there is a stoppage of polling for less than 10 minutes.  The driver does
     not have the ability to determine that, and therefore assumes that the
     sensor is completely cold each time the driver attaches to the chip.

     The temperature and humidity compensation could be allowed to contain
     fractional degrees Celsius and %RH.  The driver only supports setting
     whole numbers for either of those.

NetBSD 9.99                     October 7, 2021                    NetBSD 9.99