Skip to content

Commit

Permalink
Third Party Hardware Drivers Extension v4.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
silabs-BachN authored and silabs-DanielN committed Nov 22, 2024
1 parent b404827 commit 223ad1d
Show file tree
Hide file tree
Showing 1,516 changed files with 91,022 additions and 27,635 deletions.
1,141 changes: 1,038 additions & 103 deletions README.md

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -9,62 +9,71 @@ Adafruit NeoTrellis 4x4 keypad is a trellis 4x4 elastomer-button keypad kit with
## 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)

**NOTE:**
Tested boards for working with this example:
## Hardware Connection ##

| Board ID | Description |
| ---------------------- | ------ |
| BRD2704A | [SparkFun Thing Plus Matter - MGM240P](https://www.sparkfun.com/products/20270) |
| BRD4314A | [BGM220 Bluetooth Module Explorer Kit - BGM220-EK4314A](https://www.silabs.com/development-tools/wireless/bluetooth/bgm220-explorer-kit?tab=overview) |
| BRD4108A | [EFR32BG22 Explorer Kit Board](https://www.silabs.com/development-tools/wireless/bluetooth/bg22-explorer-kit?tab=overview) |
- **If the BGM220 Explorer Kit board is used**:

## Hardware Connection ##
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)

Adafruit NeoTrellis can connect with the BGM220 Explorer Kit easily via Qwiic connector. Adafruit NeoTrellis 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 the Adafruit Neotrellis to the BGM220 as in the picture 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:

![connection](image/connection.png)
| Description | BRD4338A GPIO | BRD4002 EXP Header | Adafruit NeoTrellis |
| -------------| ------------- | ------------------ | ------------------ |
| I2C_SDA | ULP_GPIO_6 | EXP_16 | SDA |
| I2C_SCL | ULP_GPIO_7 | EXP_15 | SCL |

## Setup ##

You can either create a project based on an example project or start with an empty example project.

### Create a project based on an example project ###

1. From the Launcher Home, add the BRD4314A to My Products, click on it, and click on the **EXAMPLE PROJECTS & DEMOS** tab. Find the example project with filter "NeoTrellis".
1. 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 "NeoTrellis".

2. Click **Create** button on the **Third Party Hardware Drivers - Neotrellis RGB 4x4 keypad (Adafruit)** example. Example project creation dialog pops up -> click Create and Finish and Project should be generated.

![Create_example](image/create_example.png)
![Create_example](image/create_example.png)

3. Build and flash this example to the board.

### Start with an empty example project ###

1. Create an "Empty C Project" for the "BGM220 Explorer Kit Board" using Simplicity Studio v5. Use the default project settings.
1. Create an "Empty C Project" for your board using Simplicity Studio v5. Use the default project settings.

2. Copy the file `app/example/adafruit_neotrellis_keypad/app.c` into the project root folder (overwriting existing file).
2. Copy the file `app/example/adafruit_neotrellis_keypad/app.c` into the project root folder (overwriting the existing file).

3. Install the software components:

- Open the .slcp file in the project.

- Select the SOFTWARE COMPONENTS tab.

- Install the following components:

- [Services][Timers][Sleep Timer]
- [Services][IO Stream][IO Stream: USART] → default instance name: vcom
- [Application][Utility][Log]
- [Application][Utility][Assert]
- [Third Party Hardware Drivers][Human Machine Interface][NeoTrellis 4x4 Keypad (Adafruit)]
**If the BGM220 Explorer Kit is used**

- [Services][IO Stream][IO Stream: USART] → default instance name: vcom
- [Application][Utility][Log]
- [Platform][Driver][I2C][I2CSPM] → qwiic instance
- [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:**

- [WiSeConnect 3 SDK][Device][Si91x][MCU][Peripheral][I2C][i2c2]
- [Third Party Hardware Drivers][Human Machine Interface][NeoTrellis 4x4 Keypad (Adafruit)]

4. Build and flash the project to your device.

**Note:**

- Make sure that the SDK extension has already been installed. If not please follow [this documentation](https://github.com/SiliconLabs/third_party_hw_drivers_extension/blob/master/README.md#how-to-add-to-simplicity-studio-ide).
- 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.

Expand All @@ -82,15 +91,13 @@ You can either create a project based on an example project or start with an emp
|---------------------------------------------|
| adafruit_seesaw.c |
|---------------------------------------------|
| emlib |
---------------------------------------------
```

The Adafruit NeoTrellis driver is implemented based on the Adafruit NeoPixel driver for the seesaw chip and the Adafruit seesaw driver.

- `adafruit_neotrellis.c` : Use to control the keypad functions for interacting with multiple neotrellis boards
- `adafruit_seesawneopixel.c`: This file is part of the Adafruit NeoPixel library used for compatibility with the seesaw chip. It helps control a wide variety of WS2811- and WS2812-based RGB LED devices such as Adafruit FLORA RGB Smart Pixels and NeoPixel strips
- `adafruit_seesaw.c`: Use to communicate with the Microcontroller via emlib of GSDK.
- `adafruit_seesaw.c`: Use to communicate with the Microcontroller.

### Testing ###

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
54 changes: 39 additions & 15 deletions app/documentation/example/adafruit_rgb_led_is31fl3741/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,37 +6,50 @@ This project aims to implement a hardware driver interacting with the [IS31FL374

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.

## Quick Look Video
## Quick Look Video ##

[![IS31FL3741 Quick Look Video](image/yt_thumbnail.jpg)](https://youtu.be/eNGRJq4ZlzU "Dev Lab - Adafruit 13x9 RGB LED Matrix IS31FL3741 – Silicon Labs")

## 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?tab=overview) (BRD4002 + BRD4338A)

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

## Hardware Connection ##

Adafruit RGB LED Matrix can connect with the BGM220 Explorer Kit easily via two STEMMA QT connectors which are compatible with Qwiic. Qwiic is a special connector that includes two I2C wires (SDA and SCL), 3v3, and GND. All of these wires are combined into 1 connection port so that it makes the connection between 2 devices become easier and more convenient.
- If the BGM220P Explorer Kit is used:

Adafruit RGB LED Matrix can connect with the BGM220 Explorer Kit easily via two STEMMA QT connectors which are compatible with Qwiic. Qwiic is a special connector that includes two I2C wires (SDA and SCL), 3v3, and GND. All of these wires are combined into 1 connection port so that it makes the connection between 2 devices become easier and more convenient.

![connection](image/connection.png)

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

![connection](image/connection.png)
| 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 |

## Setup ##

You can either create a project based on an example project or start with an empty example project.

### Create a project based on an example project ###

1. From the Launcher Home, add the BRD4314A to My Products, click on it, and click on the **EXAMPLE PROJECTS & DEMOS** tab. Find the example project with filter "rgb led".
1. From the Launcher Home, add your device to My Products, click on it, and click on the **EXAMPLE PROJECTS & DEMOS** tab. Find the example project with filter "rgb led".

2. Click **Create** button on the **Third Party Hardware Drivers - IS31FL3741 - 13x9 PWM RGB LED Matrix (Adafruit)** example. Example project creation dialog pops up -> click Create and Finish and Project should be generated.
![Create_example](image/create_example.png)
2. Click **Create** button on the **Third Party Hardware Drivers - IS31FL3741 - 13x9 PWM RGB LED Matrix (Adafruit)** example Example project creation dialog pops up -> click Create and Finish and Project should be generated.

![Create_example](image/create_example.png)

3. Build and flash this example to the board.

### Start with an empty example project ###

1. Create an "Empty C Project" for the "BGM220 Explorer Kit Board" using Simplicity Studio v5. Use the default project settings.
1. Create an "Empty C Project" for the your board using Simplicity Studio v5. Use the default project settings.

2. Copy the file `app/example/adafruit_rgb_led_is31fl3741/app.c` into the project root folder (overwriting existing file).

Expand All @@ -48,20 +61,31 @@ You can either create a project based on an example project or start with an emp

- Install the following components:

- [Services][Timers][Sleep Timer]
- [Services][IO Stream][IO Stream: USART] → default instance name: vcom
- [Application][Utility][Log]
- [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 BGM220P Explorer Kit is used:**

- [Services][Timers][Sleep Timer]
- [Services][IO Stream][IO Stream: USART] → default instance name: vcom
- [Application][Utility][Log]
- [Platform][Driver][I2C][I2CSPM] → qwiic instance
- [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:**

- [WiSeConnect 3 SDK][Device][Si91x][MCU][Service][Sleep Timer for Si91x]
- [Application][Utility][Assert]
- [WiSeConnect 3 SDK][Device][Si91x][MCU][Peripheral][I2C][i2c2]
- [Third Party Hardware Drivers][Display & LED][IS31FL3741 - 13x9 PWM RGB LED Matrix (Adafruit) - I2C]
- [Third Party Hardware Drivers][Services][GLIB - OLED Graphics Library]

4. Build and flash the project to your device.

**Note:**

- Make sure that the SDK extension already be installed. If not please follow [this documentation](https://github.com/SiliconLabs/third_party_hw_drivers_extension/blob/master/README.md#how-to-add-to-simplicity-studio-ide).
- 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 **IS31FL3741 - 13x9 PWM RGB LED Matrix (Adafruit) - I2C** component.
- Third-party Drivers Extension must be enabled for the project to install **IS31FL3741 - 13x9 PWM RGB LED Matrix (Adafruit) - I2C** component.

### Display Configuration ###

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 223ad1d

Please sign in to comment.