Skip to content
This repository has been archived by the owner on Apr 19, 2024. It is now read-only.

Sensirion/embedded-sgp

Repository files navigation

embedded-sgp CircleCI GitHub license

This repository contains the embedded driver sources for Sensirion's SGP product line.

Download the Latest Driver Release

Download the latest ready-to-use driver bundle from the releases page

We strongly recommend to use the driver from the release bundle instead of cloning the repository.

Note: If you use the SVM40 module (which contains an SGP40) please check out https://github.com/Sensirion/embedded-svm40.

Note: If you are using SGP40 or SGP41 sensor, please check out the following repositories:

Clone this repository

git clone --recursive https://github.com/Sensirion/embedded-sgp.git

Repository content

  • embedded-common - Submodule repository for common embedded driver stuff
  • embedded-sht - Submodule repository for SHT drivers
  • sgp40 - SPG40 driver
  • sgp40_voc_index - Driver for a SGP40 and SHTC3 combo with a VOC algorithm.
  • sgp30 - SGP30 driver
  • sgpc3 - SGPC3 driver
  • svm30 - Driver for the SVM30 module consisting of a SPG30 and an SHTC3 sensor.
  • sgpc3_with_shtc1 - Driver for a SGPC3 and SHTC1 sensor combo.
  • sgp-common - Common code for all SGP drivers.

Collecting resources

make release

This will create a release folder with the necessary driver files in it, including a Makefile. That way, you have just ONE folder with all the sources ready to build your driver for your platform.

Files to adjust (from embedded-common)

You only need to touch the following files:

  • sensirion_arch_config.h (architecture specifics, you need to specify the integer sizes)

and depending on your i2c implementation one of the following:

  • sensirion_hw_i2c_implementation.c (functions for hardware i2c communication if your platform supports that)
  • sensirion_sw_i2c_implementation.c (functions for software i2c communication via GPIOs)

Building the driver

  1. Step into your desired directory (e.g.: release/sgp30)
  2. Adjust sensirion_arch_config.h if you don't have the <stdint.h> header file available
  3. Implement necessary functions in one of the *_implementation.c files
  4. make

Please check the embedded-common repository for further information and sample implementations.