WiSeConnect™ SDK v3.x Examples#
This section describes the example applications available with the WiSeConnect™ SDK v3.x.
The Example Folder Structure section describes the folder structure of a Simplicity Studio example.
Subsequent sections provide information about each example available with WiSeConnect SDK v3.x.
In the examples tables below:
The Name column indicates the name by which the example can be found in Simplicity Studio, not including suffixes such as "(SoC)".
Note: The above image is for illustration only and example names may not match with the latest version of the WiSeConnect 3 extension.
The Featured column indicates whether the example is a fully-featured application.
The SoC column indicates whether the example is available in System-on-chip (SoC) mode, where the application and connectivity stack run on the SiWx91x™ chipset. Simplicity Studio displays such examples in the EXAMPLE PROJECTS & DEMOS tab when the SiWx917 is connected to the computer running Studio.
The NCP column indicates whether the example is available in Network Co-processor (NCP) mode with an external EFR32™ microcontroller unit (MCU) host, where the application runs on the EFR32 host, and connectivity stack runs on the SiWx91x chipset. Simplicity Studio displays such examples in the EXAMPLE PROJECTS & DEMOS tab when an EFR32 host is connected to the computer running Studio.
The PSRAM column indicates whether the example executes from pseudo-static random-access memory (PSRAM) in SoC mode on an SiWx917 chip variant that includes PSRAM. Simplicity Studio displays such examples in the EXAMPLE PROJECTS & DEMOS tab when the BRD4342A (SiWx917 with PSRAM) radio board is connected to the computer running Studio.
The Lite FW column indicates whether the example is supported with the Lite variant of the connectivity firmware. Simplicity Studio displays such examples in the EXAMPLE PROJECTS & DEMOS tab when the Lite part SiWG917M110LGTBA is connected to the computer running Studio.
NOTE: Lite firmware image is not supported for NCP mode.
To find the example you need, browse the sections below. The same example may be mentioned in more than one section when it belongs to multiple categories.
The following examples demonstrate specific actions as described in the description column and are organized in alphabetical order by example name.
Example Folder Structure#
Folder / File | Description |
---|---|
| Files auto-generated by Simplicity Studio such as configuration header files, linker files, and others. |
| Header files with platform-specific configuration values. |
| The sub-folders of this folder contain Simplicity SDK (formerly Gecko SDK) platform-specific layer implementations and third-party libraries. |
| Platform layer implementations such as the hardware abstraction layer (HAL), Common Microcontroller Software Interface Standard (CMSIS) for real-time operating systems (RTOS), and common libraries. |
| Third party libraries such as FreeRTOS, mbedTLS, and others. |
| Resources used by the example such as images for the README file. |
| The sub-folders of this folder contain WiSeConnect SDK components and resources. |
| WiSeConnect SDK components such as Wi-Fi, BLE, Si91x MCU Subsystem, and others. |
| WiSeConnect SDK resources such as certificates. |
| Source file with the code for the main application thread. Implement your application code here. |
| Header file for the main application thread. |
| Source file with the entry point function ( |
| README file for the example. |
Wireless Examples#
The following wireless examples are available:
Wi-Fi Examples#
Example | Featured | SoC | NCP | PSRAM | Lite FW | Description | Link to README page |
---|---|---|---|---|---|---|---|
Wi-Fi - Access Point | X | X | Implementing a Wi-Fi Access Point (AP) | ||||
Wi-Fi - AWS Device Shadow | X | X | X | X | X | Establishing connection to the Amazon Web Services (AWS) Internet-of-Things (IoT) Core | |
Wi-Fi - Calibration App | X | X | X | Calibrating carrier frequency offset and transmission (TX) gain offset and writing them to the eFuse | |||
Wi-Fi - Concurrent Mode | X | X | Implementing a Wi-Fi device both as an AP and station (STA) | ||||
Wi-Fi - Concurrent Mode Dual IP | X | X | Implementing a Wi-Fi device both as an AP and STA with both IPv4 and IPv6 interfaces | ||||
Wi-Fi - Enterprise Client Mode | X | X | Implementing a Wi-Fi enterprise client and connecting to an enterprise AP | ||||
Wi-Fi - NWP Or Combined (NWP & M4) Firmware Update via TCP | X | X | X | X | X | Downloading and updating firmware as a TCP client | |
Wi-Fi - HTTP OTAF Update | X | X | X | Downloading and updating firmware as an HTTP client | |||
Wi-Fi - HTTP OTAF TWT Update | X | X | Downloading and updating firmware as an HTTP client using TWT | ||||
Wi-Fi - LwIP TCP Client | X | X | X | Using the hosted mode of the WiSeConnect SDK v3.x by utilizing the Lightweight Internet Protocol (LwIP) stack | |||
Wi-Fi - M4 Firmware Update via TCP | X | X | Downloading and updating the application processor's firmware | ||||
Wi-Fi - Powersave Deep Sleep | X | X | X | Implementing the power-save deep sleep mode of the SiWx91x™ chipset | |||
Wi-Fi - Powersave Standby Associated | X | X | X | X | X | Running an application in | |
Wi-Fi - Powersave Standby Associated TCP Client | X | X | X | X | X | Running an application in | |
Wi-Fi - Select App | X | X | X | Opening a network socket and monitoring it for incoming data | |||
Wi-Fi - SiWx917 Dev Kit (BRD2605A) | X | Demonstrates the features of the SiWx917 Dev Kit Board. This can be tested with the Simplicity Connect mobile app. | |||||
Wi-Fi - TCP Tx on Periodic Wakeup | X | Transmitting data from a sleepy device every time it wakes up | |||||
Wi-Fi - Three TLS Concurrent Client Sockets | X | X | Maintaining three concurrent SSL connections using three sets of SSL certificates | ||||
Wi-Fi - Throughput | X | X | X | X | X | Measuring the WLAN throughput | |
Wi-Fi - Throughput IPv6 | X | X | X | Measuring the WLAN throughout of an IPv6 client | |||
Wi-Fi - TLS Client | X | X | X | Implementing a Transport Layer Security (TLS) client and exchanging encrypted data with a server | |||
Wi-Fi - TWT TCP Client | X | X | X | Implementing a TCP client using the Wi-Fi Target Wake Time (TWT) power-save scheme | |||
Wi-Fi - TWT Use Case Demo App | X | X | X | Implementing a Wi-Fi 6 client using TWT power-save | |||
Wi-Fi - TWT Use Case Remote App | X | X | X | TCP door lock or UDP camera communication between a client and server using TWT power-save | |||
Wi-Fi - User Gain Table | X | X | X | Transmitting data at varying data rates, power levels, and lengths according to a gain table | |||
Wi-Fi - Wlan RF Test | X | X | X | Transmitting Wi-Fi packets at different data rates and power levels for regulatory certification testing | |||
Wi-Fi - Multithreading Application | X | X | Multi-threaded application | ||||
Wi-Fi - Data Transfer Application | X | X | In Client interface, recieve the data from remote PC1 to SiWx91x Station. This recieved data is stored in a buffer. Later in AP interface, the stored buffer is sent by SiWx91x AP to remote PC2. | ||||
Wi-Fi - AP Throughput | X | X | Starts a Wi-Fi AP and transmits/receives data to measure Wi-Fi UDP/TCP throughput performance using a remote iPerf client/server | ||||
Wi-Fi - Firmware Flashing | X | Firmware flashing of Si91x device using host uart xmodem bootloader | |||||
Wi-Fi - Concurrent HTTP Server Provisioning | X | X | Start a Wi-Fi Client and Wi-Fi Access Point in IPv4 and IPv6 simultaneously through provisioning from HTTP Server |
Wi-Fi + BLE Examples#
Example | Featured | SoC | NCP | PSRAM | Lite FW | Description | Link to README page |
---|---|---|---|---|---|---|---|
CLI Demo | X | X | X | Using console commands to demonstrate various API functions in the SDK such as scanning for Access Points (APs), bringing up a network interface, and others | |||
Out of Box Demo | X | X | Commissioning a Wi-Fi device over BLE and exchanging data with it | ||||
Wi-Fi Coex - Wi-Fi Client BLE Provisioning | X | X | X | Advertising a device over BLE, receiving Wi-Fi credentials, and connecting to a Wi-Fi AP | |||
Wi-Fi Coex - Wi-Fi Client BLE Provisioning with AWS | X | X | X | Receiving Wi-Fi credentials over BLE, connecting to Wi-Fi, and publishing data to an AWS MQTT broker | |||
Wi-Fi Coex - Wi-Fi Throughput BLE Dual Role | X | X | X | Measuring the WLAN and/or BLE throughput(s) while they are simultaneously connected | |||
Wi-Fi Coex - Wi-Fi Client BLE Throughput App | X | X | X | This application demonstrates throughput measurement of Wi-Fi while BLE is in connection |
BLE Examples#
Example | Featured | SoC | NCP | PSRAM | Lite FW | Description | Link to README page |
---|---|---|---|---|---|---|---|
BLE - Acceptlist | X | X | X | X | Maintaining an allow list of devices that are allowed to connect to a BLE device | ||
BLE - AE Central | X | X | X | X | Running a BLE central in Extended Advertising Central mode | ||
BLE - AE Peripheral | X | X | X | X | Running a BLE peripheral in Extended Advertising (AE) Peripheral mode | ||
BLE - Central | X | X | X | X | Running a BLE central and connecting to a BLE peripheral | ||
BLE - Datalength | X | X | X | X | Using BLE data length extension to increase packet length | ||
BLE - Gatt Long Read | X | X | X | X | BLE Generic Attribute Profile (GATT) client performing a long read from a BLE GATT server | ||
BLE - Heart Rate | X | X | X | X | Implementing the Heart Rate service both in the BLE central and peripheral roles | ||
BLE - HID On GATT | X | X | X | X | Implementing the Human Interface Device (HID) service both in the BLE central and peripheral roles | ||
BLE - iBeacon | X | X | X | X | Implementing an iBeacon-compatible BLE peripheral | ||
BLE - Long Range | X | X | X | X | Running a BLE central and updating physical layer (PHY) rates | ||
BLE - Multiconnection GATT Test | X | X | X | X | Multiple BLE connections both as a BLE central and peripheral | ||
BLE - PER | X | X | X | X | X | Getting BLE packet error rate (PER) statistics for transmitting and receiving packets | |
BLE - Power Save | X | X | X | X | BLE power-save configuration both in Advertising and Connected modes | ||
BLE - Privacy | X | X | X | X | BLE privacy support implemented by changing the device address frequently | ||
BLE - Secure Connection | X | X | X | X | BLE peripheral implementing Security Manager Protocol (SMP) pairing and encryption | ||
BLE - Testmodes | X | X | X | X | Testing the BLE Generic Access Profile (GAP) peripheral role | ||
BLE - Throughput | X | X | X | X | Measuring the BLE throughput | ||
BLE - Unified AE Coex App | X | X | X | Implementing BLE AE mode with a central and peripheral | |||
BLE - ble_update_gain_table | X | X | X | Bluetooth Low Energy Update Gain table | |||
BLE - BT_STACK_BYPASS | X | Demonstrates how to configure the Raw HCI commands through uart |
SiWx91x Device Management Examples#
Firmware Update Examples#
Example | Featured | SoC | NCP | PSRAM | Lite FW | Description | Link to README page |
---|---|---|---|---|---|---|---|
Wi-Fi - NWP Or Combined (NWP & M4) Firmware Update via TCP | X | X | X | X | X | Downloading and updating firmware as a TCP client | |
Wi-Fi - HTTP OTAF Update | X | X | Downloading and updating firmware as an HTTP client | ||||
Wi-Fi - HTTP OTAF TWT Update | X | X | Downloading and updating firmware as an HTTP client using TWT | ||||
Wi-Fi - M4 Firmware Update via TCP | X | X | Downloading and updating the application processor's firmware |
SiWx91x MCU Examples#
The following SiWx91x microcontroller unit host (MCU) examples are available:
Peripheral Examples#
Example | Featured | SoC | NCP | PSRAM | Lite FW | Description | Link to README page |
---|---|---|---|---|---|---|---|
SL Si91x - Empty C Project | X | X | X | Creating an empty C project to which addtional SiWx91x components and functionality may be added | |||
SL Si91x - Empty CPP Project | X | X | X | Creating an empty C++ project to which addtional SiWx91x components and functionality may be added | |||
SL Si91x - Hello World | X | X | Creating a hello world application to which addtional SiWx91x components and functionality may be added | ||||
SL Si91x - ADC FIFO Mode | X | X | Converting analog signals using the analog-to-digital converter in FIFO mode (ADC) | ||||
SL Si91x - ADC Multichannel | X | X | Converting analog signals over multiple channels using the ADC | ||||
SL Si91x - ADC Static Mode | X | X | Converting analog signals using the analog-to-digital converter in static mode (ADC) | ||||
SL Si91x - Analog Comparator | X | X | Using the analog comparator to compare two voltages | ||||
SL Si91x - BJT Temperature Sensor | X | X | Measuring temperature with the bipolar junction transistor (BJT) based temperature sensor | ||||
Si91x - SL_CALENDAR | X | X | Configuring the clock and implementing triggers, alarms, and time conversion | ||||
SL Si91x - Combo Application | X | X | Implementing RTOS semaphores and event flags with multiple peripherals | ||||
SL Si91x - Config Timer | X | X | Configuring and using timers | ||||
SL Si91x - CRC | X | Demonstrating CRC Generation on DMA transferred data | |||||
SL Si91x - DAC | X | Converting digital data using the digital-to-analog converter (DAC) | |||||
SL Si91x - DMA | X | X | Data transfer using Direct Memory Access (DMA) | ||||
SL Si91x - GPIO | X | X | Using the general purpose input-outputs (GPIOs) in the High-Power (HP), Ultra-Low-Power (ULP), and UULP domains | ||||
SL Si91x - GPIO Detailed Example | X | X | Toggling the HP instance GPIO at intervals of 1 second | ||||
SL Si91x - GPIO Example | X | X | Using the HP pin interrupt and toggling of HP GPIO pin 6 | ||||
SL Si91x - GPIO Group Example | X | X | Using the HP, ULP group interrupt | ||||
SL Si91x - GPIO ULP Example | X | X | Using the ULP instance GPIO | ||||
SL Si91x - GPIO UULP Example | X | X | Using the UULP instance GPIO | ||||
SL Si91x - EFUSE | X | X | Programming the eFuse and reading data from the eFuse | ||||
SL Si91x - GSPI | X | X | Generic Serial Peripheral Interface (GSPI) communication | ||||
SL Si91x - I2C Driver Follower | X | X | Data transfer from an Inter-Integrated Circuit (I2C) leader to follower and subsequently follower to leader | ||||
SL Si91x - I2C Driver Leader | X | X | Low level driver for an I2C leader transferring data to a follower | ||||
SL Si91x - I2C Follower | X | Running an I2C follower and exchanging data with a leader | |||||
SL Si91x - I2C Leader | X | Running an I2C leader and exchanging data with a follower | |||||
SL Si91x - I2S Loopback | X | X | Performing an Inter-Integrated Circuit Sound (I2S) transfer using the loopback mechanism | ||||
SL Si91x - I2S Primary | X | X | Performing I2S primary device transfer | ||||
SL Si91x - I2S Secondary | X | X | Performing I2S secondary device transfer | ||||
SL Si91x - PWM | X | X | Using pulse width modulation (PWM) to generate a periodic pulse waveform | ||||
SL Si91x - RO Sensor | X | X | Measuring temperature with the Ruthenium Oxide (RO) temperature sensor | ||||
Si91x - SL_RTOS_MSG_QUEUE | X | X | Using an RTOS message queue | ||||
Si91x - SL_RTOS_MUTEX | X | Using an RTOS mutex for task synchronization | |||||
SL Si91x - SDIO Secondary | X | X | Implementing a Secure Digital Input Output (SDIO) secondary and exchanging data with an SDIO primary | ||||
SL Si91x - SIO | X | X | Serial Input-Output (SIO) over SPI and Universal Asynchronous Receiver-Transmitter (UART) interfaces | ||||
SL Si91x - SSI Master | X | X | Running a Synchronous Serial Interface (SSI) main and exchanging data with a secondary | ||||
SL Si91x - SSI Slave | X | X | Running an SSI secondary and exchanging data with a main | ||||
SL Si91x - SYSRTC | X | X | Using the system real-time clock (SYSRTC) on the Si91x device to toggle the LED at one-second intervals | ||||
SL Si91x - UART | X | X | Exchanging data over UART | ||||
SL Si91x - ULP ADC | X | X | Using ADC in ULP mode | ||||
SL Si91x - ULP ADC Multi-channel | X | X | Using ADC multi-channel in ULP mode | ||||
SL Si91x - ULP Calendar | X | X | Using the clock in ULP mode | ||||
SL Si91x - ULP DAC | X | X | Using DAC in ULP mode | ||||
SL Si91x - ULP DMA | X | X | Using DMA in ULP mode | ||||
SL Si91x - ULP I2C Driver Leader | X | X | Using I2C driver as leader in ULP mode | ||||
SL Si91x - ULP I2C Leader | X | Using I2C as leader in ULP mode | |||||
SL Si91x - ULP I2S | X | X | Using the clock in ULP mode | ||||
SL Si91x - ULP Timer | X | X | Using timers in ULP mode | ||||
SL Si91x - ULP UART | X | X | Using UART in ULP mode | ||||
SL Si91x - USART Asynchronous | X | X | Exchanging data over USART in asynchronous mode | ||||
SL Si91x - USART Synchronous Master | X | X | Exchanging data over USART in synchronous mode as a master | ||||
SL Si91x - USART Synchronous Slave | X | X | Exchanging data over USART in asynchronous mode as a slave | ||||
SL Si91x - Watchdog Timer | X | X | Implementing a watchdog timer which resets the system on an exception condition | ||||
SL Si91x - PSRAM Blink | X | X | Demonstrates how to to use PSRAM with Blink example | ||||
SL Si91x - PSRAM Driver Example | X | X | Demonstrates how to to use PSRAM Driver |
Driver Examples#
Example | Featured | SoC | NCP | PSRAM | Lite FW | Description | Link to README page |
---|---|---|---|---|---|---|---|
SL Si91x - Blinky | X | X | Toggling the LED | ||||
SL Si91x - Button Baremetal | X | X | Handling button presses by toggling LEDs | ||||
SL Si91x - MEMLCD Baremetal | X | Displaying data on the Liquid Crystal Display (LCD) peripheral | |||||
SL Si91x - Joystick | X | X | Using the joystick on the SiWx91x and reporting its position | ||||
SL Si91x - SI70xx | X | X | Measuring relative humidity and temperature with the Si70XX sensor | ||||
SL Si91x - RGB LED | X | Using the RGB LED | |||||
SL Si91x - ICM40627 | X | Measuring motion parameters and temperature with the ICM40627 sensor | |||||
SL Si91x - VEML6035 | X | Measuring lux with the VEML6035 ambient light sensor | |||||
Flash Read Write | X | X | Demonstrates flash Read Write feature |
Service Examples#
Example | Featured | SoC | NCP | PSRAM | Lite FW | Description | Link to README page |
---|---|---|---|---|---|---|---|
SL Si91x - IOSTREAM USART Baremetal | X | X | Exchanging data using Universal Synchronous/Asynchronous Receiver-Transmitter (USART) communication over the virtual COM (VCOM) port | ||||
SL Si91x - Common Flash | X | X | Using the Non-Volatile Memory (NVM3) service of the SiWx91x in Common Flash configuration to maintain key-value pairs in the flash memory | ||||
sl_si91x_nvm3_dual_flash | X | Using the NVM3 service of the SiWx91x Dual Flash configuration to maintain key-value pairs in the flash memory | |||||
SL Si91x - Power Manager M4 Wireless | X | X | Using the power manager for the application processor | ||||
SL Si91x - Sensorhub | X | X | Reading data from the sensors on the Si91x device | ||||
SL Si91x - Sleep Timer | X | X | Implementing one-time and periodic sleep timers |
Cryptography Examples#
Example | Featured | SoC | NCP | PSRAM | Lite FW | Description | Link to README page |
---|---|---|---|---|---|---|---|
Crypto - AES | X | X | Encrypting and decrypting data using the advanced encryption standard (AES) method | ||||
Crypto - Attestation | X | X | Performing attestation on the SiWx91x using cryptographic methods | ||||
Crypto - ECDH | X | X | Using the elliptic-curve Diffie-Hellman (ECDH) cryptographic APIs of the SiWx91x device | ||||
Crypto - ECDSA | X | X | Using the elliptic-curve Digital Signature Algorithm (ECDSA) cryptographic APIs of the SiWx91x device | ||||
Crypto - HMAC | X | X | Generating a message digest using the HMAC cryptographic method | ||||
Crypto - SHA | X | X | Generating a message digest using the SHA cryptographic method | ||||
Si91x - SoC PSA AES Cipher | X | X | Implementing the Platform Security Architecture (PSA) Advanced Encryption Standard (AES) | ||||
Si91x - SoC PSA Asymmetric Key Storage | X | X | Generating and storing assymetric cryptographic keys | ||||
Si91x - SoC PSA CCM | X | X | Implementing PSA with the counter with cipher block chaining message authentication code (CCM) encryption method | ||||
Si91x - SoC PSA CHACHAPOLY | X | X | Implementing PSA with the ChaChaPoly encryption method | ||||
Si91x - SoC PSA ECDH | X | X | Implementing PSA with the elliptic-curve Diffie-Hellman (ECDH) encryption method | ||||
Si91x - SoC PSA GCM | X | X | Implementing PSA with the Galois/Counter Mode (GCM) of operation | ||||
Si91x - SoC PSA HMAC | X | X | Implementing PSA with hash-based message authentication code (HMAC) | ||||
Si91x - SoC PSA Multithread | X | X | Implementing thread-safe PSA code with cryptography hardware accelerators | ||||
Si91x - SoC PSA SHA | X | X | Implementing PSA with the secure hash algorithm (SHA) encryption method | ||||
Si91x - SoC PSA Symmetric Key Storage | X | X | Generating and storing assymetric cryptographic keys | ||||
Si91x - SoC PSA ECDSA | X | X | Demonstrates using ECDSA for signature generation and verification |
Network Protocol Examples#
The following network protocol examples are available:
Ping Examples#
Example | Featured | SoC | NCP | PSRAM | Lite FW | Description | Link to README page |
---|---|---|---|---|---|---|---|
Wi-Fi - Station Ping | X | X | X | Implementing the Internet Control Message Protocol (ICMP), better known as the ping protocol | |||
Wi-Fi - Station Ping V6 | X | X | Implementing the ping protocol (ICMP) over IPv6 |
SNTP Examples#
Example | Featured | SoC | NCP | PSRAM | Lite FW | Description | Link to README page |
---|---|---|---|---|---|---|---|
Wi-Fi - SNTP Client | X | X | Implementing the Simple Network Time Protocol (SNTP) |
Application Protocol Examples#
The following application protocol examples are available:
HTTP Examples#
Example | Featured | SoC | NCP | PSRAM | Lite FW | Description | Link to README page |
---|---|---|---|---|---|---|---|
Wi-Fi - HTTP Client | X | X | X | Implementing a Hyper-Text Transfer Protocol (HTTP) client to exchange data with an HTTP server | |||
Wi-Fi - HTTP OTAF Update | X | X | X | Downloading and updating firmware as an HTTP client | |||
Wi-Fi Coex - Wi-Fi Client HTTPS BLE Dual Role | X | X | X | Simultaneous connection over secure HTTP (HTTPS) and as a BLE central and peripheral | |||
Wi-Fi - HTTP Server | X | Implementing a Hyper-Text Transfer Protocol (HTTP) server to exchange data with an HTTP client | |||||
Wi-Fi - Concurrent HTTP Server | X | Demonstrates how to create HTTP Server in concurrent mode |
MQTT Examples#
Example | Featured | SoC | NCP | PSRAM | Lite FW | Description | Link to README page |
---|---|---|---|---|---|---|---|
Wi-Fi - AWS IoT MQTT Client | X | X | X | Connecting to an AWS MQTT broker and publishing data | |||
Wi-Fi - Azure IoT | X | X | X | Connecting to an Azure MQTT broker and publishing and subscribing to MQTT topics | |||
Wi-Fi - Embedded MQTT Client | X | X | X | Connecting to an MQTT broker and publishing and subscribing to MQTT topics | |||
Wi-Fi - Embedded MQTT Client TWT | X | X | X | MQTT client using the Wi-Fi TWT power-save mode |