Skip to content

Commit

Permalink
Third Party Hardware Drivers Extension v2.0.2
Browse files Browse the repository at this point in the history
  • Loading branch information
silabs-DanielN authored Jun 19, 2024
1 parent 171cba8 commit a0a8cb4
Show file tree
Hide file tree
Showing 148 changed files with 11,716 additions and 125 deletions.
5 changes: 3 additions & 2 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/-v2.0.1-green)](https://github.com/SiliconLabs/third_party_hw_drivers_extension/releases)
[![Version Badge](https://img.shields.io/badge/-v2.0.2-green)](https://github.com/SiliconLabs/third_party_hw_drivers_extension/releases)
[![GSDK Badge](https://img.shields.io/badge/GSDK-v4.4.0-green)](https://github.com/SiliconLabs/gecko_sdk/releases)
![License badge](https://img.shields.io/badge/License-Zlib-green)

Expand Down Expand Up @@ -98,8 +98,9 @@ A full list of all drivers in this repository is defined below:
| particulate_matter_sensor_sps30 | [Click Here](./driver/public/silabs/particulate_matter_sensor_sps30) | [Click Here](./app/example/sparkfun_particulate_matter_sensor_sps30) | [Click Here](./app/documentation/example/sparkfun_particulate_matter_sensor_sps30) |
| adafruit_neotrellis_keypad_atsamd09 | [Click Here](./driver/public/silabs/adafruit_neotrellis_keypad_atsamd09) | [Click Here](./app/example/adafruit_neotrellis_keypad_atsamd09) | [Click Here](./app/documentation/example/adafruit_neotrellis_keypad_atsamd09) |
| hvac_bundle_scd41_sps30 | [Click Here](./driver/public/mikroe/hvac_scd41) <br> [Click Here](./driver/public/silabs/particulate_matter_sensor_sps30)| [Click Here](./app/example/mikroe_hvac_bundle_scd41_sps30) | [Click Here](./app/documentation/example/mikroe_hvac_bundle_scd41_sps30) |
| mikroe_uwb_dwm1000 | [Click Here](./driver/public/mikroe/uwb_dwm1000) | [Click Here](./app/example/mikroe_uwb_dwm1000) | [Click Here](./app/documentation/example/mikroe_uwb_dwm1000) |
| mikroe_pir_pl_n823_01 | [Click Here](./driver/public/mikroe/pir_pl_n823_01) | [Click Here](./app/example/mikroe_pir_pl_n823_01) | [Click Here](./app/documentation/example/mikroe_pir_pl_n823_01) |
| mikroe_uwb_dwm1000 | [Click Here](./driver/public/mikroe/uwb_dwm1000) | [Click Here](./app/example/mikroe_uwb_dwm1000) | [Click Here](./app/documentation/example/mikroe_uwb_dwm1000) |
| mikroe_uwb2_dwm3000 | [Click Here](./driver/public/silabs/uwb2_dwm3000) | [Click Here](./app/example/mikroe_uwb2_dwm3000) | [Click Here](./app/documentation/example/mikroe_uwb2_dwm3000) |
## Requirements ##

- Desired Silicon Labs Starter Kit
Expand Down
104 changes: 104 additions & 0 deletions app/documentation/example/mikroe_uwb2_dwm3000/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
# DWM3000 - UWB 2 Click (Mikroe) #

## Summary ##

This example project showcases the driver integration of the Mikroe DWM3000 - UWB 2 Click board™.

UWB 2 Click board™ is an Ultra-Wideband transceiver. It features the DWM3000, an IEEE 802.15-z UWB transceiver module from Qorvo. This module fully aligns with FiRaTM PHY, MAC, and certification development. It uses an integrated UWB antenna to establish wireless communication in UWB channels 5 (6.5GHz) and 9 (8GHz). This Click board™ is optimized for developing precision real-time positioning system (RTLS) applications using two-way ranging diagrams or Time Difference of Arrival (TDoA). It can also be applied in many other fields such as agriculture, automation & building controls, factory automation, healthcare, safety & security and warehousing & logistics.

## Required Hardware ##

- [EFR32xG24 Explorer Kit](https://www.silabs.com/development-tools/wireless/efr32xg24-explorer-kit?tab=overview)

- [UWB 2 Click board™](https://www.mikroe.com/uwb-2-click)

**NOTE:**
Tested boards for working with this example:

| Board ID | Description |
| ---------------------- | ------ |
| BRD2703A | [xG24-EK2703A - EFR32xG24 Explorer Kit](https://www.silabs.com/development-tools/wireless/efr32xg24-explorer-kit?tab=overview) |
| BRD4314A | [BGM220-EK4314A - BGM220P Bluetooth Module Explorer Kit](https://www.silabs.com/development-tools/wireless/bluetooth/bgm220-explorer-kit?tab=overview) |
| BRD4108A | [BG22-EK4108A - EFR32BG22 Explorer Kit Board](https://www.silabs.com/development-tools/wireless/bluetooth/bg22-explorer-kit?tab=overview) |

## Hardware Connection ##

The DWM3000 - UWB 2 Click board™ supports MikroBus. Therefore, it can connect easily to the MikroBus header of the EFR32xG24 Explorer Kit. Be sure that the 45-degree corner of the board matches the 45-degree white line of the Explorer Kit. The hardware connection is shown in the image below:

![board](image/hardware_connection.png)

## 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 BRD2703A to My Products, click on it, and click on the **EXAMPLE PROJECTS & DEMOS** tab. Find the example project filtering by "uwb 2".

2. Click **Create** button on the **Third Party Hardware Drivers - DWM3000 - UWB 2 Click (Mikroe)** 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 "EFR32xG24 Explorer Kit" using Simplicity Studio v5. Use the default project settings.

2. Copy all of the files in the "app/example/mikroe_uwb2_dwm3000/app_files" folder 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][IO Stream][IO Stream: EUSART]** → default instance name: vcom
- **[Application][Utility][Log]**
- **[Application][Utility][Assert]**
- **[Services][Timers][Sleep Timer]**
- **[Third Party Hardware Drivers][Wireless Connectivity][DWM3000 - UWB 2 Click (Mikroe)]** → use default configuration

4. Editing the Linker File:
- From the project root folder, open "autogen/linkerfile.ld" file and copy the following section to the autogenerated linker:
```
.dw_drivers ALIGN(4):
{
__dw_drivers_start = . ;
KEEP(*(.dw_drivers*))
__dw_drivers_end = . ;
} > FLASH
```
The final "linkerfile.ld" file after editing is shown in the image below:
![linker](image/custom_linker.png)
5. Build and flash this example to the board.
**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).
- SDK Extension must be enabled for the project to install "DWM3000 - UWB 2 Click (Mikroe)" component.
## How It Works #
After you flash the code to the Explorer Kit and power the connected boards, the application starts running automatically. Use Putty/Tera Term (or another program) to read the values of the serial output. Note that the EFR32xG24 Explorer Kit board uses the default baud rate of 115200.
First, the user must have two boards to run this demo example, one for the Transmitter, and one for Receiver. The user can decide whether to use the device in Transmitter (Tx) or Receiver (Rx) mode by macro "DEMO_APP_TRANSMITTER" in the "app.c" file.
In Tx mode, the main program initializes the driver, reads some information and checks communication with the dwm3000 device. After that, it transmits a packet message periodically. There is a periodic timer in the code, which determines the transmitting intervals; the default transmitting intervals rate is 2000 ms. If you need more frequent transmitting, it is possible to change the value of the macro "TRANSMITTING_INTERVAL_MSEC" in the "app.c" file. The screenshot of the console is shown in the image below:
![transmit](image/tx_log.png)
In Rx mode, the main program initializes the driver, reads some information and checks communication with the dwm3000 device. After that, the device enters receiver mode, and it prints each received packet. The screenshot of the console is shown in the image below:
![receive](image/rx_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](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](https://github.com/SiliconLabs/third_party_hw_drivers_extension) repo.
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.
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.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ define:

sdk_extension:
- id: third_party_hw_drivers
version: 2.0.1
version: 2.0.2

other_file:
- path: ../../documentation/example/adafruit_neotrellis_keypad_atsamd09/image/connection.png
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ define:
- name: DEBUG_EFM
sdk_extension:
- id: third_party_hw_drivers
version: 2.0.1
version: 2.0.2
other_file:
- path: ../../documentation/example/adafruit_rgb_led_is31fl3741/image/connection.png
directory: "image"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ define:

sdk_extension:
- id: third_party_hw_drivers
version: 2.0.1
version: 2.0.2

other_file:
- path: ../../documentation/example/adafruit_tft_lcd_hxd8357d/image/create_example_with_dma_mode.png
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ define:

sdk_extension:
- id: third_party_hw_drivers
version: 2.0.1
version: 2.0.2

other_file:
- path: ../../documentation/example/adafruit_tft_lcd_hxd8357d/image/create_example_with_dma_mode.png
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ define:

sdk_extension:
- id: third_party_hw_drivers
version: 2.0.1
version: 2.0.2

other_file:
- path: ../../documentation/example/adafruit_tft_lcd_hxd8357d_lvgl/image/create_example.png
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ define:

sdk_extension:
- id: third_party_hw_drivers
version: 2.0.1
version: 2.0.2

other_file:
- path: ../../documentation/example/adafruit_tft_lcd_hxd8357d_lvgl/image/create_example.png
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ define:

sdk_extension:
- id: third_party_hw_drivers
version: 2.0.1
version: 2.0.2

other_file:
- path: ../../documentation/example/adafruit_tft_lcd_ili9341/image/create_example.png
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ define:

sdk_extension:
- id: third_party_hw_drivers
version: 2.0.1
version: 2.0.2

other_file:
- path: ../../documentation/example/adafruit_tft_lcd_ili9341/image/create_example.png
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ define:

sdk_extension:
- id: third_party_hw_drivers
version: 2.0.1
version: 2.0.2

configuration:
- name: LV_BUFFER_MODE
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ define:

sdk_extension:
- id: third_party_hw_drivers
version: 2.0.1
version: 2.0.2

configuration:
- name: LV_BUFFER_MODE
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ define:

sdk_extension:
- id: third_party_hw_drivers
version: 2.0.1
version: 2.0.2

other_file:
- path: ../../documentation/example/adafruit_tft_lcd_st7789/image/create_example.png
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ define:

sdk_extension:
- id: third_party_hw_drivers
version: 2.0.1
version: 2.0.2

other_file:
- path: ../../documentation/example/adafruit_tft_lcd_st7789/image/create_example.png
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ define:

sdk_extension:
- id: third_party_hw_drivers
version: 2.0.1
version: 2.0.2

other_file:
- path: ../../documentation/example/adafruit_tft_lcd_st7789_lvgl_dma/image/create_example.png
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ define:

sdk_extension:
- id: third_party_hw_drivers
version: 2.0.1
version: 2.0.2

other_file:
- path: ../../documentation/example/adafruit_touchscreen_tsc2007/image/calib.png
Expand Down
4 changes: 2 additions & 2 deletions app/example/bthome_v2_server/app.c
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ void sl_bt_on_event(sl_bt_msg_t *evt)
== SIGNAL_LOG_DATA) {
uint8_t mac[6];
uint8_t device_count;
bthome_v2_server_sensor_data_t object[5];
bthome_v2_server_sensor_data_t object[10];
uint8_t object_count;
bool encrypted;
bool key_available;
Expand Down Expand Up @@ -113,7 +113,7 @@ void sl_bt_on_event(sl_bt_msg_t *evt)
object_count = 0;
bthome_v2_server_sensor_data_read(mac,
object,
5,
10,
&object_count,
NULL);

Expand Down
6 changes: 5 additions & 1 deletion app/example/bthome_v2_server/bthome_v2_server.slcp
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,10 @@ component:
- id: gatt_service_device_information
- id: app_log

toolchain_settings:
- option: gcc_linker_option
value: "-u _printf_float"

config_file:
- override:
component: gatt_configuration
Expand All @@ -62,7 +66,7 @@ define:

sdk_extension:
- id: third_party_hw_drivers
version: 2.0.1
version: 2.0.2

other_file:
- path: ../../documentation/example/bthome_v2_server/image/connection.png
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ define:

sdk_extension:
- id: third_party_hw_drivers
version: 2.0.1
version: 2.0.2

other_file:
- path: ../../documentation/example/maxim_fuel_gauge_max17048/image/overview.png
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ define:

sdk_extension:
- id: third_party_hw_drivers
version: 2.0.1
version: 2.0.2

other_file:
- path: ../../documentation/example/mikroe_accel5_bma400/image/hardware_connection.png
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ define:

sdk_extension:
- id: third_party_hw_drivers
version: 2.0.1
version: 2.0.2

other_file:
- path: ../../documentation/example/mikroe_accel5_bma400/image/hardware_connection.png
Expand Down
2 changes: 1 addition & 1 deletion app/example/mikroe_alcohol_mq3/mikroe_alcohol_mq3.slcp
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ define:

sdk_extension:
- id: third_party_hw_drivers
version: 2.0.1
version: 2.0.2

other_file:
- path: ../../documentation/example/mikroe_alcohol_mq3/image/create_project.png
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ define:

sdk_extension:
- id: third_party_hw_drivers
version: 2.0.1
version: 2.0.2

other_file:
- path: ../../documentation/example/mikroe_barcode2_em3080w/image/hardware_connection.png
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ define:

sdk_extension:
- id: third_party_hw_drivers
version: 2.0.1
version: 2.0.2

other_file:
- path: ../../documentation/example/mikroe_brushless16_lb11685av/image/create_example.png
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ define:

sdk_extension:
- id: third_party_hw_drivers
version: 2.0.1
version: 2.0.2

other_file:
- path: ../../documentation/example/mikroe_buzz2_cmt_8540s_smt/image/create_example.png
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ define:

sdk_extension:
- id: third_party_hw_drivers
version: 2.0.1
version: 2.0.2

other_file:
- path: ../../documentation/example/mikroe_captouch2_cap1166/image/hardware_connection.png
Expand Down
2 changes: 1 addition & 1 deletion app/example/mikroe_co_mq7/mikroe_co_mq7.slcp
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ define:

sdk_extension:
- id: third_party_hw_drivers
version: 2.0.1
version: 2.0.2

ui_hints:
highlight:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ define:

sdk_extension:
- id: third_party_hw_drivers
version: 2.0.1
version: 2.0.2

other_file:
- path: ../../documentation/example/mikroe_dcmotor24_l9958/image/create_example.png
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ define:

sdk_extension:
- id: third_party_hw_drivers
version: 2.0.1
version: 2.0.2

other_file:
- path: ../../documentation/example/mikroe_dcmotor26_tb9053ftg/image/create_project.png
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ define:

sdk_extension:
- id: third_party_hw_drivers
version: 2.0.1
version: 2.0.2

other_file:
- path: ../../documentation/example/mikroe_dcmotor3_tb6549fg/image/create_example.png
Expand Down
Loading

0 comments on commit a0a8cb4

Please sign in to comment.