This project shows the driver implementing a carbon dioxide sensor using the SCD41 with the Silicon Labs Platform.
The HVAC Click is a compact add-on device containing next generation miniature CO2 sensor of Sensirion. This board features the SCD41, a carbon dioxide sensor built on the photoacoustic sensing principle. On-chip signal compensation is performed using integrated temperature and humidity sensors. It operates within a defined range of 400 to 5000 ppm, configurable via an I2C interface with single shot mode supported. This Click board™ is also suitable for indoor air quality applications using additional SPS30 allowing the smart ventilation system to adjust ventilation in the most energy efficient and people friendly manner, maintaining low CO2 concentration for a healthy, productive environment.
- EFR32xG24-EK2703A EFR32xG24 Explorer Kit
- Or SiWx917 Wi-Fi 6 and Bluetooth LE 8 MB Flash SoC Pro Kit (BRD4002 + BRD4338A)
- HVAC Click board based on SCD41 sensor
-
If the EFR32xG24 Explorer Kit is used:
The HVAC Click board supports MikroBus, so it can connect easily to the Explorer Kit via MikroBus header. Assure that the 45-degree corner of Click board matches the 45-degree white line of the Explorer Kit.
The hardware connection is shown in the image below:
-
If the SiWx917 Wi-Fi 6 and Bluetooth LE 8 MB Flash SoC Pro Kit is used:
The hardware connection is shown in the table below:
Description BRD4338A GPIO BRD4002 EXP Header HVAC Click board I2C_SDA ULP_GPIO_6 EXP_16 SDA I2C_SCL ULP_GPIO_7 EXP_15 SCL
You can either create a project based on an example project or start with an empty example project.
-
From the Launcher Home, add your board to My Products, click on it, and click on the EXAMPLE PROJECTS & DEMOS tab. Find the example project filtering by scd41.
-
Click Create button on the Third Party Hardware Drivers - SCD41 - HVAC Click (Mikroe) example. Example project creation dialog pops up -> click Create and Finish and Project should be generated.
-
Build and flash this example to the board.
-
Create an "Empty C Project" for your board using Simplicity Studio v5. Use the default project settings.
-
Copy the file
app/example/mikroe_hvac_scd41/app.c
into the project root folder (overwriting the existing file). -
Install the software components:
-
Open the .slcp file in the project.
-
Select the SOFTWARE COMPONENTS tab.
-
Install the following components:
-
If the BGM220P Explorer Kit is used:
- [Services] → [Timers] → [Sleep Timer]
- [Services] → [IO Stream] → [IO Stream: EUSART] → default instance name: vcom
- [Application] → [Utility] → [Log]
- [Third Party Hardware Drivers] → [Sensors] → [SCD41 - HVAC Click (Mikroe)]
-
If the SiWx917 Wi-Fi 6 and Bluetooth LE 8 MB Flash SoC Pro Kit is used:
- [WiSeConnect 3 SDK] → [Device] → [Si91x] → [MCU] → [Service] → [Sleep Timer for Si91x]
- [WiSeConnect 3 SDK] → [Device] → [Si91x] → [MCU] → [Peripheral] → [I2C] → [i2c2]
- [Third Party Hardware Drivers] → [Sensors] → [SCD41 - HVAC Click (Mikroe)]
-
-
-
Install "Printf float"
- Open Properties of the project.
- Select C/C++ Build > Settings > Tool Settings > GNU ARM C Linker > General > Check "Printf float".
-
Build and flash this example to the board.
Note:
-
Make sure that the Third Party Hardware Drivers extension is installed. If not, follow this documentation.
-
Third-party Drivers Extension must be enabled for the project to install "SCD41 - HVAC Click (Mikroe)" component.
Driver Layer Diagram is shown in the image below:
After you flash the code to your board and power the connected boards, the application starts running automatically. Use Putty/Tera Term (or another program) to read the values of the serial output. Note that your board uses the default baud rate of 115200.
In the image below you can see an example of how the output is displayed. The main program first performs a factory reset of the sensor and reads the serial number and feature set version. The main program continuously activates single shot measurements and receives measured values (CO2 concentration, temperature and relative humidity).
There is a periodic timer in the code, which determines the sampling intervals; the default sensor sampling rate is 5000 ms. If you need more frequent sampling, it is possible to change the corresponding timer value of the "app.c" file.
To report bugs in the Application Examples projects, please create a new "Issue" in the "Issues" section of third_party_hw_drivers_extension repo. Please reference the board, project, and source files associated with the bug, and reference line numbers. If you are proposing a fix, also include information on the proposed fix. Since these examples are provided as-is, there is no guarantee that these examples will be updated to fix these issues.
Questions and comments related to these examples should be made by creating a new "Issue" in the "Issues" section of third_party_hw_drivers_extension repo.