Skip to content

Commit

Permalink
Third Party Hardware Drivers Extension v4.1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
silabs-DanielN authored Feb 12, 2025
1 parent 318d098 commit 984cc5d
Show file tree
Hide file tree
Showing 1,221 changed files with 31,320 additions and 27,722 deletions.
31 changes: 22 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Third Party Hardware Drivers #

[![Version Badge](https://img.shields.io/badge/v4.0.0-green)](https://github.com/SiliconLabs/third_party_hw_drivers_extension/releases)
[![GSDK Badge](https://img.shields.io/badge/SiSDK-v2024.6.2-green)](https://github.com/SiliconLabs/gecko_sdk/releases)
[![WSDK Badge](https://img.shields.io/badge/WSDK-v3.3.4-green)](https://github.com/SiliconLabs/wiseconnect/releases)
[![Version Badge](https://img.shields.io/badge/v4.1.0-green)](https://github.com/SiliconLabs/third_party_hw_drivers_extension/releases)
[![SiSDK Badge](https://img.shields.io/badge/SiSDK-v2024.12.0-green)](https://github.com/SiliconLabs/simplicity_sdk/releases)
[![WSDK Badge](https://img.shields.io/badge/WSDK-v3.4.0-green)](https://github.com/SiliconLabs/wiseconnect/releases)
![License badge](https://img.shields.io/badge/License-Zlib-green)

This repo contains example drivers developed by Silicon Labs engineers and are provided as [an SDK extension](https://docs.silabs.com/simplicity-studio-5-users-guide/latest/ss-5-users-guide-getting-started/install-sdk-extensions). 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.
Expand All @@ -17,8 +17,7 @@ The following table shows extension support for Silicon Labs SoCs where ![Static
|Series 2|![Static Badge](https://img.shields.io/badge/supported-green)|![Static Badge](https://img.shields.io/badge/supported-green)|![Static Badge](https://img.shields.io/badge/supported-green)|![Static Badge](https://img.shields.io/badge/supported-green)|
|SiWx917|||![Static Badge](https://img.shields.io/badge/preview-orange)|![Static Badge](https://img.shields.io/badge/supported-green)|


This extension supports Simplicity SDK from v4.0.0, prior versions support GSDK.
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.

Expand Down Expand Up @@ -137,7 +136,8 @@ A full list of all examples and drivers in this repository is defined below:
| 105 | Water Detect Click (Mikroe) | [Example](./app/example/mikroe_water_detect) | [Documentation](./app/documentation/example/mikroe_water_detect) |
| 106 | Weather Station (Sparkfun) | [Example](./app/example/sparkfun_weatherstation) | [Documentation](./app/documentation/example/sparkfun_weatherstation) |
| 107 | XM125 - PCR Click (Mikroe) | [Example](./app/example/mikroe_pcr_xm125) | [Documentation](./app/documentation/example/mikroe_pcr_xm125) |

| 108 | RGB Driver Click (Mikroe) | [Example](./app/example/mikroe_rgb_driver) | [Documentation](./app/documentation/example/mikroe_rgb_driver) |
| 109 | DRV8245P - DC Motor 29 Click (Mikroe) | [Example](./app/example/mikroe_dcmotor29_drv8245p) | [Documentation](./app/documentation/example/mikroe_dcmotor29_drv8245p) |

## Drivers ##

Expand Down Expand Up @@ -266,6 +266,12 @@ A full list of all examples and drivers in this repository is defined below:
<a href="./driver/public/silabs/tft_lcd_st7789">Driver</a>
</td>
</tr>
<tr></tr>
<td colspan="2" align="left">&nbsp;&nbsp;&nbsp;&nbsp;RGB Driver Click (Mikore)</td>
<td>
<a href="./driver/public/mikroe/rgb">Driver</a>
</td>
</tr>
<tr></tr>
<tr>
<td colspan="3" align="left"><b>Human Machine Interface</b></td>
Expand Down Expand Up @@ -391,7 +397,7 @@ A full list of all examples and drivers in this repository is defined below:
<tr>
<td colspan="2" align="left">&nbsp;&nbsp;&nbsp;&nbsp;A4988 - Stepper 2 Click (Mikroe)</td>
<td>
<a href="./driver/public/mikroe/stepper2_a4988">Driver</a>
<a href="./driver/public/silabs/stepper2_a4988">Driver</a>
</td>
</tr>
<tr></tr>
Expand Down Expand Up @@ -437,6 +443,13 @@ A full list of all examples and drivers in this repository is defined below:
</td>
</tr>
<tr></tr>
<tr>
<td colspan="2" align="left">&nbsp;&nbsp;&nbsp;&nbsp;TB9053FTG - DC Motor 29 Click (Mikroe)</td>
<td>
<a href="./driver/public/mikroe/dcmotor29_drv8245p">Driver</a>
</td>
</tr>
<tr></tr>
<tr>
<td colspan="3" align="left"><b>Power Management</b></td>
</tr>
Expand Down Expand Up @@ -1045,8 +1058,8 @@ A full list of all examples and drivers in this repository is defined below:
- 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
- Simplicity SDK 2024.12.0
- WiSeConnect SDK 3.4.0

## How to add to Simplicity Studio IDE ##

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,34 +2,34 @@

## Summary ##

This project aims to implement a hardware driver interacting with the [Adafruit NeoTrellis RGB for 4x4 Keypad](https://www.adafruit.com/product/3954) via APIs of GSDK.
This project aims to implement a hardware driver interacting with the [Adafruit NeoTrellis RGB for 4x4 Keypad](https://www.adafruit.com/product/3954) using Silicon Labs platform.

Adafruit NeoTrellis 4x4 keypad is a trellis 4x4 elastomer-button keypad kit with a PCB with full-color NeoPixel support. These 4x4 button pad boards are fully tile-able and communicate over I2C. With 5 address pins, you get the ability to connect up to 32 together in any arrangement by soldering them edge-to-edge and soldering closed the I2C address jumpers, then use one I2C connection for all tiled NeoTrellis boards. Each NeoTrellis board comes with a seesaw chip and 16 NeoPixels already soldered in place.

## Required Hardware ##

- [BGM220 Explorer Kit board](https://www.silabs.com/development-tools/wireless/bluetooth/bgm220-explorer-kit)
- Or [SiWx917 Wi-Fi 6 and Bluetooth LE 8 MB Flash SoC Pro Kit](https://www.silabs.com/development-tools/wireless/wi-fi/siwx917-pk6031a-wifi-6-bluetooth-le-soc-pro-kit) (BRD4002 + BRD4338A)
- [Adafruit NeoTrellis RGB for 4x4 Keypad](https://www.adafruit.com/product/3954)
- 1x [BGM220-EK4314A](https://www.silabs.com/development-tools/wireless/bluetooth/bgm220-explorer-kit) BGM220 Bluetooth Module Explorer Kit
- Or 1x [Wi-Fi Development Kit](https://www.silabs.com/development-tools/wireless/wi-fi) based on SiWG917 (e.g. [SIWX917-DK2605A](https://www.silabs.com/development-tools/wireless/wi-fi/siwx917-dk2605a-wifi-6-bluetooth-le-soc-dev-kit) or [SIWX917-RB4338A](https://www.silabs.com/development-tools/wireless/wi-fi/siwx917-rb4338a-wifi-6-bluetooth-le-soc-radio-board))
- 1x [Adafruit NeoTrellis RGB for 4x4 Keypad](https://www.adafruit.com/product/3954)

## Hardware Connection ##

- **If the BGM220 Explorer Kit board is used**:

Adafruit NeoTrellis can connect with your board easily via the Qwiic connector. It includes a JST-PH 4-pin connector that provides two I2C wires (SDA and SCL), 3v3, and GND. You can use [the JST PH to JST SH (qwiic) Cable](https://www.adafruit.com/product/4424) to connect to your board.

The Adafruit NeoTrellis supports Qwiic, so it can connect easily to the Qwiic header of the BGM220 Explorer Kit board. The hardware connection is shown in the image below:

![connection](image/connection.png)

- **If the SiWx917 Wi-Fi 6 and Bluetooth LE 8 MB Flash SoC Pro Kit is used**:
- **If the Wi-Fi Development Kit is used**:

The hardware connection is shown in the table below:

| Description | BRD4338A GPIO | BRD4002 EXP Header | Adafruit NeoTrellis |
| -------------| ------------- | ------------------ | ------------------ |
| I2C_SDA | ULP_GPIO_6 | EXP_16 | SDA |
| I2C_SCL | ULP_GPIO_7 | EXP_15 | SCL |
| Description | BRD4338A + BRD4002A | BRD2605A | Adafruit NeoTrellis |
| -------------| ------------- | ------------------ | ------------------- |
| I2C_SDA | ULP_GPIO_6 [EXP_16] | ULP_GPIO_6 | SDA |
| I2C_SCL | ULP_GPIO_7 [EXP_15] | ULP_GPIO_7 | SCL |

## Setup ##

Expand Down Expand Up @@ -61,10 +61,10 @@ You can either create a project based on an example project or start with an emp

- [Services][IO Stream][IO Stream: USART] → default instance name: vcom
- [Application][Utility][Log]
- [Platform][Driver][I2C][I2CSPM]qwiic instance
- [Platform][Driver][I2C][I2CSPM]default instance name: qwiic
- [Third Party Hardware Drivers][Human Machine Interface][NeoTrellis 4x4 Keypad (Adafruit)]

**If the SiWx917 Wi-Fi 6 and Bluetooth LE 8 MB Flash SoC Pro Kit is used:**
**If the Wi-Fi Development Kit is used:**

- [WiSeConnect 3 SDK][Device][Si91x][MCU][Peripheral][I2C][i2c2]
- [Third Party Hardware Drivers][Human Machine Interface][NeoTrellis 4x4 Keypad (Adafruit)]
Expand All @@ -75,7 +75,7 @@ You can either create a project based on an example project or start with an emp

- Make sure that the **Third Party Hardware Drivers** extension is installed. If not, follow [this documentation](https://github.com/SiliconLabs/third_party_hw_drivers_extension/blob/master/README.md#how-to-add-to-simplicity-studio-ide).

- SDK Extension must be enabled for the project to install **NeoTrellis 4x4 Keypad (Adafruit)** component.
- **Third Party Hardware Drivers** extension must be enabled for the project to install **NeoTrellis 4x4 Keypad (Adafruit)** component.

## How It Works ##

Expand Down
24 changes: 12 additions & 12 deletions app/documentation/example/adafruit_rgb_led_is31fl3741/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Summary ##

This project aims to implement a hardware driver interacting with the [IS31FL3741 Adafruit 13x9 PWM RGB LED Matrix](https://learn.adafruit.com/adafruit-is31fl3741) via APIs of GSDK.
This project aims to implement a hardware driver interacting with the [IS31FL3741 Adafruit 13x9 PWM RGB LED Matrix](https://learn.adafruit.com/adafruit-is31fl3741) using Silicon Labs platform.

Adafruit RGB LED Matrix is a 13x9 RGB LED matrix breakout. It features 117 RGB LEDs, each one 2x2mm in size, in a 13x9 grid with 3mm pitch spacing. The IS31FL3741 communicates over I2C and can set each LED element to have 16-bit color by using an 8-bit PWM signal. There's an adjustable current driver, so you can brighten or dim the whole display without losing color resolution. The module can be tiled side-to-side with others if desired up to 4 boards on the I2C bus.

Expand All @@ -12,11 +12,11 @@ Adafruit RGB LED Matrix is a 13x9 RGB LED matrix breakout. It features 117 RGB L

## Required Hardware ##

- [BGM220 Explorer Kit board](https://www.silabs.com/development-tools/wireless/bluetooth/bgm220-explorer-kit)
- 1x [BGM220-EK4314A](https://www.silabs.com/development-tools/wireless/bluetooth/bgm220-explorer-kit) BGM220 Bluetooth Module Explorer Kit

- Or [SiWx917 Wi-Fi 6 and Bluetooth LE 8 MB Flash SoC Pro Kit](https://www.silabs.com/development-tools/wireless/wi-fi/siwx917-pk6031a-wifi-6-bluetooth-le-soc-pro-kit?tab=overview) (BRD4002 + BRD4338A)
- Or 1x [Wi-Fi Development Kit](https://www.silabs.com/development-tools/wireless/wi-fi) based on SiWG917 (e.g. [SIWX917-DK2605A](https://www.silabs.com/development-tools/wireless/wi-fi/siwx917-dk2605a-wifi-6-bluetooth-le-soc-dev-kit) or [SIWX917-RB4338A](https://www.silabs.com/development-tools/wireless/wi-fi/siwx917-rb4338a-wifi-6-bluetooth-le-soc-radio-board))

- [Adafruit IS31FL3741 - 13x9 PWM RGB LED Matrix](https://learn.adafruit.com/adafruit-is31fl3741)
- 1x [Adafruit IS31FL3741 - 13x9 PWM RGB LED Matrix](https://learn.adafruit.com/adafruit-is31fl3741)

## Hardware Connection ##

Expand All @@ -26,12 +26,12 @@ Adafruit RGB LED Matrix is a 13x9 RGB LED matrix breakout. It features 117 RGB L

![connection](image/connection.png)

- If the SiWx917 Wi-Fi 6 and Bluetooth LE 8 MB Flash SoC Pro Kit is used:
- If the Wi-Fi Development Kit is used:

| Description | BRD4338A GPIO | BRD4002 EXP Header | Adafruit 13x9 PWM RGB LED Matrix |
| -------------| ------------- | ------------------ | ---------------------------- |
| I2C_SDA | ULP_GPIO_6 | EXP_16 | SDA |
| I2C_SCL | ULP_GPIO_7 | EXP_15 | SCL |
| Description | BRD4338A + BRD4002A | BRD2605A | Adafruit 13x9 PWM RGB LED Matrix |
| -------------| ------------- | ------------------ | ------------------- |
| I2C_SDA | ULP_GPIO_6 [EXP_16] | ULP_GPIO_6 | SDA |
| I2C_SCL | ULP_GPIO_7 [EXP_15] | ULP_GPIO_7 | SCL |

## Setup ##

Expand Down Expand Up @@ -66,12 +66,12 @@ You can either create a project based on an example project or start with an emp
- [Services][Timers][Sleep Timer]
- [Services][IO Stream][IO Stream: USART] → default instance name: vcom
- [Application][Utility][Log]
- [Platform][Driver][I2C][I2CSPM]qwiic instance
- [Platform][Driver][I2C][I2CSPM]default instance name: qwiic
- [Application][Utility][Assert]
- [Third Party Hardware Drivers][Display & LED][IS31FL3741 - 13x9 PWM RGB LED Matrix (Adafruit) - I2C]
- [Third Party Hardware Drivers][Services][GLIB - OLED Graphics Library]

**If the SiWx917 Wi-Fi 6 and Bluetooth LE 8 MB Flash SoC Pro Kit is used:**
**If the Wi-Fi Development Kit is used:**

- [WiSeConnect 3 SDK][Device][Si91x][MCU][Service][Sleep Timer for Si91x]
- [Application][Utility][Assert]
Expand All @@ -85,7 +85,7 @@ You can either create a project based on an example project or start with an emp

- Make sure that the **Third Party Hardware Drivers** extension is installed. If not, follow [this documentation](https://github.com/SiliconLabs/third_party_hw_drivers_extension/blob/master/README.md#how-to-add-to-simplicity-studio-ide).

- Third-party Drivers Extension must be enabled for the project to install **IS31FL3741 - 13x9 PWM RGB LED Matrix (Adafruit) - I2C** component.
- **Third Party Hardware Drivers** extension must be enabled for the project to install **IS31FL3741 - 13x9 PWM RGB LED Matrix (Adafruit) - I2C** component.

### Display Configuration ###

Expand Down
32 changes: 16 additions & 16 deletions app/documentation/example/adafruit_tft_lcd_hxd8357d/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,25 +14,25 @@ For testing, you will need a HXD8357D display breakout, like [this large 3.5" TF

## Required Hardware ##

- [EFR32xG24 Explorer Kit](https://www.silabs.com/development-tools/wireless/efr32xg24-explorer-kit?tab=overview)
- Or [SiWx917 Wi-Fi 6 and Bluetooth LE 8 MB Flash SoC Pro Kit](https://www.silabs.com/development-tools/wireless/wi-fi/siwx917-pk6031a-wifi-6-bluetooth-le-soc-pro-kit) (BRD4002 + BRD4338A)
- [Adafruit HXD8357D - 3.5" TFT LCD with Touchscreen](https://www.adafruit.com/product/2050)
- 1x [XG24-EK2703A](https://www.silabs.com/development-tools/wireless/efr32xg24-explorer-kit) EFR32xG24 Explorer Kit
- Or 1x [Wi-Fi Development Kit](https://www.silabs.com/development-tools/wireless/wi-fi) based on SiWG917 (e.g. [SIWX917-DK2605A](https://www.silabs.com/development-tools/wireless/wi-fi/siwx917-dk2605a-wifi-6-bluetooth-le-soc-dev-kit) or [SIWX917-RB4338A](https://www.silabs.com/development-tools/wireless/wi-fi/siwx917-rb4338a-wifi-6-bluetooth-le-soc-radio-board))
- 1x [Adafruit HXD8357D - 3.5" TFT LCD with Touchscreen](https://www.adafruit.com/product/2050)

## Hardware Connection ##

To connect the Adafruit 3.5" TFT LCD (with Touchscreen) with your board, you can see the pins mapping table below.

| EFR32xG24 Explorer Kit | SiWx917-RB4338A Radio Board | Connection | Pin function |
| --- | --- | --- | --- |
| PC8 | GPIO_47 (P26) | D/C | GPIO |
| PC0 | GPIO_28 (P31) | CS | SPI CS |
| PC1 | GPIO_25 (P25) | CLK | SPI SCK |
| PC2 | GPIO_26 (P27) | MISO | SPI MISO |
| PC3 | GPIO_27 (P29) | MOSI | SPI MOSI |
| PD5 | GPIO_7 (P20) | XP(X+) | AN |
| PD4 | ULP_GPIO_1 (P16) | YP(Y+) | AN |
| PB1 | GPIO_6 (P19) | YM(Y-) | AN |
| PA0 | ULP_GPIO_8 (P15) | XM(X-) | AN |
| EFR32xG24 Explorer Kit | BRD4338A + BRD4002A | BRD2605A | Connection | Pin function |
| --- | --- | --- | --- | --- |
| PC8 | GPIO_47 (P26) | GPIO_10 | D/C | GPIO |
| PC0 | GPIO_28 (P31) | GPIO_28 | CS | SPI CS |
| PC1 | GPIO_25 (P25) | GPIO_25 | CLK | SPI SCK |
| PC2 | GPIO_26 (P27) | GPIO_26 | MISO | SPI MISO |
| PC3 | GPIO_27 (P29) | GPIO_27 | MOSI | SPI MOSI |
| PD5 | GPIO_7 (P20) | GPIO_7 | XP(X+) | AN |
| PD4 | ULP_GPIO_1 (P16) | ULP_GPIO_1 | YP(Y+) | AN |
| PB1 | GPIO_6 (P19) | GPIO_6 | YM(Y-) | AN |
| PA0 | ULP_GPIO_8 (P15) | ULP_GPIO_8 | XM(X-) | AN |

*Note: To be able to communicate with TFT LCD using SPI mode, you need to solder closed the IM2 jumper on the back of the PCB.*

Expand All @@ -46,7 +46,7 @@ You can either create a project based on an example project or start with an emp

2. Click **Create** button on the example:

- **Third Party Hardware Drivers - HXD8357D - TFT LCD with Touchscreen (Adafruit) - SPI** if using without DMA.
- **Third Party Hardware Drivers - HXD8357D - TFT LCD with Touchscreen (Adafruit) - SPI** if using without DMA.
![Create an example without DMA](image/create_example_without_dma_mode.png)

- **Third Party Hardware Drivers - HXD8357D - TFT LCD with Touchscreen (Adafruit) - SPI with DMA** if using with DMA.
Expand Down Expand Up @@ -101,7 +101,7 @@ You can either create a project based on an example project or start with an emp

- Make sure that the **Third Party Hardware Drivers** extension is installed. If not, follow [this documentation](https://github.com/SiliconLabs/third_party_hw_drivers_extension/blob/master/README.md#how-to-add-to-simplicity-studio-ide).

- SDK Extension must be enabled for the project to install **HXD8357D - TFT LCD Display (Adafruit) - SPI** or **HXD8357D - TFT LCD Display (Adafruit) - SPI with DMA** component.
- **Third Party Hardware Drivers** extension must be enabled for the project to install **HXD8357D - TFT LCD Display (Adafruit) - SPI** or **HXD8357D - TFT LCD Display (Adafruit) - SPI with DMA** component.

## Calibration for Touch function ##

Expand Down
Loading

0 comments on commit 984cc5d

Please sign in to comment.