WiSeConnect™ SDK v3.x Examples#
This section describes the example applications available with the WiSeConnect™ SDK v3.x.
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.
Featured Examples#
Example | Description | Link to README page |
---|---|---|
| Establishing a connection to the Amazon Web Services (AWS) Internet-of-Things (IoT) Core | |
| Getting the BLE packet error rate (PER) statistics for transmitting and receiving packets | |
| 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 | |
| Downloading and updating firmware as a TCP client | |
| Running an application in the | |
| Measuring the Wireless Local Area Network (WLAN) throughput |
NCP Mode Examples#
The following examples can be run in network co-processor (NCP) mode, with the application running on an external microcontroller unit (MCU) host such as EFx32™, and connectivity stack running on the SiWx91x™ chipset.
Example | Description | Link to README page |
---|---|---|
| Implementing a Wi-Fi Access Point (AP) | |
| Establishing a connection to the Amazon Web Services (AWS) Internet-of-Things (IoT) Core | |
| Calibrating carrier frequency offset and transmission (TX) gain offset and writing them to the eFuse | |
| Getting the BLE Packet Error Rate (PER) statistics for transmitting and receiving packets | |
| Testing the BLE GAP peripheral role | |
| Implementing a Wi-Fi device both as an AP and station (STA) | |
| Downloading and updating firmware as a TCP client | |
| Using the hosted mode of the WiSeConnect SDK v3.x, by utilizing the Lightweight Internet Protocol (LwIP) stack | |
| Running an application in | |
| Opening a network socket and monitoring it for incoming data | |
| Implementing the Simple Network Time Protocol (SNTP) | |
| Implementing the Internet Control Message Protocol (ICMP), better known as the ping protocol | |
| Transmitting data from a sleepy device every time it wakes up | |
| Transmitting data at varying data rates, power levels, and lengths according to a gain table | |
| Measuring the Wireless Local Area Network (WLAN) throughput |
BLE Examples#
Example | Description | Link to README page |
---|---|---|
| Maintaining an allow list of devices that are allowed to connect to a BLE device | |
| Running a BLE central in Extended Advertising Central mode | |
| Running a BLE peripheral in Extended Advertising Peripheral mode | |
| Running a BLE central and connecting to a BLE peripheral | |
| Using BLE data length extension to increase packet length | |
| Implementing the Heart Rate service both in the BLE central and peripheral roles | |
| Implementing the Human Interface Device (HID) service both in the BLE central and peripheral roles | |
| Implementing an iBeacon-compatible BLE peripheral | |
| Running a BLE central and updating physical layer (PHY) rates | |
| Multiple BLE connections both as a BLE central and peripheral | |
| Getting BLE packet error rate (PER) statistics for transmitting and receiving packets | |
| BLE power-save configuration both in Advertising and Connected modes | |
| BLE privacy support implemented by changing the device address frequently | |
| BLE peripheral implementing Security Manager Protocol (SMP) pairing and encryption | |
| Testing the BLE Generic Access Profile (GAP) peripheral role | |
| Measuring the BLE throughput | |
| BLE Generic Attribute Profile (GATT) client performing a long read from a BLE GATT server |
Wi-Fi Examples#
Example | Description | Link to README page |
---|---|---|
| Implementing a Wi-Fi Access Point (AP) | |
| Establishing connection to the Amazon Web Services (AWS) Internet-of-Things (IoT) Core | |
| Calibrating carrier frequency offset and transmission (TX) gain offset and writing them to the eFuse | |
| 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 | |
| Implementing a Wi-Fi device both as an AP and station (STA) | |
| Implementing a Wi-Fi enterprise client and connecting to an enterprise AP | |
| Using the hosted mode of the WiSeConnect SDK v3.x, by utilizing the Lightweight Internet Protocol (LwIP) stack | |
| Implementing the power-save deep sleep mode of the SiWx91x™ chipset | |
| Running an application in | |
| Opening a network socket and monitoring it for incoming data | |
| Implementing the Simple Network Time Protocol (SNTP) | |
| Transmitting data from a sleepy device every time it wakes up | |
| Maintaining three concurrent SSL connections using three sets of SSL certificates | |
| Implementing a Transport Layer Security (TLS) client and exchanging encrypted data with a server | |
| Implementing a TCP client using the Wi-Fi Target Wake Time (TWT) power-save scheme | |
| TCP door lock or UDP camera communication between a client and server using TWT power-save | |
| Transmitting data at varying data rates, power levels, and lengths according to a gain table | |
| Implementing a Wi-Fi 6 client using TWT power-save | |
| Transmitting Wi-Fi packets at different data rates and power levels for regulatory certification testing | |
| Measuring the WLAN throughput | |
| Measuring the WLAN throughout of an IPv6 client |
BLE + Wi-Fi Examples#
Example | Description | Link to README page |
---|---|---|
| Simultaneous connection over secure HTTP (HTTPS) and as a BLE central and peripheral | |
| Advertising a device over BLE, receiving Wi-Fi credentials and connecting to a Wi-Fi AP | |
| Receiving Wi-Fi credentials over BLE, connecting to Wi-Fi and publishing data to an AWS MQTT broker | |
| Measuring the WLAN throughput while maintaining a BLE connection | |
| Measuring the WLAN and/or BLE throughput(s) while they are simultaneously connected |
Si91x Peripheral Examples#
Example | Description | Link to README page |
---|---|---|
| Exchanging data using Universal Synchronous/Asynchronous Receiver-Transmitter (USART) communication over the virtual COM (VCOM) port | |
| Displaying data on the Liquid Crystal Display (LCD) peripheral | |
| Executing from pseudostatic random-access memory (PSRAM) and performing a light-emitting diode (LED) blink operation | |
| Reading and writing from and to the PSRAM | |
| Implementing the Platform Security Architecture (PSA) Advanced Encryption Standard (AES) | |
| Generating and storing assymetric cryptographic keys | |
| Implementing PSA with the counter with cipher block chaining message authentication code (CCM) encryption method | |
| Implementing PSA with the secure hash algorithm (SHA) encryption method | |
| Generating and storing assymetric cryptographic keys | |
| Converting analog signals using the analog-to-digital converter (ADC) | |
| Toggling the LED | |
| Handling button presses by toggling LEDs | |
| Configuring the clock and implementing triggers, alarms, and time conversion | |
| Configuring and using timers | |
| Data transfer using Direct Memory Access (DMA) | |
| Using the general purpose input-outputs (GPIO's) in the HP, ULP and UULP domains | |
| Programming the eFuse and reading data from the eFuse | |
| Using the GPIO ports of the SiWx91x chipset | |
| Generic Serial Peripheral Interface (GSPI) communication. | |
| Running an Inter-Integrated Circuit (I2C) follower and exchanging data with a leader | |
| Running an I2C leader and exchanging data with a follower | |
| Performing an Inter-Integrated Circuit Sound (I2S) transfer using the loopback mechanism | |
| Performing an I2S loopback transfer in power save mode | |
| Performing I2S primary device transfer | |
| Performing I2S secondary device transfer | |
| Deploying and using a TensorFlow Lite machine learning model | |
| Using the Non-Volatile Memory (NVM3) service of the SiWx91x in Common Flash configuration to maintain key-value pairs in the flash memory | |
| Using the NVM3 service of the SiWx91x Dual Flash configuration to maintain key-value pairs in the flash memory | |
| Using pulse width modulation (PWM) to generate a periodic pulse waveform | |
| Implementing an (SDIO) secondary and exchanging data with an SDIO primary | |
| Reading data from the sensors on the Si91x device | |
| Serial Input-Output (SIO) over SPI and Universal Asynchronous Receiver-Transmitter (UART) interfaces | |
| Running a Synchronous Serial Interface (SSI) main and exchanging data with a secondary | |
| Running an SSI secondary and exchanging data with a main | |
| Using the system real-time clock (SYSRTC) on the Si91x device to toggle the LED at one-second intervals | |
| Using the ADC converter in ultra low-power (ULP) mode | |
| Using the clock in ULP mode | |
| Performing a DMA transfer in ULP mode | |
| Using the Si91x GPIO ports in ULP mode | |
| Implementing an I2C leader in ULP mode | |
| Implementing an SSI primary in ULP mode | |
| Using timers in ULP mode | |
| Transferring data over the UART interface in ULP mode | |
| Exchanging data over USART running on a real-time operating system (RTOS) host | |
| Implementing a watchdog timer which resets the system on an exception condition | |
| Implementing one-time and periodic sleep timers | |
| Measuring WLAN throughput while executing from PSRAM |
HTTP Examples#
Example | Description | Link to README page |
---|---|---|
| Downloading and updating firmware as an HTTP client | |
| Simultaneous connection over secure HTTP (HTTPS) and as a BLE central and peripheral |
MQTT Examples#
Example | Description | Link to README page |
---|---|---|
| Connecting to an AWS MQTT broker and publishing data | |
| Connecting to an MQTT broker, publishing, and subscribing to MQTT topics | |
| MQTT client using the Wi-Fi TWT power-save mode |
Ping Examples#
Example | Description | Link to README page |
---|---|---|
| Implementing the Internet Control Message Protocol (ICMP), better known as the ping protocol | |
| Implementing the ping protocol (ICMP) over IPv6 |
Firmware Update Examples#
Example | Description | Link to README page |
---|---|---|
| Downloading and updating firmware as a TCP client | |
| Downloading and updating firmware as an HTTP client | |
| Downloading and updating the application processor's firmware |