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)".

    Example Name in StudioExample Name in Studio

    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 NCP Interface column indicates whether the example supports one or both of the following possible interfaces between the SiWx91x device and the EFR32 host. This column is only relevant when the NCP column is checked (X).

    • Serial peripheral interface (SPI) and/or

    • Universal asynchronous receiver-transmitter (UART) interface.

  • 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

autogen

Files auto-generated by Simplicity Studio such as configuration header files, linker files, and others.

config

Header files with platform-specific configuration values.

gecko_sdk_4.3.2

The sub-folders of this folder contain Gecko SDK platform-specific layer implementations, and third party libraries.

|-- platform

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.

|-- util

Third party libraries such as FreeRTOS, mbedTLS, and others.

resources

Resources used by the example such as images for the README file.

wiseconnect3_sdk_3.1.1

The sub-folders of this folder contain WiSeConnect SDK components and resources.

|-- components

WiSeConnect SDK components such as Wi-Fi, BLE, Si91x MCU Subsystem, and others.

|-- resources

WiSeConnect SDK resources such as certificates.

app.c

Source file with the code for the main application thread. Implement your application code here.

app.h

Header file for the main application thread.

main.c

Source file with the entry point function (main()) for application execution with start-up code such as wireless and platform initializations, and creation of the main application thread.

readme.md

README file for the example.

Wireless Examples#

The following wireless examples are available:

Wi-Fi Examples#

Example

Featured

SoC

NCP

NCP Interface

PSRAM

Description

Link to README page

Wi-Fi - Access Point

X

X

SPI

Implementing a Wi-Fi Access Point (AP)

Go to README

Wi-Fi - AWS Device Shadow

X

X

X

SPI, UART

X

Establishing connection to the Amazon Web Services (AWS) Internet-of-Things (IoT) Core

Go to README

Wi-Fi - Calibration App

X

X

SPI

Calibrating carrier frequency offset and transmission (TX) gain offset and writing them to the eFuse

Go to README

Wi-Fi - Concurrent Mode

X

X

SPI

Implementing a Wi-Fi device both as an AP and station (STA)

Go to README

Wi-Fi - Concurrent Mode Dual IP

X

X

SPI

Implementing a Wi-Fi device both as an AP and STA with both IPv4 and IPv6 interfaces

Go to README

Wi-Fi - Enterprise Client Mode

X

X

SPI

Implementing a Wi-Fi enterprise client and connecting to an enterprise AP

Go to README

Wi-Fi - Firmware Update

X

X

X

SPI, UART

X

Downloading and updating firmware as a TCP client

Go to README

Wi-Fi - HTTP OTAF Update

X

X

SPI

Downloading and updating firmware as an HTTP client

Go to README

Wi-Fi - HTTP OTAF TWT Update

X

X

SPI

Downloading and updating firmware as an HTTP client using TWT

Go to README

Wi-Fi - LwIP TCP Client

X

X

SPI

Using the hosted mode of the WiSeConnect SDK v3.x, by utilizing the Lightweight Internet Protocol (LwIP) stack

Go to README

Wi-Fi - M4 Firmware Update

X

Downloading and updating the application processor's firmware

Go to README

Wi-Fi - Powersave Deep Sleep

X

X

SPI

Implementing the power-save deep sleep mode of the SiWx91x™ chipset

Go to README

Wi-Fi - Powersave Standby Associated

X

X

X

SPI, UART

X

Running an application in ASSOCIATED_POWER_SAVE mode

Go to README

Wi-Fi - Select App

X

X

SPI

Opening a network socket and monitoring it for incoming data

Go to README

Wi-Fi - TCP Tx on Periodic Wakeup

X

Transmitting data from a sleepy device every time it wakes up

Go to README

Wi-Fi - Three TLS Concurrent Client Sockets

X

X

SPI

Maintaining three concurrent SSL connections using three sets of SSL certificates

Go to README

Wi-Fi - Throughput

X

X

X

SPI, UART

X

Measuring the WLAN throughput

Go to README

Wi-Fi - Throughput IPv6

X

X

SPI

Measuring the WLAN throughout of an IPv6 client

Go to README

Wi-Fi - TLS Client

X

X

SPI

Implementing a Transport Layer Security (TLS) client and exchanging encrypted data with a server

Go to README

Wi-Fi - TWT TCP Client

X

X

SPI

Implementing a TCP client using the Wi-Fi Target Wake Time (TWT) power-save scheme

Go to README

Wi-Fi - TWT Use case demo app

X

X

SPI

Implementing a Wi-Fi 6 client using TWT power-save

Go to README

Wi-Fi - TWT Use case remote app

X

X

SPI

TCP door lock or UDP camera communication between a client and server using TWT power-save

Go to README

Wi-Fi - User Gain Table

X

X

SPI

Transmitting data at varying data rates, power levels, and lengths according to a gain table

Go to README

Wi-Fi - Wlan RF Test

X

X

SPI

Transmitting Wi-Fi packets at different data rates and power levels for regulatory certification testing

Go to README

Wi-Fi + BLE Examples#

Example

Featured

SoC

NCP

NCP Interface

PSRAM

Description

Link to README page

Cli Demo

X

X

SPI

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

Go to README

Out of Box Demo

X

Commissioning a Wi-Fi device over BLE and exchanging data with it

Go to README

Wi-Fi Coex - Wi-Fi Client BLE Provisioning

X

X

SPI

Advertising a device over BLE, receiving Wi-Fi credentials and connecting to a Wi-Fi AP

Go to README

Wi-Fi Coex - Wi-Fi Client BLE Provisioning with AWS

X

X

SPI

Receiving Wi-Fi credentials over BLE, connecting to Wi-Fi and publishing data to an AWS MQTT broker

Go to README

Wi-Fi Coex - Wi-Fi Throughput BLE Dual Role

X

Measuring the WLAN and/or BLE throughput(s) while they are simultaneously connected

Go to README

BLE Examples#

Example

Featured

SoC

NCP

NCP Interface

PSRAM

Description

Link to README page

BLE - Acceptlist

X

X

SPI

Maintaining an allow list of devices that are allowed to connect to a BLE device

Go to README

BLE - AE Central

X

X

SPI

Running a BLE central in Extended Advertising Central mode

Go to README

BLE - AE Peripheral

X

X

SPI

Running a BLE peripheral in Extended Advertising (AE) Peripheral mode

Go to README

BLE - Central

X

X

SPI

Running a BLE central and connecting to a BLE peripheral

Go to README

BLE - Datalength

X

X

SPI

Using BLE data length extension to increase packet length

Go to README

BLE - Gatt Long Read

X

X

SPI

BLE Generic Attribute Profile (GATT) client performing a long read from a BLE GATT server

Go to README

BLE - Heart Rate

X

X

SPI

X

Implementing the Heart Rate service both in the BLE central and peripheral roles

Go to README

BLE - HID On GATT

X

X

SPI

Implementing the Human Interface Device (HID) service both in the BLE central and peripheral roles

Go to README

BLE - iBeacon

X

X

SPI

Implementing an iBeacon-compatible BLE peripheral

Go to README

BLE - Long Range

X

X

SPI

Running a BLE central and updating physical layer (PHY) rates

Go to README

BLE - Multiconnection GATT Test

X

X

SPI

Multiple BLE connections both as a BLE central and peripheral

Go to README

BLE - PER

X

X

X

SPI, UART

X

Getting BLE packet error rate (PER) statistics for transmitting and receiving packets

Go to README

BLE - Power Save

X

X

SPI

X

BLE power-save configuration both in Advertising and Connected modes

Go to README

BLE - Privacy

X

X

SPI

BLE privacy support implemented by changing the device address frequently

Go to README

BLE - Secure Connection

X

X

SPI

BLE peripheral implementing Security Manager Protocol (SMP) pairing and encryption

Go to README

BLE - Testmodes

X

X

SPI

Testing the BLE Generic Access Profile (GAP) peripheral role

Go to README

BLE - Throughput

X

X

SPI

X

Measuring the BLE throughput

Go to README

BLE - Unified AE Coex App

X

X

SPI

Implementing BLE AE mode with a central and peripheral

Go to README

SiWx91x Device Management Examples#

Firmware Update Examples#

Example

Featured

SoC

NCP

NCP Interface

PSRAM

Description

Link to README page

Wi-Fi - Firmware Update

X

X

X

SPI, UART

X

Downloading and updating firmware as a TCP client

Go to README

Wi-Fi - HTTP OTAF Update

X

X

SPI

Downloading and updating firmware as an HTTP client

Go to README

Wi-Fi - HTTP OTAF TWT Update

X

X

SPI

Downloading and updating firmware as an HTTP client using TWT

Go to README

Wi-Fi - M4 Firmware Update

X

Downloading and updating the application processor's firmware

Go to README

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

Go to README

Empty CPP Project

X

Creating an empty C++ project to which addtional SiWx91x components and functionality may be added

Go to README

SiW91x - Hello World

X

Creating a hello world application to which addtional SiWx91x components and functionality may be added

Go to README

Si91x - SL_ADC

X

Converting analog signals using the analog-to-digital converter (ADC)

Go to README

Si91x - SL ADC MULTICHANNEL

X

Converting analog signals over multiple channels using the ADC

Go to README

Si91x - SL_ANALOG_COMPARATOR

X

Using the analog comparator to compare two voltages

Go to README

Si91x - SL_BJT_TEMPERATURE_SENSOR

X

Measuring temperature with the bipolar junction transistor (BJT) based temperature sensor

Go to README

Si91x - SL_CALENDAR

X

Configuring the clock and implementing triggers, alarms, and time conversion

Go to README

Si91x - SL_COMBO_APPLICATION

X

Implementing RTOS semaphores and event flags with multiple peripherals

Go to README

Si91x - SL_Config_Timer

X

Configuring and using timers

Go to README

Si91x - SL_DAC

X

Converting digital data using the digital-to-analog converter (DAC)

Go to README

Si91x - SL_DMA

X

Data transfer using Direct Memory Access (DMA)

Go to README

Si91x - SL_DRIVER_GPIO

X

Using the general purpose input-outputs (GPIO's) in the HP, ULP and UULP domains

Go to README

Si91x - SL_EFUSE

X

Programming the eFuse and reading data from the eFuse

Go to README

Si91x - SL_GPIO

X

Using the GPIO ports of the SiWx91x chipset

Go to README

Si91x - SL_GSPI

X

Generic Serial Peripheral Interface (GSPI) communication.

Go to README

Si91x - SL_I2C_driver_Follower

X

Data transfer from an Inter-Integrated Circuit (I2C) leader to follower and subsequently follower to leader

Go to README

Si91x - SL_I2C_driver_Leader

X

Low level driver for an I2C leader transferring data to a follower

Go to README

Si91x - SL_I2C_Follower

X

Running an I2C follower and exchanging data with a leader

Go to README

Si91x - SL_I2C_Leader

X

Running an I2C leader and exchanging data with a follower

Go to README

Si91x - SL_I2S_LOOPBACK

X

Performing an Inter-Integrated Circuit Sound (I2S) transfer using the loopback mechanism

Go to README

Si91x - SL_I2S_LOWPOWER

X

Performing an I2S loopback transfer in power save mode

Go to README

Si91x - SL_I2S_PRIMARY

X

Performing I2S primary device transfer

Go to README

Si91x - SL_I2S_SECONDARY

X

Performing I2S secondary device transfer

Go to README

Si91x - SL_PWM

X

Using pulse width modulation (PWM) to generate a periodic pulse waveform

Go to README

Si91x - SL_RO_SENSOR

X

Measuring temperature with the Ruthenium Oxide (RO) temperature sensor

Go to README

Si91x - SL_RTOS_MSG_QUEUE

X

Using an RTOS message queue

Go to README

Si91x - SL_RTOS_MUTEX

X

Using an RTOS mutex for task synchronization

Go to README

Si91x - SDIO Secondary

X

Implementing a Secure Digital Input Output (SDIO) secondary and exchanging data with an SDIO primary

Go to README

Si91x - SL_SIO

X

Serial Input-Output (SIO) over SPI and Universal Asynchronous Receiver-Transmitter (UART) interfaces

Go to README

Si91x - SL_SSI_Master

X

Running a Synchronous Serial Interface (SSI) main and exchanging data with a secondary

Go to README

Si91x - SL_SSI_Slave

X

Running an SSI secondary and exchanging data with a main

Go to README

Si91x - SL_SYSRTC

X

Using the system real-time clock (SYSRTC) on the Si91x device to toggle the LED at one-second intervals

Go to README

Si91x - SL_ULP ADC

X

Using the analog-to-digital converter (ADC) in ultra low-power (ULP) mode

Go to README

Si91x - SL ULP ADC MULTICHANNEL

X

Using the ADC over multiple channels in ultra low-power (ULP) mode

Go to README

Si91x - SL_ULP_CALENDAR

X

Using the clock in ULP mode

Go to README

Si91x - SL ULP DAC

X

Using the digital-to-analog converter (DAC) in ULP mode

Go to README

Si91x - SL_ULP_DMA

X

Performing a DMA transfer in ULP mode

Go to README

Si91x - SL_ULP_GPIO

X

Using the Si91x GPIO ports in ULP mode

Go to README

Si91x - SL_ULP_I2C_Leader

X

Implementing an I2C leader in ULP mode

Go to README

Si91x - SL_ULP_SSI_MASTER

X

Implementing an SSI primary in ULP mode

Go to README

Si91x - SL_ULP_Timer

X

Using timers in ULP mode

Go to README

Si91x - SL_ULP_UART

X

Transferring data over the UART interface in ULP mode

Go to README

Si91x - SL_USART

X

Exchanging data over USART running on a real-time operating system (RTOS) host

Go to README

Si91x - SL_Watchdog_Timer

X

Implementing a watchdog timer which resets the system on an exception condition

Go to README

Driver Examples#

Example

Featured

SoC

NCP

PSRAM

Description

Link to README page

Si91x - Blinky

X

Toggling the LED

Go to README

Si91x - Button Baremetal

X

Handling button presses by toggling LEDs

Go to README

Si91x - MEMLCD Baremetal

X

Displaying data on the Liquid Crystal Display (LCD) peripheral

Go to README

Si91x - SL_JOYSTICK

X

Using the joystick on the SiWx91x and reporting its position

Go to README

Si91x - SL_SI70xx

X

Measuring relative humidity and temperature with the Si70XX sensor

Go to README

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

Go to README

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

Go to README

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

Go to README

Si91x - SL_POWER_MANAGER_M4_WIRELESS

X

Using the power manager for the application processor

Go to README

sl_si91x_sensorhub - sensorhub example

X

Reading data from the sensors on the Si91x device

Go to README

Si91x - Sleep Timer

X

Implementing one-time and periodic sleep timers

Go to README

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

Go to README

Crypto - Attestation

X

Performing attestation on the SiWx91x using cryptographic methods

Go to README

Crypto - ECDH

X

Using the elliptic-curve Diffie-Hellman (ECDH) cryptographic APIs of the SiWx91x device

Go to README

Crypto - HMAC

X

Generating a message digest using the HMAC cryptographic method

Go to README

Crypto - SHA

X

Generating a message digest using the SHA cryptographic method

Go to README

Si91x - SoC PSA AES Cipher

X

Implementing the Platform Security Architecture (PSA) Advanced Encryption Standard (AES)

Go to README

Si91x - SoC PSA asymmetric key storage

X

Generating and storing assymetric cryptographic keys

Go to README

Si91x - SoC PSA CCM

X

Implementing PSA with the counter with cipher block chaining message authentication code (CCM) encryption method

Go to README

Si91x - SoC PSA CHACHAPOLY

X

Implementing PSA with the ChaChaPoly encryption method

Go to README

Si91x - SoC PSA ECDH

X

Implementing PSA with the elliptic-curve Diffie-Hellman (ECDH) encryption method

Go to README

Si91x - SoC PSA GCM

X

Implementing PSA with the Galois/Counter Mode (GCM) of operation

Go to README

Si91x - SoC PSA HMAC

X

Implementing PSA with hash-based message authentication code (HMAC)

Go to README

Si91x - SoC PSA Multithread

X

Implementing thread-safe PSA code with cryptography hardware accelerators

Go to README

Si91x - SoC PSA SHA

X

Implementing PSA with the secure hash algorithm (SHA) encryption method

Go to README

Si91x - SoC PSA symmetric key storage

X

Generating and storing assymetric cryptographic keys

Go to README

Network Protocol Examples#

The following network protocol examples are available:

Ping Examples#

Example

Featured

SoC

NCP

NCP Interface

PSRAM

Description

Link to README page

Wi-Fi - Station Ping

X

X

SPI

Implementing the Internet Control Message Protocol (ICMP), better known as the ping protocol

Go to README

Wi-Fi - Station Ping V6

X

Implementing the ping protocol (ICMP) over IPv6

Go to README

SNTP Examples#

Example

Featured

SoC

NCP

NCP Interface

PSRAM

Description

Link to README page

Wi-Fi - SNTP Client

X

X

SPI, UART

Implementing the Simple Network Time Protocol (SNTP)

Go to README

Application Protocol Examples#

The following application protocol examples are available:

HTTP Examples#

Example

Featured

SoC

NCP

NCP Interface

PSRAM

Description

Link to README page

Wi-Fi - HTTP Client

X

X

SPI

Implementing a Hyper-Text Transfer Protocol (HTTP) client to exchange data with an HTTP server

Go to README

Wi-Fi - HTTP OTAF Update

X

X

SPI

Downloading and updating firmware as an HTTP client

Go to README

Wi-Fi Coex - Wi-Fi Client HTTPS BLE Dual Role

X

Simultaneous connection over secure HTTP (HTTPS) and as a BLE central and peripheral

Go to README

MQTT Examples#

Example

Featured

SoC

NCP

NCP Interface

PSRAM

Description

Link to README page

Wi-Fi - AWS IoT MQTT Client

X

X

SPI

Connecting to an AWS MQTT broker and publishing data

Go to README

Wi-Fi - Azure IoT

X

X

SPI

Connecting to an Azure MQTT broker, publishing, and subscribing to MQTT topics

Go to README

Wi-Fi - Embedded MQTT Client

X

X

SPI

Connecting to an MQTT broker, publishing, and subscribing to MQTT topics

Go to README

Wi-Fi - Embedded MQTT Client TWT

X

X

SPI

MQTT client using the Wi-Fi TWT power-save mode

Go to README