A program to set instructions and get information from an SVM30. It has been tested to run on Raspberry Pi
A detailed description of the options and findings are available in the svm30.odt
A version for Arduino & variants is available on
As part of a larger project I am looking at analyzing and understanding the air quality. I have done a number of projects on air-sensors. The SVM30 sensor is a new kid on the block that looks interesting. This is a working driver + user level program.
A word of warning: the SVM30 needs a female plug, which is different depending on the rpoduct version of your board
SVM30-Y Yeonho Electronics, 20037WR-04
SVM30-J Scondar SCT2001WR -S-4P compatible to JST part no. S4B-PH-SM4-TB
Install latest from BCM2835 from : http://www.airspayce.com/mikem/bcm2835/
- wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.56.tar.gz
- tar -zxf bcm2835-1.56.tar.gz // 1.56 was version number at the time of writing
- cd bcm2835-1.56
- ./configure
- sudo make check
- sudo make install
To create a build with only the SVM30 monitor type: make To create a build with the SVM30 and SDS011 monitor type: make BUILD=SDS011 (requires the sds011 sub-directory)
-c 0x# set baseline CO2 to ####
-t 0x# set baseline TVOC to ####
-h continued humidity compensation
-m perform a measurement test
-d display ID-numbers and feature set only
-l # number of measurements (0 = endless)
-w # wait-time (seconds) between measurements
-v include verbose / debug information
-D do not display output in color
-T add / remove timestamp
-H add / remove humidity & temperature
-A add / remove CO2 / TVOC info"
-B add / remove baseline info
-R add / remove H2 and Ethanol signals
-E add / remove Dew point calculation
-J add / remove Absolute Humidity calc
-G add / remove HeatIndex calc
-F Display temperature (Fahrenheit/Celsius)
- added dewPoint and heatindex
- added temperature selection (Fahrenheit / Celsius)
- it seems that older product version(level 9) of the SGP30 / SVM30 fail to read raw data.
- added raw boolean (default true) to include(true) / exclude (false) raw data in case of older product version.
- added read-delay setting based on the kind of command request to improve stability
- added functions for inceptive baseline of the SGP30 (requires level 34 at least). Documented in SGP30 datasheet May 2020.
- Paul van Haastrecht ([email protected])
This project is licensed under the GNU GENERAL PUBLIC LICENSE 3.0
Make sure to read the SVM30, SHTC1 and SGP30 datasheets from Sensirion.
They provide good starting point for information and are added in the extras directory.
Philipp : Extra clarification on about female plug
Amy Kim : Help diagnosing older product version raw-reading issue.