Skip to content

Commit

Permalink
Platform Applications v2.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
silabs-DanielN authored Jul 9, 2024
1 parent 9ec5f42 commit 8c45578
Show file tree
Hide file tree
Showing 848 changed files with 25,282 additions and 76,206 deletions.
94 changes: 93 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,102 @@
</tr>
</table>

# Silicon Labs Platform Application Examples #
# Silicon Labs Platform Applications #

[![Version Badge](https://img.shields.io/badge/-v2.0.0-green)](https://github.com/SiliconLabs/bluetooth_applications/releases)
[![GSDK Badge](https://img.shields.io/badge/GSDK-v4.4.3-green)](https://github.com/SiliconLabs/gecko_sdk/releases)
![License badge](https://img.shields.io/badge/License-Zlib-green)

This repo contains example projects that demonstrate various applicaitons using the peripherals of Silicon Labs EFM32 and EFR32 parts.

This repository provides both SLCP projects (as External Repositories) and SLS projects as standalone projects, which are configured for development boards.

## Examples ##

| No | Example name | Link to example |
|:--:|:-------------|:---------------:|
| 1 | Platform - Executing Code from RAM | [Click Here](./platform_pg23_code_execution_ram) |
| 2 | Platform - True Random Number Generator (TRNG) | [Click Here](./platform_trng) |
| 3 | Platform - Peripheral LESENSE ADC | [Click Here](./platform_peripheral_lesense_adc) |
| 4 | Platform - SegmentLCD Low Power | [Click Here](./platform_segmentLCD_lowpower) |
| 5 | Platform - Segment LCD and Temperature Sensor | [Click Here](./platform_segmentLCD_tempsensor) |
| 6 | Platform - IADC High Accuracy Mode - PG23 (BRD2504A) | [Click Here](./platform_iadc_high_accuracy_PG23) |
| 7 | Platform - Lean Watchdog | [Click Here](./platform_lean_watchdog) |
| 8 | Platform - Edge Counting Using the EFM32/EFR32 Series 1 Pulse Counter (PCNT) | [Click Here](./platform_pcnt_edge_counter_series1) |
| 9 | Platform - Si7021 RHT Sensor Bare-metal | [Click Here](./platform_rht_baremetal) |
| 10 | Platform - Using Autonomous Peripherals in Low Power EM2 Mode | [Click Here](./platform_peripheral_low_energy) |
| 11 | Platform - DALI Communication using EUSART (Main device) | [Click Here](./platform_dali) |
| 12 | Platform - DALI Communication using EUSART (Secondary device) | [Click Here](./platform_dali) |
| 13 | Platform - DALI Communication using bitbang SPI (Main device) | [Click Here](./platform_dali) |
| 14 | Platform - DALI Communication using bitbang SPI (Secondary device) | [Click Here](./platform_dali) |
| 15 | Platform - DALI Communication using bitbang SPI with DMADRV (Main device) | [Click Here](./platform_dali) |
| 16 | Platform - DALI Communication using bitbang SPI with DMADRV (Secondary device) | [Click Here](./platform_dali) |
| 17 | Platform - Segment LCD with LDMA | [Click Here](./platform_segmentLCD_ldma) |
| 18 | Platform - IADC High-speed Mode | [Click Here](./platform_iadc_high_speed_PG23) |
| 19 | Platform - Segment LCD with Timer | [Click Here](./platform_segmentLCD_timer) |
| 20 | Platform - IADC High-speed Mode | [Click Here](./platform_iadc_high_speed_PG28) |
| 21 | Platform - IADC High Accuracy Mode - PG28 (BRD2506A) | [Click Here](./platform_iadc_high_accuracy) |
| 22 | Platform - Segment LCD with LC Sensor | [Click Here](./platform_segmentLCD_lcsense) |
| 23 | Platform - IADC with LDMA Ping-Pong | [Click Here](./platform_iadc_ldma_ping_pong) |
| 24 | Platform - UART Circular Buffer with LDMA | [Click Here](./platform_uart_ldma_circular_buffer) |
| 25 | Platform - Sisnake | [Click Here](./platform_sisnake) |
| 26 | Platform - PG28 LCD Animation Blink | [Click Here](./platform_lcd_animation_blink_pg28) |
| 27 | Platform - PG23 LCD Animation Blink | [Click Here](./platform_lcd_animation_blink_pg23) |
| 28 | Platform - FG23 LCD Animation Blink | [Click Here](./platform_lcd_animation_blink_fg23) |
| 29 | Platform - Asynchronous EM01GRPA Clock Output | [Click Here](./platform_async_em01grpaclk_out_series2) |
| 30 | Platform - Flash Read-While-Write | [Click Here](./platform_flash_read_while_write) |
| 31 | Platform - I2C Read to NVM3 Test | [Click Here](./platform_i2c_to_nvm3_test) |
| 32 | Platform - I2C Test for EFM8 IOExpander (IOEXP) | [Click Here](./platform_i2c_test_for_efm8_ioexpander) |
| 33 | Platform - RTCC and Watchdog Bare-metal | [Click Here](./platform_rtcc_lcd_wdog) |
| 34 | Platform - I2C Slave Bootloader | [Click Here](./platform_i2cslave_bootloader) |
| 35 | Platform - WS2812 RGB LED Driver | [Click Here](./platform_rgb_led) |
| 36 | Platform - SensiML IMU Data Capture | [Click Here](./platform_SensiML/platform_SensiML_DataCaptureLab/SensiML_IMU) |
| 37 | Platform - SensiML IMU Data Capture with BLE | [Click Here](./platform_SensiML/platform_SensiML_DataCaptureLab/SensiML_IMU_BLE) |
| 38 | Platform - SensiML Microphone Data Capture | [Click Here](./platform_SensiML/platform_SensiML_DataCaptureLab/SensiML_Microphone) |
| 39 | Platform - SensiML IMU Recognition | [Click Here](./platform_SensiML/platform_SensiML_Recognition/SensiML_IMU) |
| 40 | Platform - SensiML IMU Recognition with BLE | [Click Here](./platform_SensiML/platform_SensiML_Recognition/SensiML_IMU_BLE) |
| 41 | Platform - SensiML Microphone Recogniton | [Click Here](./platform_SensiML/platform_SensiML_Recognition/SensiML_Microphone) |
| 42 | Platform - Squash FreeRTOS Glib | [Click Here](./platform_squash_freertos_glib) |
| 43 | Platform - NVM3 Integrity Test | [Click Here](./platform_nvm3_integrity_test) |
| 44 | Platform - Micrium Multiple ADC LMDA Task | [Click Here](./platform_micrium_multiple_adc_ldma_task) |
| 45 | Platform - Linked DMA (LDMA) Arbitration | [Click Here](./platform_peripheral_ldma_arbitration) |
| 46 | Platform - Parse GBL Metadata in Single Shot | [Click Here](./platform_bootloader_interface/parse_gbl_metadata_singleshot) |
| 47 | Platform - Parse GBL Metadata in BufferSize Steps | [Click Here](./platform_bootloader_interface/parse_gbl_metadata_buffersize_steps) |
| 48 | Platform - QI PRx communication protocol | [Click Here](./platform_qi_rx_base) |
| 49 | Platform - QI PRx communication protocol with fast response | [Click Here](./platform_qi_rx_base) |
| 50 | Platform - EFR32xG21 LDMA SPI Throughput | [Click Here](./platform_spi_flash_bandwidth/ldma) |
| 51 | Platform - EFR32xG21 Polled SPI Throughput | [Click Here](./platform_spi_flash_bandwidth/polled) |
| 52 | Platform - Flash blank checking using the GPCRC | [Click Here](./platform_gpcrc_blank_check) |


## Requirements ##

1. Silicon Labs EFR32 Development Kit
2. Simplicity Studio 5
3. Compatible GSDK version that specified in each project's readme file. You can install it via Simplicity Studio or download it from our GitHub [gecko_sdk](https://github.com/SiliconLabs/gecko_sdk)

## Working with Projects ##

1. To add an external repository, perform the following steps.

- From Simpilicity Studio 5, go to **Preferences > Simplicity Studio > External Repos**. Here you can add the repo `https://github.com/SiliconLabs/platform_applications.git`.

- Cloning and then selecting the branch, tag, or commit to add. The default branch is Master. This repo cloned to `<path_to_the_SimplicityStudio_v5>\developer\repos\`

2. From Launcher, select your device from the "Debug Adapters" on the left before creating a project. Then click the **EXAMPLE PROJECTS & DEMOS** tab -> check **platform_applications** under **Provider** to show a list of Bluetooth example projects compatible with the selected device. Click CREATE on a project to generate a new application from the selected template.

## Legacy Projects - Importing *.sls projects ###

1. Place the *.sls file(s) to be imported in a folder.

2. From Simpilicity Studio 5, select **File > Import**, select the folder containing *.sls file(s). Select a project from the detected projects list and click on Next. Name the project and click Finish.

See [Import and Export](https://docs.silabs.com/simplicity-studio-5-users-guide/5.6.0/ss-5-users-guide-about-the-simplicity-ide/import-and-export) for more information.

## Porting to Another Board ##

To change the target board, navigate to Project -> Properties -> C/C++ Build -> Board/Part/SDK. Start typing in the Boards search box and locate the desired development board, then click Apply to change the project settings. Ensure that the board specifics include paths, found in Project -> Properties -> C/C++ General -> Paths and Symbols, correctly match the target board.

## Documentation ##

Official documentation can be found at our [Developer Documentation](https://docs.silabs.com/#section-mcu-wireless) page.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## Deprecation Notice
This code has been deprecated. It has been provided for historical reference only and should not be used. This code will not be maintained. This code is subject to the quality disclaimer at the point in time prior to deprecation and superseded by this deprecation notice.


# EFR32BG22 IADC 16-bit ENOB #

## Description ##
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes
File renamed without changes
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
## Deprecation Notice
This code has been deprecated. It has been provided for historical reference only and should not be used. This code will not be maintained. This code is subject to the quality disclaimer at the point in time prior to deprecation and superseded by this deprecation notice.

# Stepper Motor Example #
![Type badge](https://img.shields.io/badge/dynamic/json?url=https://raw.githubusercontent.com/SiliconLabs/application_examples_ci/master/platform_applications/platform_stepper_motor_common.json&label=Type&query=type&color=green)
![Technology badge](https://img.shields.io/badge/dynamic/json?url=https://raw.githubusercontent.com/SiliconLabs/application_examples_ci/master/platform_applications/platform_stepper_motor_common.json&label=Technology&query=technology&color=green)
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
## Deprecation Notice
This code has been deprecated. It has been provided for historical reference only and should not be used. This code will not be maintained. This code is subject to the quality disclaimer at the point in time prior to deprecation and superseded by this deprecation notice.

# TensorFlow Micro Speech
![Type badge](https://img.shields.io/badge/dynamic/json?url=https://raw.githubusercontent.com/SiliconLabs/application_examples_ci/master/platform_applications/platform_tensorflow_micro_speech_common.json&label=Type&query=type&color=green)
![Technology badge](https://img.shields.io/badge/dynamic/json?url=https://raw.githubusercontent.com/SiliconLabs/application_examples_ci/master/platform_applications/platform_tensorflow_micro_speech_common.json&label=Technology&query=technology&color=green)
Expand Down
44 changes: 23 additions & 21 deletions platform_SensiML/platform_SensiML_DataCaptureLab/README.md
Original file line number Diff line number Diff line change
@@ -1,47 +1,49 @@
# SensiML Data Capture Examples #
# Platform - SensiML Data Capture #

![Type badge](https://img.shields.io/badge/dynamic/json?url=https://raw.githubusercontent.com/SiliconLabs/application_examples_ci/master/platform_applications/platform_SensiML_DataCaptureLab_common.json&label=Type&query=type&color=green)
![Technology badge](https://img.shields.io/badge/dynamic/json?url=https://raw.githubusercontent.com/SiliconLabs/application_examples_ci/master/platform_applications/platform_SensiML_DataCaptureLab_common.json&label=Technology&query=technology&color=green)
![License badge](https://img.shields.io/badge/dynamic/json?url=https://raw.githubusercontent.com/SiliconLabs/application_examples_ci/master/platform_applications/platform_SensiML_DataCaptureLab_common.json&label=License&query=license&color=green)

## Summary ##

The projects provided in this repository contain the hard-coded data collection firmware for IMU (3-axis accelerometer and 3-axis gyroscope) and audio (microphone) data acquisition using Silicon Lab's Thunderboard Sense 2 development kit, targeting SensiML's data collection tool called Data Capture Lab (DCL). Both project implementations utilize DCL's lightweight, simple, data streaming protocol to stream live data from the device under test to the data acquisition software.
The projects provided in this repository contain the hard-coded data collection firmware for IMU (3-axis accelerometer and 3-axis gyroscope) and audio (microphone) data acquisition using Silicon Lab's Thunderboard Sense 2 development kit, targeting SensiML's data collection tool called SensiML Data Studio (SDS). Both project implementations utilize SDS's lightweight, simple, data streaming protocol to stream live data from the device under test to the data acquisition software.

## Hardware Required ##

- One SLTB004A Thunderboard Sense 2 Development Kit
<https://www.silabs.com/development-tools/thunderboard/thunderboard-sense-two-kit>
- One micro USB cable
- Thunderboard Sense 2 Development Kit - SLTB004A

## Connections Required ##

## Setup ##
- Connect the Kit to the PC through a micro USB cable.

### Device firmware/kit configuration - Simplicity Studio ###
## Software Required ##

Import the included .sls file to Studio then build and flash the project to the SLTB004A development kit.
In Simplicity Studio select "File->Import" and navigate to the directory with the .sls project file.
The project is built with relative paths to the STUDIO_SDK_LOC variable which was defined as
- [SensiML Data Studio](https://sensiml.com/download/)

C:\SiliconLabs\SimplicityStudio\v4\developer\sdks\gecko_sdk_suite\v3.1
## Examples ##

In Simplicity Studio, under the Debug Adapters window, right-click on the Thunderboard Sense 2 device and select "Launch console..." from the drop-down menu. In the Adapter Console window, select the "Admin" tab and type "serial vcom config speed 921600" into the terminal input. This will modify the VCOM baudrate to match the application settings. If making any changes to the USART baudrate, the baudrate change must also be modified in the VCOM debug adapter settings.
| No | Example name | Link to example |
|:--:|:-------------|:---------------:|
| 1 | Platform - SensiML IMU Data Capture | [Click here](./SensiML_IMU/) |
| 2 | Platform - SensiML IMU Data Capture with BLE | [Click here](./SensiML_IMU_BLE/) |
| 3 | Platform - SensiML Microphone Data Capture | [Click here](./SensiML_Microphone/) |

### SensiML Setup ###

In SensiML's Data Capture Lab (DCL), select Edit > Import Device Plugin... from the main menu. Select the provided \*.ssf in this repository. Next, create a new project, and in project explorer view, switch modes to "Capture".
- Create a new project, and in the project explorer view, switch modes to "Capture Live Sensor Data..."

Under the Hardware Setup window, click the "+" button to add a sensor. Select "(C) Thunderboard Sense 2 Simple Stream" from the drop-down menu.
- Under the Sensor Configuration window, click the "Next" button. Select "Thunderboard Sense 2" from the Select a Device Plugin window.

For adding the IMU sensor, select "Motion" for the Capture Source drop-down, select the appropriate hard-coded sampling rate (102 is the default configuration in firmware), and enable both Accelerometer and Gyroscope sensor (checkboxes).
![Select device plugin](image/select_device.png)

![DCL - IMU Sensor Configuration](doc/imu_config.PNG)
- For adding the IMU sensor, select "Motion" for the Sensor Properties window, select the appropriate hard-coded sampling rate (102 is the default configuration in firmware), and enable both the Accelerometer and Gyroscope sensor (checkboxes).

For adding the audio sensor, select "Audio" for the Capture Source drop-down, select the appropriate hard-coded sampling rate (16000 is the default configuration in firmware), and enable the microphone sensor (checkbox).
![IMU Sensor Configuration](image/imu_configuration.png)

![DCL - IMU Sensor Configuration](doc/microphone_config.PNG)
- For adding the audio sensor, select "Audio" for the Capture Source drop-down, select the appropriate hard-coded sampling rate (16000 is the default configuration in firmware), and enable the microphone sensor (checkbox).

Use the "Find Devices" button to locate the appropriate serial port. Once configured, use the Connect/Disconnect button to begin streaming data.
![IMU Sensor Configuration](image/microphone_configuration.png)

![DCL - IMU Sensor Configuration](doc/imu_datastream.PNG)
- Use the "Scan" button to locate the appropriate serial port. Once configured, use the Connect/Disconnect button to begin streaming data.

For more detailed information regarding the SensiML DCL tool, please visit SensiML's Toolkit Documentation located here - <https://sensiml.com/documentation/index.php>

Loading

0 comments on commit 8c45578

Please sign in to comment.