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.
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 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 | 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 | Establishing connection to the Amazon Web Services (AWS) Internet-of-Things (IoT) Core | ||
Wi-Fi - Calibration App | 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 - Enterprise Client Mode | X | X | Implementing a Wi-Fi enterprise client and connecting to an enterprise AP | |||
Wi-Fi - Firmware Update | 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 - LwIP TCP Client | 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 | X | Downloading and updating the application processor's firmware | ||||
Wi-Fi - Powersave Deep Sleep | X | X | Implementing the power-save deep sleep mode of the SiWx91x™ chipset | |||
Wi-Fi - Powersave Standby Associated | X | X | X | X | Running an application in | |
Wi-Fi - Select App | X | X | Opening a network socket and monitoring it for incoming data | |||
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 | Measuring the WLAN throughput | |
Wi-Fi - Throughput IPv6 | X | X | Measuring the WLAN throughout of an IPv6 client | |||
Wi-Fi - TLS Client | X | X | Implementing a Transport Layer Security (TLS) client and exchanging encrypted data with a server | |||
Wi-Fi - TWT TCP Client | 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 | Implementing a Wi-Fi 6 client using TWT power-save | |||
Wi-Fi - TWT Use case remote app | 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 | Transmitting data at varying data rates, power levels, and lengths according to a gain table | |||
Wi-Fi - Wlan RF Test | X | X | Transmitting Wi-Fi packets at different data rates and power levels for regulatory certification testing |
Wi-Fi + BLE Examples#
Example | Featured | SoC | NCP | PSRAM | Description | Link to README page |
---|---|---|---|---|---|---|
Cli Demo | 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 | Commissioning a Wi-Fi device over BLE and exchanging data with it | ||||
Wi-Fi Coex - Wi-Fi Client BLE Provisioning | 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 | 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 | Measuring the WLAN and/or BLE throughput(s) while they are simultaneously connected |
BLE Examples#
Example | Featured | SoC | NCP | PSRAM | Description | Link to README page |
---|---|---|---|---|---|---|
BLE - Acceptlist | X | X | Maintaining an allow list of devices that are allowed to connect to a BLE device | |||
BLE - AE Central | X | X | Running a BLE central in Extended Advertising Central mode | |||
BLE - AE Peripheral | X | X | Running a BLE peripheral in Extended Advertising (AE) Peripheral mode | |||
BLE - Central | X | X | Running a BLE central and connecting to a BLE peripheral | |||
BLE - Datalength | X | X | Using BLE data length extension to increase packet length | |||
BLE - Gatt Long Read | X | X | BLE Generic Attribute Profile (GATT) client performing a long read from a BLE GATT server | |||
BLE - Heart Rate | X | X | X | Implementing the Heart Rate service both in the BLE central and peripheral roles | ||
BLE - HID On GATT | X | X | Implementing the Human Interface Device (HID) service both in the BLE central and peripheral roles | |||
BLE - iBeacon | X | X | Implementing an iBeacon-compatible BLE peripheral | |||
BLE - Long Range | X | X | Running a BLE central and updating physical layer (PHY) rates | |||
BLE - Multiconnection GATT Test | X | Multiple BLE connections both as a BLE central and peripheral | ||||
BLE - PER | X | X | X | X | Getting BLE packet error rate (PER) statistics for transmitting and receiving packets | |
BLE - Power Save | X | X | X | BLE power-save configuration both in Advertising and Connected modes | ||
BLE - Privacy | X | X | BLE privacy support implemented by changing the device address frequently | |||
BLE - Secure Connection | X | X | BLE peripheral implementing Security Manager Protocol (SMP) pairing and encryption | |||
BLE - Testmodes | X | X | Testing the BLE Generic Access Profile (GAP) peripheral role | |||
BLE - Throughput | X | X | X | Measuring the BLE throughput | ||
BLE - Unified AE Coex App | X | Implementing BLE AE mode with a central and peripheral |
SiWx91x Device Management Examples#
Firmware Update Examples#
Example | Featured | SoC | NCP | PSRAM | Description | Link to README page |
---|---|---|---|---|---|---|
Wi-Fi - Firmware Update | 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 - M4 Firmware Update | 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 | Description | Link to README page |
---|---|---|---|---|---|---|
Empty C Project | X | Creating an empty C project to which addtional SiWx91x components and functionality may be added | ||||
Empty CPP Project | X | Creating an empty C++ project to which addtional SiWx91x components and functionality may be added | ||||
SiW91x - Hello World | X | Creating a hello world application to which addtional SiWx91x components and functionality may be added | ||||
Si91x - PSRAM Blink | X | Executing from pseudostatic random-access memory (PSRAM) and performing a light-emitting diode (LED) blink operation | ||||
Si91x - PSRAM Driver example | X | Reading and writing from and to the PSRAM | ||||
Si91x - SL_ADC | X | Converting analog signals using the analog-to-digital converter (ADC) | ||||
Si91x - SL ADC MULTICHANNEL | X | Converting analog signals using the analog-to-digital converter (ADC) | ||||
Si91x - SL_CALENDAR | X | Configuring the clock and implementing triggers, alarms, and time conversion | ||||
Si91x - SL_Config_Timer | X | Configuring and using timers | ||||
Si91x - SL_DMA | X | Data transfer using Direct Memory Access (DMA) | ||||
Si91x - SL_DRIVER_GPIO | X | Using the general purpose input-outputs (GPIO's) in the HP, ULP and UULP domains | ||||
Si91x - SL_EFUSE | X | Programming the eFuse and reading data from the eFuse | ||||
Si91x - SL_GPIO | X | Using the GPIO ports of the SiWx91x chipset | ||||
Si91x - SL_GSPI | X | Generic Serial Peripheral Interface (GSPI) communication. | ||||
Si91x - SL_I2C_driver_Follower | X | Data transfer from an Inter-Integrated Circuit (I2C) leader to follower and subsequently follower to leader | ||||
Si91x - SL_I2C_driver_Leader | X | Low level driver for an I2C leader transferring data to a follower | ||||
Si91x - SL_I2C_Follower | X | Running an I2C follower and exchanging data with a leader | ||||
Si91x - SL_I2C_Leader | X | Running an I2C leader and exchanging data with a follower | ||||
Si91x - SL_I2S_LOOPBACK | X | Performing an Inter-Integrated Circuit Sound (I2S) transfer using the loopback mechanism | ||||
Si91x - SL_I2S_LOWPOWER | X | Performing an I2S loopback transfer in power save mode | ||||
Si91x - SL_I2S_PRIMARY | X | Performing I2S primary device transfer | ||||
Si91x - SL_I2S_SECONDARY | X | Performing I2S secondary device transfer | ||||
Si91x - SL_PWM | X | Using pulse width modulation (PWM) to generate a periodic pulse waveform | ||||
Si91x - SDIO Secondary | X | Implementing a Secure Digital Input Output (SDIO) secondary and exchanging data with an SDIO primary | ||||
Si91x - SL_SIO | X | Serial Input-Output (SIO) over SPI and Universal Asynchronous Receiver-Transmitter (UART) interfaces | ||||
Si91x - SL_SSI_Master | X | Running a Synchronous Serial Interface (SSI) main and exchanging data with a secondary | ||||
Si91x - SL_SSI_Slave | X | Running an SSI secondary and exchanging data with a main | ||||
Si91x - SL_SYSRTC | X | Using the system real-time clock (SYSRTC) on the Si91x device to toggle the LED at one-second intervals | ||||
Si91x - SL_ULP ADC | X | Using the ADC converter in ultra low-power (ULP) mode | ||||
Si91x - SL ULP ADC MULTICHANNEL | X | Using the ADC converter for multichannel in ultra low-power (ULP) mode | ||||
Si91x - SL_ULP_CALENDAR | X | Using the clock in ULP mode | ||||
Si91x - SL_ULP_DMA | X | Performing a DMA transfer in ULP mode | ||||
Si91x - SL_ULP_GPIO | X | Using the Si91x GPIO ports in ULP mode | ||||
Si91x - SL_ULP_I2C_Leader | X | Implementing an I2C leader in ULP mode | ||||
Si91x - SL_ULP_SSI_MASTER | X | Implementing an SSI primary in ULP mode | ||||
Si91x - SL_ULP_Timer | X | Using timers in ULP mode | ||||
Si91x - SL_ULP_UART | X | Transferring data over the UART interface in ULP mode | ||||
Si91x - SL_USART | X | Exchanging data over USART running on a real-time operating system (RTOS) host | ||||
Si91x - SL_Watchdog_Timer | X | Implementing a watchdog timer which resets the system on an exception condition |
Driver Examples#
Example | Featured | SoC | NCP | PSRAM | Description | Link to README page |
---|---|---|---|---|---|---|
Si91x - Blinky | X | Toggling the LED | ||||
Si91x - Button Baremetal | X | Handling button presses by toggling LEDs | ||||
Si91x - MEMLCD Baremetal | X | Displaying data on the Liquid Crystal Display (LCD) peripheral | ||||
Si91x - SL_JOYSTICK | X | Using the joystick on the SiWx91x and reporting its position | ||||
Si91x - SL_SI70xx | X | Measuring relative humidity and temperature with the Si70XX sensor |
Service Examples#
Example | Featured | SoC | NCP | PSRAM | Description | Link to README page |
---|---|---|---|---|---|---|
Si91x - iostream usart baremetal | X | Exchanging data using Universal Synchronous/Asynchronous Receiver-Transmitter (USART) communication over the virtual COM (VCOM) port | ||||
sl_si91x_nvm3_common_flash | 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 | ||||
Si91x - SL_POWER_MANAGER_M4_WIRELESS | X | Using the power manager for the application processor | ||||
sl_si91x_sensorhub - sensorhub example | X | Reading data from the sensors on the Si91x device | ||||
Si91x - Sleep Timer | X | Implementing one-time and periodic sleep timers |
Cryptography Examples#
Example | Featured | SoC | NCP | PSRAM | Description | Link to README page |
---|---|---|---|---|---|---|
Crypto - AES | X | Encrypting and decrypting data using the advanced encryption standard (AES) method | ||||
Crypto - Attestation | X | Performing attestation on the SiWx91x using cryptographic methods | ||||
Crypto - ECDH | X | Using the elliptic-curve Diffie-Hellman (ECDH) cryptographic APIs of the SiWx91x device | ||||
Crypto - HMAC | X | Generating a message digest using the HMAC cryptographic method | ||||
Crypto - SHA | X | Generating a message digest using the SHA cryptographic method | ||||
Si91x - SoC PSA AES Cipher | X | Implementing the Platform Security Architecture (PSA) Advanced Encryption Standard (AES) | ||||
Si91x - SoC PSA asymmetric key storage | X | Generating and storing assymetric cryptographic keys | ||||
Si91x - SoC PSA CCM | X | Implementing PSA with the counter with cipher block chaining message authentication code (CCM) encryption method | ||||
Si91x - SoC PSA CHACHAPOLY | X | Implementing PSA with the ChaChaPoly encryption method | ||||
Si91x - SoC PSA ECDH | X | Implementing PSA with the elliptic-curve Diffie-Hellman (ECDH) encryption method | ||||
Si91x - SoC PSA GCM | X | Implementing PSA with the Galois/Counter Mode (GCM) of operation | ||||
Si91x - SoC PSA HMAC | X | Implementing PSA with hash-based message authentication code (HMAC) | ||||
Si91x - SoC PSA SHA | X | Implementing PSA with the secure hash algorithm (SHA) encryption method | ||||
Si91x - SoC PSA symmetric key storage | X | Generating and storing assymetric cryptographic keys |
Network Protocol Examples#
The following network protocol examples are available:
Ping Examples#
Example | Featured | SoC | NCP | PSRAM | Description | Link to README page |
---|---|---|---|---|---|---|
Wi-Fi - Station Ping | X | X | Implementing the Internet Control Message Protocol (ICMP), better known as the ping protocol | |||
Wi-Fi - Station Ping V6 | X | Implementing the ping protocol (ICMP) over IPv6 |
SNTP Examples#
Example | Featured | SoC | NCP | PSRAM | 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 | Description | Link to README page |
---|---|---|---|---|---|---|
Wi-Fi - HTTP Client | X | X | Implementing a Hyper-Text Transfer Protocol (HTTP) client to exchange data with an HTTP server | |||
Wi-Fi - HTTP OTAF Update | X | X | Downloading and updating firmware as an HTTP client | |||
Wi-Fi Coex - Wi-Fi Client HTTPS BLE Dual Role | X | Simultaneous connection over secure HTTP (HTTPS) and as a BLE central and peripheral |
MQTT Examples#
Example | Featured | SoC | NCP | PSRAM | Description | Link to README page |
---|---|---|---|---|---|---|
Wi-Fi - AWS IoT MQTT Client | X | X | Connecting to an AWS MQTT broker and publishing data | |||
Wi-Fi - Embedded MQTT Client | X | X | Connecting to an MQTT broker, publishing, and subscribing to MQTT topics | |||
Wi-Fi - Embedded MQTT Client TWT | X | X | MQTT client using the Wi-Fi TWT power-save mode |