Skip to content

SiliconLabs/third_party_hw_drivers_extension

Repository files navigation

Third Party Hardware Drivers

Version Badge GSDK Badge WSDK Badge License badge

This repo contains example drivers developed by Silicon Labs engineers and are provided as an SDK extension. These drivers interface with different types of external hardware and are tested against a specific device listed in the driver name. These drivers are intended to be fully compatible with Silicon Labs' wireless stacks. All drivers provide a minimal Simplicity Studio project for testing and to show an example usage of the driver. The driver source is provided for modification and extension as needed. All drivers in this repository are considered to be EVALUATION QUALITY which implies that the code provided in the repos is subjected to limited testing and is provided provided as-is. It is not suitable for production environments.

SoC Compatibility

The following table shows extension support for Silicon Labs SoCs where Static Badge and Static Badge denote preview and support, respectively.

Chip family v1.x.x v2.x.x v3.x.x v4.x.x
Series 1 Static Badge Static Badge Static Badge
Series 2 Static Badge Static Badge Static Badge Static Badge
SiWx917 Static Badge Static Badge

This extension supports Simplicity SDK from v4.0.0, prior versions support GSDK.

For the SiW917 chip family, WiseConnect SDK is supported from v3.0.0.

Each release provides SDK compatibility information in the README file, for further details check the version-specific readmes.

A full list of all examples and drivers in this repository is defined below:

Examples

No Name Example Documentation
1 A-172-MRQ - Fingerprint 2 Click (Mikroe) Example Documentation
2 A3967 - Stepper Click (Mikroe) Example Documentation
3 A4988 - Stepper 2 Click (Mikroe) Example Documentation
4 AC Current Click (Mikroe) Example Documentation
5 AD8318 - RF Meter Click (Mikroe) Example Documentation
6 AK9753 - Human Presence Sensor (Sparkfun) Example Documentation
7 AMG88XX - Grid-EYE Infrared Array Breakout (Sparkfun) Example Documentation
8 AS3935 - Thunder Click (Mikroe) Example Documentation
9 AS7265X - Triad Spectroscopy Sensor (SparkFun) Example Documentation
10 BG96 - LTE IoT 2 (Mikroe) Example Documentation
11 BMA400 - Accel 5 Click (Mikroe) - I2C Example Documentation
12 BMA400 - Accel 5 Click (Mikroe) - SPI Example Documentation
13 BME280 & CCS811 - Environmental Sensor Combo Breakout (Sparkfun) Example Documentation
14 BME688 - Environment 3 Click (Mikroe) - I2C Example Documentation
15 BME688 - Environment 3 Click (Mikroe) - SPI Example Documentation
16 BMI270 - 6DOF IMU (SparkFun) Example Documentation
17 BTHome v2 Example Documentation
18 BTHome v2 - Server Example Documentation
19 CAP1166 - Cap Touch 2 Click (Mikroe) Example Documentation
20 CMT-8540S-SMT - Buzz 2 Click (Mikroe) Example Documentation
21 DPS310 - Pressure 3 Click (Mikroe) - I2C Example Documentation
22 DPS310 - Pressure 3 Click (Mikroe) - SPI Example Documentation
23 DS3231M - RTC 10 (Mikroe) Example Documentation
24 DWM1000 - UWB Click (Mikroe) Example Documentation
25 DWM3000 - UWB 2 Click (Mikroe) Example Documentation
26 E-Paper Display - eINK Click (Mikroe) Example Documentation
27 E-paper EXT3-1 Example Documentation
28 EM3080-W - Barcode 2 Click (Mikroe) Example Documentation
29 EMG Click (Mikroe) Example Documentation
30 FSR400 - Force 3 Click (Mikroe) Example Documentation
31 HXD8357D - TFT LCD with Touchscreen (Adafruit) - SPI Example Documentation
32 HXD8357D - TFT LCD with Touchscreen (Adafruit) - SPI with DMA Example Documentation
33 HXD8357D - TFT LCD with Touchscreen (Adafruit) with LVGL Example Documentation
34 HXD8357D - TFT LCD with Touchscreen (Adafruit) with LVGL + DMA Example Documentation
35 ID-12LA - RFID Qwiic Reader (Sparkfun) Example Documentation
36 ILI9341 - TFT LCD with Touchscreen (Adafruit) - SPI Example Documentation
37 ILI9341 - TFT LCD with Touchscreen (Adafruit) - SPI with DMA Example Documentation
38 ILI9341 - TFT LCD with Touchscreen (Adafruit) with LVGL Example Documentation
39 ILI9341 - TFT LCD with Touchscreen (Adafruit) with LVGL + DMA Example Documentation
40 IR Generator (Silabs) Example Documentation
41 IS31FL3741 - 13x9 PWM RGB LED Matrix (Adafruit) Example Documentation
42 L9958 - DC Motor 24 Click (Mikroe) Example Documentation
43 LB11685AV - Brushless 16 Click (Mikroe) Example Documentation
44 LCA717 - Relay 2 Click (Mikroe) Example Documentation
45 LEA-6S - GPS Click (Mikroe) Example Documentation
46 LIN Bus Master Example Documentation
47 LIN Bus Slave Device 1 Example Documentation
48 LIN Bus Slave Device 2 Example Documentation
49 MAX-M10S - GNSS Receiver Breakout (Sparkfun) Example Documentation
50 MAX17048 - MAX17048EVKIT Evaluation Kits (Maxim) Example Documentation
51 MAX30101 & MAX32664 - Pulse Oximeter and Heart Rate Sensor (Sparkfun) Example Documentation
52 MAX30101 - Heart Rate 4 Click (Mikroe) Example Documentation
53 MAX6969 - UT-M 7-SEG R Click (Mikroe) Example Documentation
54 MAXM86161 - Heartrate 2 Click (Mikroe) Example Documentation
55 MIC 2 Click (Mikroe) Example Documentation
56 microSD Click (Mikroe) Example Documentation
57 ML8511A - UV Click (Mikroe) Example Documentation
58 MLX90632 - IrThermo 3 Click (Mikroe) Example Documentation
59 MLX90640 - IR Array Breakout (Sparkfun) Example Documentation
60 MM5D91-00 - Radar Click (Mikroe) Example Documentation
61 MMA8452Q - Triple Axis Accelerometer Breakout (Sparkfun) Example Documentation
62 MQ131 - Ozone 2 Click (Mikroe) Example Documentation
63 MQ3 - Alcohol Click (Mikroe) Example Documentation
64 MQ7 - CO Click (Mikroe) Example Documentation
65 NeoTrellis 4x4 Keypad (Adafruit) Example Documentation
66 NT3H2111 - NFC Tag 2 Click (Mikroe) - I2C Example Documentation
67 PCA9685 - Servo Click (Mikroe) Example Documentation
68 PH 2 Click (Mikroe) Example Documentation
69 PL-N823-01 - PIR Click (Mikroe) Example Documentation
70 PN7150 - NFC 2 Click (Mikroe) - I2C Example Documentation
71 PN7150 - Read a T2T Tag with NCI Example Documentation
72 PN7150 - Write to a T2T Tag with NCI Example Documentation
73 Pocket Geiger Radiation Sensor - Type 5 (Sparkfun) Example Documentation
74 Qwiic Joystick (Sparkfun) Example Documentation
75 Qwiic Keypad (Sparkfun) Example Documentation
76 Qwiic Soil Moisture Sensor (Sparkfun) - I2C Example Documentation
77 RA-08 - LR 9 Click (Mikroe) Example Documentation
78 RNG Click (Mikroe) Example Documentation
79 SCD41 & SPS30 - HVAC Click Bundle (Mikroe) Example Documentation
80 SCD41 - HVAC Click (Mikroe) Example Documentation
81 SGP40 - Air Quality Sensor (Sparkfun) Example Documentation
82 SHT40 & SGP40 - Environment 2 Click (Mikroe) Example Documentation
83 SHT40 - Temp&Hum 15 Click (Mikroe) Example Documentation
84 SHTC3 - Temp&Hum 9 Click (Mikroe) Example Documentation
85 Si8711CC - PWM Driver Click (Mikroe) Example Documentation
86 Smoke 2 Click (Mikroe) - I2C Example Documentation
87 SPS30 - Particulate Matter Sensor (Sparkfun) - I2C Example Documentation
88 SPS30 - Particulate Matter Sensor (Sparkfun) - UART Example Documentation
89 SSD1306 - Micro OLED Breakout Qwiic (Sparkfun) Example Documentation
90 SSD1306 - Mikroe OLEDW Click (Mikroe) Example Documentation
91 SSD1306 - Mikroe OLEDW Click (Mikroe) with GLIB Example Documentation
92 SSD1351 - OLED C Click (Mikroe) Example Documentation
93 ST7789 - TFT LCD Display (Adafruit) - SPI Example Documentation
94 ST7789 - TFT LCD Display (Adafruit) - SPI with DMA Example Documentation
95 ST7789 - TFT LCD Display (Adafruit) - with LVGL + DMA Example Documentation
96 STN1110 - OBDII Click (Mikroe) Example Documentation
97 Stretch Click (Mikroe) Example Documentation
98 TB6549FG - DC Motor 3 Click (Mikroe) Example Documentation
99 TB9053FTG - DC Motor 26 Click (Mikroe) Example Documentation
100 TSC2007 - Resistive Touch Screen Controller (Adafruit) Example Documentation
101 TSD-10 - Turbidity Click (Mikroe) Example Documentation
102 VCNL4040 - Proximity Sensor (Sparkfun) Example Documentation
103 VL53L1X - Distance Sensor (Sparkfun) Example Documentation
104 W5500 - ETH Wiz Click (Mikroe) Example Documentation
105 Water Detect Click (Mikroe) Example Documentation
106 Weather Station (Sparkfun) Example Documentation
107 XM125 - PCR Click (Mikroe) Example Documentation

Drivers

Audio & Voice
    CMT-8540S-SMT - Buzz 2 Click (Mikroe) Driver
    MIC 2 Click (Mikroe) Driver
Clock & Timing
    DS3231M - RTC 10 Click (Mikroe) Driver
Display & LED
    E-Paper Display - eINK Click (Mikroe) Driver
    E-Paper EXT3-1 (Pervasive Displays) Driver
    HXD8357D - TFT LCD Display (Adafruit) - SPI Driver
    HXD8357D - TFT LCD Display (Adafruit) - SPI with DMA Driver
    ILI9341 - TFT LCD Display (Adafruit) - SPI Driver
    ILI9341 - TFT LCD Display (Adafruit) - SPI with DMA Driver
    IS31FL3741 - 13x9 PWM RGB LED Matrix (Adafruit) - I2C Driver
    MAX6969 - UT-M 7-SEG R Click (Mikroe) Driver
    SSD1306 - Micro OLED Breakout (Sparkfun) - I2C Driver
    SSD1306 - OLED W Click (Mikroe) - SPI Driver
    SSD1351 - OLED C Click (Mikroe) Driver
    ST7789 - TFT LCD Display (Adafruit) - SPI Driver
    ST7789 - TFT LCD Display (Adafruit) - SPI with DMA Driver
Human Machine Interface
    A-172-MRQ - Fingerprint 2 Click (Mikroe) Driver
    CAP1166 - Capacitive Touch 2 Click (Mikroe) Driver
    NeoTrellis 4x4 Keypad (Adafruit) Driver
    Qwiic Joystick (Sparkfun) Driver
    Qwiic Keypad (Sparkfun) Driver
    Touch Screen (Analog) Driver
    Touch Screen Analog Interface (Gecko) Driver
    Touch Screen Analog Interface (Si91x) Driver
    TSC2007 - Resistive Touch Screen Controller (Adafruit) Driver
Interface
    STN1110 - OBDII Click (Mikroe) Driver
    W5500 - ETH WIZ Click (Mikroe) Driver
Miscellaneous
    IR Generator (Silabs) Driver
    LCA717 - Relay 2 Click (Mikroe) Driver
    RNG Click (Mikroe) Driver
Motor Control
    A3967 - Stepper Click (Mikroe) Driver
    A4988 - Stepper 2 Click (Mikroe) Driver
    L9958 - DC Motor 24 Click (Mikroe) Driver
    LB11685AV - Brushless 16 Click (Mikroe) Driver
    PCA9685 - Servo Click (Mikroe) Driver
    Si8711CC - PWM Driver Click (Mikroe) Driver
    TB6549FG - DC Motor 3 Click (Mikroe) Driver
    TB9053FTG - DC Motor 26 Click (Mikroe) Driver
Power Management
    MAX17048 - MAX17048EVKIT Evaluation Kits (Maxim) Driver
Sensors
    AC Current Click (Mikroe) Driver
    AD8318 - RF Meter Click (Mikroe) Driver
    ADPD188BI - Smoke 2 Click (Mikroe) - I2C Driver
    AK9753 - Human Presence Sensor (Sparkfun) - I2C Driver
    AMG88XX - Grid-EYE Infrared Array Breakout (Sparkfun) Driver
    AS3935 - Thunder Click (Mikroe) Driver
    AS7265x - Triad Spectroscopy Sensor (Sparkfun) - I2C Driver
    BMA400 - Accel 5 Click (Mikroe) - I2C Driver
    BMA400 - Accel 5 Click (Mikroe) - SPI Driver
    BME280 - Atmospheric Sensor (Sparkfun) Driver
    BME688 - Environment 3 Click (Mikroe) - I2C Driver
    BME688 - Environment 3 Click (Mikroe) - SPI Driver
    BMI270 - 6DOF IMU Breakout (Sparkfun) Driver
    CCS811 - Air Quality Sensor (Sparkfun) Driver
    DPS310 - Pressure 3 Click (Mikroe) - I2C Driver
    DPS310 - Pressure 3 Click (Mikroe) - SPI Driver
    EM3080-W - Barcode 2 Click (Mikroe) Driver
    EMG Click (Mikroe) Driver
    FSR400 - Force 3 Click (Mikroe) Driver
    MAX30101 & MAX32664 - Pulse Oximeter and Heart Rate Sensor (Sparkfun) Driver
    MAX30101 - Heart Rate 4 Click (Mikroe) Driver
    MAXM86161 - Heart Rate 2 Click (Mikroe) Driver
    MCP606 - Water Detect Click (Mikroe) Driver
    ML8511A - UV Click (Mikroe) Driver
    MLX90632 - IrThermo 3 Click (Mikroe) Driver
    MLX90640 - IR Array Breakout (Sparkfun) Driver
    MM5D91-00 - Radar Click (Mikroe) Driver
    MMA8452Q - Triple Axis Accelerometer Breakout (Sparkfun) Driver
    MQ131 - Ozone 2 Click (Mikroe) Driver
    MQ3 - Alcohol Click (Mikroe) Driver
    MQ7 - CO Click (Mikroe) Driver
    PH2 Click (Mikroe) Driver
    PL-N823-01 - PIR Click (Mikroe) Driver
    Pocket Geiger Radiation - Type 5 (Sparkfun) Driver
    Qwiic Soil Moisture Sensor (Sparkfun) - I2C Driver
    SCD41 & SPS30 - HVAC Click Bundle (Mikroe) Driver
    SCD41 - HVAC Click (Mikroe) Driver
    SGP40 - Air Quality Sensor (Sparkfun) Driver
    SHT40 & SGP40 - Environment 2 Click (Mikroe) Driver
    SHT40 - Temp&Hum 15 Click (Mikroe) Driver
    SHTC3 - Temp&Hum 9 Click (Mikroe) Driver
    SPS30 - Particulate Matter Sensor (Sparkfun) - I2C Driver
    SPS30 - Particulate Matter Sensor (Sparkfun) - UART Driver
    Stretch Click (Mikroe) Driver
    TSD-10 - Turbidity Click (Mikroe) Driver
    VCNL4040 - Proximity Sensor (Sparkfun) Driver
    VL53L1X - Distance Sensor Breakout (Sparkfun) Driver
    Weather Meter Kit - Rainfall (Sparkfun) Driver
    Weather Meter Kit - Wind Direction (Sparkfun) Driver
    Weather Meter Kit - Wind Speed (Sparkfun) Driver
    XM125 - PCR Click (Mikroe) - I2C Driver
Services
    BTHome v2 Driver
    BTHome v2 - Server Driver
    EnOcean Switch Proxy Server Driver
    FatFS - Generic FAT Filesystem Driver
    GLIB - OLED Graphics Library Driver
    GPIO helper for SI91X platform Driver
    LIN bus slave Driver
    LVGL - Graphics Library Driver
    MIPI Display Bus Interface (SPI - 4Wire)
    mikroSDK 2.0 SDK - Peripheral Drivers
        ADC Driver
        Digital I/O Driver
        I2C Driver
        OneWire Driver
        PWM Driver
        SPI Driver
        UART Driver
    NFC
        NFC - Common Driver
        NFC - NCI Driver
        NFC - NDEF Driver
        NFC - Tag Driver
Storage
    microSD - microSD Click (Mikroe) Driver
Wireless Connectivity
    BG96 - LTE IoT 2 Click (Mikroe) Driver
    DWM1000 - UWB Click (Mikroe) Driver
    DWM3000 - UWB 2 Click (Mikroe) Driver
    ID-12LA - RFID Reader (Sparkfun) - I2C Driver
    LEA-6S - GPS Click (Mikroe) Driver
    MAX-M10S - GNSS Receiver Breakout - I2C Driver
    NT3H2111 - NFC Tag 2 Click (Mikroe) - I2C Driver
    PN7150 - NFC 2 Click (Mikroe) - I2C Driver
    RA-08 - LR 9 Click (Mikroe) Driver

Requirements

  • Desired Silicon Labs Starter Kit
  • Driver specific test hardware
  • Simplicity Studio v5.9.3.2 or newer
  • Simplicity SDK 2024.6.2
  • WiSeConnect SDK 3.3.4

How to add to Simplicity Studio IDE

TPHD Quick Look Video

Detailed documentation available on https://docs.silabs.com or here.

  • Clone the repository somewhere on your PC

    git clone https://github.com/SiliconLabs/third_party_hw_drivers_extension.git

  • Add the SDK extension to the GSDK

    • In Simplicity Studio go to PreferencesSimplicity StudioSDKs and select the Gecko SDK Suite to which the SDK extension will be added. Click Add Extension…
    • Click Browse and navigate to the root folder of the package above and click Select Folder.
    • The SDK extension should be displayed in the Detected SDK Extension window with the Third Party Hardware Drivers name, version, and path. Click OK and then Trust and Apply and Close.
    • Restart Simplicity Studio

Make sure that Evaluation quality software components are enabled in the Software Component view.

SDK Outline

The Third Party Hardware Drivers SDK contains the following files and folders.

  +--third_party_hw_drivers.slce  > The UC SDK Extension description file
  +--third_party_hw_drivers.slsdk > File provides the ability to auto-scan protocols from the extension folder
  +--templates.xml                > This file contains meta data for showing the project example on Simplicity Studio
  +--app
  |  +--documentation             > Contains the simple documentations for each application example
  |  +--example                   > Simpler examples to demonstrate specific features
  |-
  +--driver
  |  +--component                 > Contains UC component description files (SLCC)
  |  +--inc                       > Contains Third Party Hardware Driver SDK Extension helpers file
  |  +--peripheral_drivers        > Contains the implementation of the peripheral driver layer's components.
  |-
  +--public                      > Contains the public interfaces for each integrated driver
  |  +--mikroe                   > Contains the public interfaces for integrated drivers from MikroE
  |     +--temphum9_shtc3
  |     +--heartrate2_maxm86161
  |     +--...
  |  +--sparkfun                 > Contains the public interfaces for integrated drivers from SparkFun
  |  +--silabs                   > Contains the public interfaces for integrated drivers from Silabs
  |  +--...
  |-
  +--third_party                 > Contains third-party libraries, and repositories like Mikroe Click library.
  |  +--mikrosdk_click_v2        > Contains the MikroE Click Board™ library sources
  |  +--...
  +--doc                         > Contains the doxygen documentation files
  |-

Reporting Bugs/Issues and Posting Questions and Comments

To report bugs in the Application Examples projects, please create a new "Issue" in the "Issues" section of this 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 this repo.