Skip to content

Commit

Permalink
Third Party Hardware Drivers Extension v1.5.0
Browse files Browse the repository at this point in the history
  • Loading branch information
silabs-DanielN authored Jul 20, 2023
1 parent a3d6573 commit 689c6df
Show file tree
Hide file tree
Showing 522 changed files with 29,529 additions and 1,568 deletions.
13 changes: 10 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Third Party Hardware Drivers #

[![Version Badge](https://img.shields.io/badge/-v1.4.0-green)](https://github.com/SiliconLabs/third_party_hw_drivers_extension/releases)
[![Version Badge](https://img.shields.io/badge/-v1.5.0-green)](https://github.com/SiliconLabs/third_party_hw_drivers_extension/releases)
[![GSDK Badge](https://img.shields.io/badge/GSDK-v4.2.3-green)](https://github.com/SiliconLabs/gecko_sdk/releases)
![License badge](https://img.shields.io/badge/License-Zlib-green)

Expand All @@ -14,6 +14,7 @@ A full list of all drivers in this repository is defined below:
| heartrate2_maxm86161 | [Click Here](./driver/public/mikroe/heartrate2_maxm86161) | [Click Here](./app/example/mikroe_heartrate2_maxm86161) | [Click Here](./app/documentation/example/mikroe_heartrate2_maxm86161) |
| temphum9_shtc3 | [Click Here](./driver/public/mikroe/temphum9_shtc3) | [Click Here](./app/example/mikroe_temphum9_shtc3) | [Click Here](./app/documentation/example/mikroe_temphum9_shtc3) |
| oledw_ssd1306 | [Click Here](./driver/public/mikroe/oledw_ssd1306) | [Click Here](./app/example/mikroe_oledw_ssd1306) | [Click Here](./app/documentation/example/mikroe_oledw_ssd1306) |
| mikroe_oledw_ssd1306_glib | [Click Here](./driver/public/silabs/services_tphd_glib) | [Click Here](./app/example/mikroe_oledw_ssd1306_glib) | [Click Here](./app/documentation/example/mikroe_oledw_ssd1306_glib) |
| buzz2_cmt_8540s_smt | [Click Here](./driver/public/mikroe/buzz2_cmt_8540s_smt) | [Click Here](./app/example/mikroe_buzz2_cmt_8540s_smt) | [Click Here](./app/documentation/example/mikroe_buzz2_cmt_8540s_smt) |
| brushless16_lb11685av | [Click Here](./driver/public/mikroe/brushless16_lb11685av) | [Click Here](./app/example/mikroe_brushless16_lb11685av) | [Click Here](./app/documentation/example/mikroe_brushless16_lb11685av) |
| accel5_bma400 | [Click Here](./driver/public/silabs/accel5_bma400) | [Click Here](./app/example/mikroe_accel5_bma400) | [Click Here](./app/documentation/example/mikroe_accel5_bma400) |
Expand Down Expand Up @@ -53,7 +54,7 @@ A full list of all drivers in this repository is defined below:
| oledc_ssd1351 | [Click Here](./driver/public/mikroe/oledc_ssd1351) | [Click Here](./app/example/mikroe_oledc_ssd1351) | [Click Here](./app/documentation/example/mikroe_oledc_ssd1351) |
| pressure_dps310 | [Click Here](./driver/public/mikroe/pressure3_dps310) | [Click Here](./app/example/mikroe_pressure3_dps310) | [Click Here](./app/documentation/example/mikroe_pressure3_dps310) |
| lte_iot_2 | [Click Here](./driver/public/mikroe/lte_iot2_bg96) | [Click Here](./app/example/mikroe_lte_iot2_bg96) | [Click Here](./app/documentation/example/mikroe_lte_iot2_bg96) |
| e_paper | [Click Here](./driver/public/mikroe/e_paper) | [Click Here](./app/example/mikroe_e_paper) | [Click Here](./app/documentation/example/mikroe_e_paper) |
| e_paper_154_inch | [Click Here](./driver/public/mikroe/e_paper_154_inch) | [Click Here](./app/example/mikroe_e_paper_154_inch) | [Click Here](./app/documentation/example/mikroe_e_paper_154_inch) |
| ir_array_amg88xx | [Click Here](./driver/public/silabs/ir_array_amg88xx) | [Click Here](./app/example/sparkfun_ir_array_amg88xx) | [Click Here](./app/documentation/example/sparkfun_ir_array_amg88xx) |
| nfc2_pn7150 | [Click Here](./driver/public/mikroe/nfc2_pn7150) | [Click Here](./app/example/mikroe_nfc2_pn7150) | [Click Here](./app/documentation/example/mikroe_nfc2_pn7150) |
| nfc2_pn7150_t2t_read | [Click Here](./driver/public/silabs/services_nfc) | [Click Here](./app/example/mikroe_nfc2_pn7150_nci_t2t_read) | [Click Here](./app/documentation/example/mikroe_nfc2_pn7150_nci_t2t_read) |
Expand All @@ -64,7 +65,13 @@ A full list of all drivers in this repository is defined below:
| pir_ira_s210st01 | [Click Here](./driver/public/silabs/pir_ira_s210st01) | [Click Here](./app/example/silabs_pir_ira_s210st01) | [Click Here](./app/documentation/example/silabs_pir_ira_s210st01) |
| rf_meter_ad8318 | [Click Here](./driver/public/mikroe/rf_meter_ad8318) | [Click Here](./app/example/mikroe_rf_meter_ad8318) | [Click Here](./app/documentation/example/mikroe_rf_meter_ad8318) |
| nfctag2_nt3h2111 | [Click Here](./driver/public/silabs/nfctag2_nt3h2111) | [Click Here](./app/example/mikroe_nfctag2_nt3h2111) | [Click Here](./app/documentation/example/mikroe_nfctag2_nt3h2111) |
| pwm_driver_si8711cc | [Click Here](./driver/public/mikroe/pwm_driver_si8711cc) | [Click Here](./app/example/mikroe_pwm_driver_si8711cc) | [Click Here](./app/documentation/example/mikroe_pwm_driver_si8711cc) |
| pwm_driver_si8711cc | [Click Here](./driver/public/mikroe/pwm_driver_si8711cc) | [Click Here](./app/example/mikroe_pwm_driver_si8711cc) | [Click Here](./app/documentation/example/mikroe_pwm_driver_si8711cc) |
| mikroe_mic2 | [Click Here](./driver/public/mikroe/mic2) | [Click Here](./app/example/mikroe_mic2) | [Click Here](./app/documentation/example/mikroe_mic2) |
| turbidity_tsd10 | [Click Here](./driver/public/mikroe/turbidity_tsd10) | [Click Here](./app/example/mikroe_turbidity_tsd10) | [Click Here](./app/documentation/example/mikroe_turbidity_tsd10) |
| environment3_bme688 | [Click Here](./driver/public/mikroe/environment3_bme688) | [Click Here](./app/example/mikroe_environment3_bme688) | [Click Here](./app/documentation/example/mikroe_environment3_bme688) |
| ozone2_mq131 | [Click Here](./driver/public/mikroe/ozone2_mq131) | [Click Here](./app/example/mikroe_ozone2_mq131) | [Click Here](./app/documentation/example/mikroe_ozone2_mq131) |
| uv_ml8511a | [Click Here](./driver/public/mikroe/uv_ml8511a) | [Click Here](./app/example/mikroe_uv_ml8511a) | [Click Here](./app/documentation/example/mikroe_uv_ml8511a) |


## Requirements ##

Expand Down
30 changes: 14 additions & 16 deletions app/documentation/example/adafruit_rgb_led_is31fl3741/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# IS31FL3741 Adafruit 13x9 PWM RGB LED Matrix Driver #
# IS31FL3741 - 13x9 PWM RGB LED Matrix (Adafruit) #

## Summary ##

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

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

## Setup ##

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

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

1. From the Launcher Home, add the BRD4314A to MyProducts, 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 the BRD4314A 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](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.

2. Copy the file [app.c](https://github.com/SiliconLabs/third_party_hw_drivers_extension/tree/master/app/example/adafruit_rgb_led_is31fl3741/app.c) (overwriting existing file), into the project root folder.
2. Copy the file `app/example/adafruit_rgb_led_is31fl3741/app.c` into the project root folder (overwriting existing file).

3. Install the software components:

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

- Install the following components:

- [Services][Sleep Timer]
- [Services][Timers][Sleep Timer]
- [Services][IO Stream][IO Stream: USART] → default instance name: vcom
- [Application][Utility][Log]
- [Application][Utility][Assert]
Expand All @@ -55,11 +55,9 @@ You can either create a project based on a example project or start with an empt

**Note:**

- Make sure 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).
- 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).

- SDK Extension must be enabled for the project to install **IS31FL3741 - 13x9 PWM RGB LED Matrix (Adafruit) - I2C** component. Selecting this component will also include the "I2CSPM" component with default configurated instance: qwiic.

- The example project are built on the BRD4314A board. For another boards, selecting the **IS31FL3741 - 13x9 PWM RGB LED Matrix (Adafruit) - I2C** component will include the "I2CSPM" component with unconfigured instance: inst0. This instance should be configurated by users.
- SDK Extension must be enabled for the project to install **IS31FL3741 - 13x9 PWM RGB LED Matrix (Adafruit) - I2C** component.

### Display Configuration ###

Expand Down Expand Up @@ -87,7 +85,7 @@ All of this can be done in the configuration part of **IS31FL3741 - 13x9 PWM RGB

- **Note**: The address of the display which is not used should be set to "None". For example, if the layout configuration is set to **1x2** and users want to use Display 1 and Display 2, They should set the address of two others display to None.

![config](config.png)
![config](image/config.png)

## How It Works ##

Expand All @@ -109,14 +107,14 @@ All of this can be done in the configuration part of **IS31FL3741 - 13x9 PWM RGB

The Adafruit IS31FL3741 driver is implemented to be compatible with the GLIB service. Hence, the application can use the APIs of the GLIB service driver instead of calling the APIs from Adafruit IS31FL3741 driver.

- [adafruit_is31fl3741.c](https://github.com/SiliconLabs/third_party_hw_drivers_extension/tree/master/driver/public/silabs/rgb_led_is31fl3741/src/adafruit_is31fl3741.c): Use to handle display features of the Adafruit IS31FL3741 module.
- [adafruit_is31fl3741_i2c.c](https://github.com/SiliconLabs/third_party_hw_drivers_extension/tree/master/driver/public/silabs/rgb_led_is31fl3741/src/adafruit_is31fl3741_i2c.c): Use to communicate with the Microcontroller via emlib of GSDK.
- `adafruit_is31fl3741.c`: Use to handle display features of the Adafruit IS31FL3741 module.
- `adafruit_is31fl3741_i2c.c`: Use to communicate with the Microcontroller via emlib of GSDK.

### Testing ###

- The testing program will try to display the following text "Silicon Labs - Third Party Hardware Drivers Extension".

![result](test.GIF)
![result](image/result_test.gif)

## Report Bugs & Get Support ##

Expand Down
34 changes: 17 additions & 17 deletions app/documentation/example/maxim_fuel_gauge_max17048/README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# Maxim Battery Fuel Gauge MAX17048 #
# MAX17048 - Maxim Battery Fuel Gauge #

## Overview ##

This project shows the implementation of an I2C Fuel Gauge driver using the MAX17048EVKIT Evalue Kit from the Maxim Integrated with the EFR32xG21 Radio Board and the Wireless Starter Kit Mainboard.

The block diagram of this example is shown in the image below:

![overview](overview.png)
![overview](image/overview.png)

## Hardware Required ##

Expand All @@ -18,13 +18,13 @@ The block diagram of this example is shown in the image below:

- [Lithium Ion Battery](https://www.sparkfun.com/products/13851)

- A high power resistor (e.g 220Ω/5W) is as the load of the battery.
- A high power resistor (e.g. 220Ω/5W) is as the load of the battery.

## Connections Required ##

We can use some [Wire Jumpers Female to Female](https://www.mikroe.com/wire-jumpers-female-to-female-30cm-10pcs) to connect between the EFR32xG21 Wireless Starter Kit and the MAX17048XEVKIT Evalue Kit, and between the MAX17048XEVKIT Evalue Kit to the Lithium Ion Battery and the load as shown below.

![connection](connection.png)
![connection](image/connection.png)

| WSTK markings | MAX17048XEVKIT Evalue Kit markings |
|---------------------------|:-----------------------------------:|
Expand All @@ -42,14 +42,14 @@ We can use some [Wire Jumpers Female to Female](https://www.mikroe.com/wire-jump

## Setup ##

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

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

1. From the Launcher Home, add the BRD4181B to MyProducts, click on it, and click on the **EXAMPLE PROJECTS & DEMOS** tab. Find the example project with filter max17048evkit.
1. From the Launcher Home, add the BRD4181B to My Products, click on it, and click on the **EXAMPLE PROJECTS & DEMOS** tab. Find the example project with filter max17048evkit.

2. Click **Create** button on the **Third Party Hardware Drivers - Maxim MAX17048EVKIT Evalue Kit** example. Example project creation dialog pops up -> click Create and Finish and Project should be generated.
![Create_example](create_example.png)
2. Click **Create** button on the **Third Party Hardware Drivers - MAX17048 - MAX17048EVKIT Evaluation Kits (Maxim)** 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.

Expand All @@ -70,19 +70,19 @@ You can either create a project based on a example project or start with an empt
- [Services][IO Stream][IO Stream: USART] → default instance name: vcom
- Set **Enable Virtual COM UART** in **[Platform] > [Board Control]** component.

![enable_vcom](vcom.png)
![enable_vcom](image/vcom.png)

- [Application][Utility][Log]
- [Third Party Hardware Drivers][Power Management][MAX17048 - MAX17048EVKIT Evaluation Kits (Maxim)] → use default configuaration

![max17048_config](max17048_config.png)
![max17048_config](image/max17048_config.png)

- Install printf float

- Open Properties of the project.
- Select **C/C++ Build > Settings > Tool Settings >GNU ARM C Linker > General**. Check **Printf float**.

![enable_print_float](float.png)
![enable_print_float](image/float.png)

4. Build and flash this example to the board.

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

### API overview ###

**Note:** When Power Manager is used, I2C transfers to and from the MAX17048 always complete because the driver adds a Power Manager requirement that prevents EM2 or EM3 entry. In cases where Power Manager is not used, it may be desirable to mark sections of code that call driver functions as atomic or critical if an interrupt can cause entry into EM2 or EM3.
**Note:** When Power Manager is used, I2C transfers to and from the MAX17048 are always complete because the driver adds a Power Manager requirement that prevents EM2 or EM3 entry. In cases where Power Manager is not used, it may be desirable to mark sections of code that call driver functions as atomic or critical if an interrupt can cause entry into EM2 or EM3.

The APIs of the driver can be grouped into as follows:

Expand Down Expand Up @@ -423,14 +423,14 @@ The APIs of the driver can be grouped into as follows:

The following diagram shows the program flow as implemented in the app.c file:

![API](workflow.png)
![API](image/workflow.png)

Below is the console output of the example application. The message is sent to the console every time SOC changes by at least 1%.

![log](log.png)
![log](image/log.png)

## Report Bugs & Get Support ##

To report bugs in the Application Examples projects, please create a new "Issue" in the "Issues" section of [third_party_hw_drivers_extension_staging](https://github.com/SiliconLabs/third_party_hw_drivers_extension_staging) 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.
To report bugs in the Application Examples projects, please create a new "Issue" in the "Issues" section of [third_party_hw_drivers_extension](https://github.com/SiliconLabs/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_staging](https://github.com/SiliconLabs/third_party_hw_drivers_extension_staging) repo.
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](https://github.com/SiliconLabs/third_party_hw_drivers_extension) repo.
Binary file not shown.
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 689c6df

Please sign in to comment.