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.
The following table shows extension support for Silicon Labs SoCs where and denote preview and support, respectively.
Chip family | v1.x.x | v2.x.x | v3.x.x | v4.x.x |
---|---|---|---|---|
Series 1 | ||||
Series 2 | ||||
SiWx917 |
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:
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 |
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 |
- 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
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 Preferences → Simplicity Studio → SDKs 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.
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
|-
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.