You are viewing documentation for version: 4.2 (latest) | Version History

Platform Services

Gecko Platform Service components are high-level, device-independent and thread-safe APIs. Each service may have a hardware abstraction layer (HAL).

Note: All the Platform Services components also tightly integrate with SDK Programming model when configuring the project.

Platform Services Components

Command Line Interface -- Handles keyboard input, parsing and dispatching to handler functions.

Device Initialization -- Utility functions that bring the device from the reset state to a fully initialized state.

HFXO Manager -- High-frequency crystal oscillator startup manager to support sleepy crystals.

IO Stream -- Provides Input/Output functions by providing Streams.

Legacy HAL -- Hardware Abstraction Layer.

RAM execution disable -- Provides Utilities for disabling execution from RAM and other memory regions, using the MPU.

Microsecond Delay -- Provides utilities to provide microsecond delay.

Power Manager -- Manages system's energy modes.

Secure Engine Manager -- Provides APIs to Secure Engine Manager's mailbox interface.

Sleep Timer -- Provides software timers, delays, timekeeping and date functions using a low-frequency real-time clock peripheral.

System Initialization and Action Processing -- Initializes system and products.

Token Manager -- Provides routines for working with tokens.

CPC -- Co-Processor Communication


You are viewing documentation for version: 4.2 (latest) | Version History

Gecko Platform

Gecko Platform is the common foundation for the Gecko SDK Suite.

Gecko Platform Components

EMLIB Peripheral Library

Common Utilities

Drivers

Services

Machine Learning

Middleware

Development Board APIs

External Device Drivers

Micrium OS

RAIL Library

Third-Party Libraries

ARM CMSIS

ARM mbed TLS


You are viewing documentation for version: 4.2 (latest) | Version History

Platform Drivers

Platform drivers is a set of function specific high performance drivers for
 EFM32, EZR32 and EFR32 on-chip peripherals. Drivers are typically DMA or
 interrupt based and are using all available low-energy features. For most
 drivers, the API offers both synchronous and asynchronous functions.

Most drivers are compile-time configurable to allow the highest possible
 code size optimization for the application. Compile-time configuration is
 defined in *_config.h files. Templates for the configuration files can be
 found in the config for each driver. When adding a driver using the Project
 Configurator in Simplicity Studio, the config files are automatically added
 to the project.

Plaform drivers are located in either the platform/driver or platform/emdrv
 folders. Drivers in platform/driver use error codes defined in
 sl_status.h, while emdrv drivers use error
 codes defined in ecode.h.


You are viewing documentation for version: 4.2 (latest) | Version History

Board APIs

The board APIs controls features specific to the Silicon Labs kit boards, like GPIO controlled power to external sensors. The board control API consists of both runtime functions to control the state and compile time configuration done through config headers which are editable by the user. During device initialization the configuration header settings are then applied by the board component itself.

Board Configuration Headers

The hardware/board/config subdirectory contains copies of configuration headers for miscellaneous drivers from the entire SDK. These configuration headers are tailored for the specific board, ensuring correct settings for pinout and other board-specific properties. The board-specific configuration headers override the default configuration header for the driver whenever the board is selected as a component in the SLC project.
All configuration headers are copied to the config/ directory of the project during SLC project generation. If a custom configuration is required, the configuration header in the project config/ directory can be further modified to fit application needs.
If developing for production hardware, you can start the project using a development board, and later change the target board to "Custom Board". In Simplicity Studio, this will show a prompt of whether to keep or overwrite the existing configuration file. If "keep my file" is selected, the board configuration settings from the development board are kept.

Note : The configuration must be modified on the copied board configuration headers in the generated project, under path config/ and not in the original SDK.

Thunderboard Sense 2 (BRD4166A) Support

Thunderboard Sense 2 has several I2C buses connected to the various sensors that are all connected to the EFR32. The BRD4166A support component provides functions to route pin connections of an I2C peripheral to the various I2C buses. This allows time multiplexed access to several I2C buses using only one I2C peripheral.


You are viewing documentation for version: 4.2 (latest) | Version History

External Device Drivers

The external device driver APIs enable using devices that are external to the EFR32/EFM32, such as sensors, displays, and external memory. While the drivers support external devices on the Silicon Labs kits, the drivers are board agnostic and can be used with other boards that include the same devices.


Mbed TLS documentation hub

Mbed TLS provides an open-source implementation of cryptographic primitives,
X.509 certificate handling and the SSL/TLS and DTLS protocols. It provides a
reference implementation of the PSA Cryptography API.
The project also supports the PSA Cryptoprocessor Driver Interface which enables
support for cryptoprocessor drivers. The small code footprint makes the project
suitable for embedded systems. It has many users, including
TF-A,
TF-M and
OP-TEE.

This documentation is undergoing continuous improvement over time to address
gaps, etc. We welcome contributions!

For more information, see the following:

GitHub repository

Documentation GitHub repository

Mbed TLS website

PSA Crypto API specification

Contents

Getting started with Mbed TLS
Downloading
Building
Using PSA

API Reference

Reviews
Mbed TLS Review Guidelines
PR Prioritisation

Roadmap

Long-term plans for Mbed TLS
Library organization
API design
Features
Security

Tech Updates / Security Advisories
Advisories

Mbed TLS Maintainers
Overview
Gatekeepers
Maintainers
Trusted Reviewers

Contributing to This Documentation
Making a Contribution

Knowledge Base
Attacks
Compiling and Building
Cryptography
Development
Generic
How to
Licensing


You are viewing documentation for version: 2.1 (latest) | 2.1 | Version History

Gecko Bootloader API Reference

Additional Gecko Bootloader Documentation | Release Notes | Downloads

To use the application interface in your application, include the api/btl_interface.h header in your application, and add the following files to the build:

api/btl_interface.c

api/btl_interface_storage.c
See the Application Interface documentation for more information.

Bootloader Components

The bootloader itself consists of multiple parts:

Core

The bootloader core contains the main function of both bootloader stages. It also contains functionality to write to the internal main flash, to perform a bootloader upgrade, and to reset into the application flagging applicable reset reasons. See the core documentation for more information.

Driver

Different bootloading applications require different hardware drivers for use by the other components of the bootloader. See the driver documentation for more information.

Plugin

All parts of the bootloader that are either optional or swappable for different implementations are implemented as plugins. Each plugin has a generic header file, and one or more implementations. The current release contains plugins for functionality like UART and SPI communication protocols, SPI flash storage, internal flash storage, and different cryptographic operations. For more information about the different plugins, see the plugin documentation.

Additional Gecko Bootloader Documentation

The following are Gecko Bootloader documents that apply to most protocol SDKs in the Gecko SDK Suite.
Some protocol SDKs also include information specific to working with that protocol. These are included as well.

Developing with the Gecko Bootloader

UG103.06: Bootloader Fundamentals -
Introduces bootloading for Silicon Labs networking devices. Discusses the Gecko Bootloader as well as legacy Ember and Bluetooth bootloaders, and describes the file formats used by each.


UG489: Silicon Labs Gecko Bootloader User's Guide for GSDK 4.0 and Higher -
Describes the high-level implementation of the Silicon Labs Gecko Bootloader for EFR32 SoCs and NCPs, and provides information on how to get started using the Gecko Bootloader with Silicon Labs wireless protocol stacks in GSDK 4.0 and higher.

AN1326: Transitioning to the Updated Gecko Bootloader in GSDK 4.0 and Higher -
Gecko Bootloader v2.x, introduced in GSDK 4.0, contains a number of changes compared to Gecko Bootloader v1.x. This document describes the differences between the versions, including how to configure the new Gecko Bootloader in Simplicity Studio 5.

AN1218: Series 2 Secure Boot with RTSL -
Contains detailed information on configuring and using the Secure Boot with hardware Root of Trust and Secure Loader on Series 2 devices, including how to provision the signing key. This is a companion document to UG489: Silicon Labs Gecko Bootloader User's Guide for GSDK 4.0 and Higher.

Protocol-Specific Information

AN1086: Using the Gecko Bootloader with Silicon Labs Bluetooth Applications -
Includes detailed information on using the Gecko Bootloader with Silicon Labs Bluetooth applications. It supplements the general Gecko Bootloader implementation information provided in UG489: Silicon Labs Gecko Bootloader User's Guide for GSDK 4.0 and Higher.

AN1085: Using the Gecko Bootloader with Silicon Labs Connect -
Includes detailed information on using the Silicon Labs Gecko Bootloader with Connect. It supplements the general Gecko Bootloader implementation information provided in UG489: Silicon Labs Gecko Bootloader User's Guide for GSDK 4.0 and Higher.


AN1084: Using the Gecko Bootloader with Zigbee EmberZNet -
Includes detailed information on using the Silicon Labs Gecko Bootloader with EmberZNet.  It supplements the general Gecko Bootloader implementation information provided in UG489: Silicon Labs Gecko Bootloader User's Guide for GSDK 4.0 and Higher.


You are viewing documentation for version: 2.2 (latest) | 2.1 | Version History

OpenThread

OpenThread Documentation

Silicon Labs Documentation | Release Notes | Open Source Documentation

What is OpenThread?

OpenThread released by Google is

an open-source implementation of the Thread networking protocol.** Google Nest has released OpenThread to make the technology used in Nest products more broadly available to developers to accelerate the development of products for the connected home.

OS and platform agnostic**, with a narrow platform abstraction layer and a small memory footprint, making it highly portable. It supports both system-on-chip (SoC) and network co-processor (NCP) designs.

a Thread Certified Component**, implementing all features defined in the Thread 1.1.1 specification, including all Thread networking layers (IPv6, 6LoWPAN, IEEE 802.15.4 with MAC security, Mesh Link Establishment, Mesh Routing) and device roles, as well as Border Router support.

More information about Thread can be found at threadgroup.org. Thread is a registered trademark of the Thread Group, Inc.

Who supports OpenThread?

Getting started

All end-user documentation and guides are located at openthread.io. If you're looking to do things like...

Learn more about OpenThread features and enhancements
Use OpenThread in your products
Learn how to build and configure a Thread network
Port OpenThread to a new platform
Build an application on top of OpenThread
Certify a product using OpenThread
...then openthread.io is the place for you.

Note: For users in China, end-user documentation is available at openthread.google.cn.

If you're interested in contributing to OpenThread, read on.

Contributing

We would love for you to contribute to OpenThread and help make it even better than it is today! See our Contributing Guidelines for more information.


Contributors are required to abide by our Code of Conduct and Coding Conventions and Style Guide.

Versioning

OpenThread follows the Semantic Versioning guidelines for release cycle transparency and to maintain backwards compatibility. OpenThread's versioning is independent of the Thread protocol specification version but will clearly indicate which version of the specification it currently supports.

License

OpenThread is released under the BSD 3-Clause license. See the LICENSE file for more information.

Please only use the OpenThread name and marks when accurately referencing this software distribution. Do not use the marks in a way that suggests you are endorsed by or otherwise affiliated with Nest, Google, or The Thread Group.

Need help?

There are numerous avenues for OpenThread support:

Bugs and feature requests — submit to the Issue Tracker

Stack Overflow — post questions using the openthread tag

Google Groups — discussion and announcements at openthread-users

The openthread-users Google Group is the recommended place for users to discuss OpenThread and interact directly with the OpenThread team.

Silicon Labs Documentation

Getting Started

Getting Started with Simplicity Studio 5 and the Gecko SDK -
Describes downloading development tools and the Gecko SDK, which includes Silicon Labs OpenThread. Introduces the Simplicity Studio 5 interface.

QSG170: Silicon Labs OpenThread Quick Start Guide -
Provides basic information on configuring, building, and installing applications using the Silicon Labs OpenThread stack.

UG103.11: Thread Fundamentals -
For those new to OpenThread, includes a brief background on the emergence of Thread, provides a technology overview, and describes some key features of Thread to consider when implementing a Thread solution.

UG103.01: Wireless Networking Fundamentals -
For those new to wireless networking, introduces some fundamental concepts of wireless networking. These concepts are referred to in other Fundamentals documents.

Developing with OpenThread


Developing with OpenThread

AN1256: Using the Silicon Labs RCP with the OpenThread Border Router -
Describes using the OpenThread Border Router GitHub repository and the Silicon Labs OpenThread Radio Co-Processor (RCP) application to create a Thread Border Router.

AN1350: Single-Band Proprietary Sub-GHz Support with OpenThread -
Describes how to configure OpenThread applications to operate on a proprietary sub-GHz band using the Silicon Labs OpenThread SDK and Simplicity Studio 5 with a compatible mainboard. It also provides details on the proprietary radio PHY supported with this feature.

AN1264: Using OpenThread with Free RTOS -
Describes how to build OpenThread applications with FreeRTOS.

AN1372: Configuring OpenThread Applications for Thread 1.3 -
Provides instructions for configuring OpenThread SoC and Border Router applications to use Thread 1.3 features.

UG162: Simplicity Commander Reference Guide -
Describes how and when to use Simplicity Commander's Command-Line Interface.

Multiprotocol

UG103.16: Multiprotocol Fundamentals -
Describes the four multiprotocol modes, discusses considerations when selecting protocols for multiprotocol implementations, and reviews the Radio Scheduler, a required component of a dynamic multiprotocol solution.

AN1265: Dynamic Multiprotocol Development with Bluetooth and OpenThread in GSDK v3.x -
Provides details on developing Dynamic Multiprotocol applications using Bluetooth and OpenThread.

UG305: Dynamic Multiprotocol User's Guide -
Describes how to implement a dynamic multiprotocol solution.


AN1333: Running Zigbee, OpenThread, and Bluetooth Concurrently on a Linux Host with a Multiprotocol Co-Processor -
Describes how to run any combination of Zigbee EmberZNet, OpenThread, and Bluetooth networking stacks on a Linux host processor, interfacing with a single EFR32 Radio Co-processor (RCP) with multiprotocol and multi-PAN support, as well as how to run the Zigbee stack on the EFR32 as a network co-processor (NCP) alongside the OpenThread RCP.

Coexistence

UG103.17: Wi-Fi Coexistence Fundamentals -
Introduces methods to improve the coexistence of 2.4 GHz IEEE 802.11b/g/n Wi-Fi and other 2.4 GHz radios such as Bluetooth, Bluetooth Mesh, Bluetooth Low Energy, and IEEE 802.15.4-based radios such as Zigbee and OpenThread

AN1017: Zigbee and Thread Coexistence with Wi-Fi -
Details the impact of Wi-Fi on Zigbee and Thread, and methods to improve coexistence. First, methods to improve coexistence without direct interaction between Zigbee/Thread and Wi-Fi radios are described. Second, Silicon Labs's Packet Traffic Arbitration (PTA) support to coordinate 2.5 GHz RF traffic for co-located Zigbee/Thread and Wi-Fi radios is described (for the EFR32MG only).

AN1294: Configuring Antenna Diversity for OpenThread -
Describes how to use Project Configurator and Component Editor in Simplicity Studio 5 to configure antenna diversity in OpenThread applications.

Security


Security

UG103.05: IoT Endpoint Security Fundamentals -
Introduces the security concepts that must be considered when implementing an Internet of Things (IoT) system. Using the ioXt Alliance's eight security principles as a structure, it clearly delineates the solutions Silicon Labs provides to support endpoint security and what you must do outside of the Silicon Labs framework.

AN1329: Using Silicon Labs Secure Vault Features with OpenThread -
Describes how Secure Vault features are leveraged in OpenThread applications. It focuses on specific PSA features and emphasizes how these are integrated into the OpenThread stack.

AN1190: Series 2 Secure Debug -
Describes how to lock and unlock the debug access of EFR32 Gecko Series 2 devices. Many aspects of the debug access, including the secure debug unlock are described. The Debug Challenge Interface (DCI) and Secure Engine (SE) Mailbox Interface for locking and unlocking debug access are also included.

AN1222: Production Programming of Series 2 Devices -
Provides details on programming, provisioning, and configuring Series 2 devices in production environments. Covers Secure Engine Subsystem of Series 2 devices, which runs easily upgradeable Secure Engine (SE) or Virtual Secure Engine (VSE) firmware.

AN1247: Anti-Tamper Protection Configuration and Use -
Shows how to program, provision, and configure the anti-tamper module on EFR32 Series 2 devices with Secure Vault.

AN1268: Authenticating Silicon Labs Devices using Device Certificates -
How to authenticate an EFR32 Series 2 device with Secure Vault, using secure device certificates and signatures.

AN1271: Secure Key Storage -
Explains how to securely "wrap" keys in EFR32 Series 2 devices with Secure Vault, so they can be stored in non-volatile storage.


AN1303: Programming Series 2 Devices Using the Debug Challenge Interface (DCI) and Serial Wire Debug (SWD) -
 Describes how to provision and configure Series 2 devices through the DCI and SWD.

AN1311: Integrating Crypto Functionality Using PSA Crypto Compared to Mbed TLS -
Describes how to integrate crypto functionality into applications using PSA Crypto compared to Mbed TLS.

Bootloading

UG103.06: Bootloader Fundamentals -
Introduces bootloading for Silicon Labs networking devices. Discusses the Gecko Bootloader as well as legacy Ember and Bluetooth bootloaders, and describes the file formats used by each.

UG489: Silicon Labs Gecko Bootloader User's Guide for GSDK 4.0 and Higher -
Describes the high-level implementation of the Silicon Labs Gecko Bootloader for EFR32 SoCs and NCPs, and provides information on how to get started using the Gecko Bootloader with Silicon Labs wireless protocol stacks in GSDK 4.0 and higher.

AN1326: Transitioning to the Updated Gecko Bootloader in GSDK 4.0 and Higher -
Gecko Bootloader v2.x, introduced in GSDK 4.0, contains a number of changes compared to Gecko Bootloader v1.x. This document describes the differences between the versions, including how to configure the new Gecko Bootloader in Simplicity Studio 5.

AN1218: Series 2 Secure Boot with RTSL -
Contains detailed information on configuring and using the Secure Boot with hardware Root of Trust and Secure Loader on Series 2 devices, including how to provision the signing key. This is a companion document to UG266: Silicon Labs Gecko Bootloader User's Guide.

Non-Volatile Data Storage


Non-Volatile Data Storage

UG103.07: Non-Volatile Data Storage Fundamentals -
Introduces non-volatile data storage using flash and the three different storage implementations offered for Silicon Labs microcontrollers and SoCs: Simulated EEPROM, PS Store, and NVM3.

AN1135: Using Third Generation Non-Volatile Memory (NVM3) Data Storage -
Explains how NVM3 can be used as non-volatile data storage in various protocol implementations.

Testing

AN718: Manufacturing Test Overview -
Provides a high-level description of the different options for integrating RF testing and characterization into standard test flows. It is intended for customers who are moving from the early prototype development stage to the manufacturing production environment and need assistance with manufacturing test.

AN700.1: Manufacturing Test Guidelines for the EFR32 -
Details the different options for integrating RF testing and characterization into standard test flows.

Performance Results for Multi-PAN RCP for OpenThread and Zigbee -
Summarizes the results of simultaneous Thread and Zigbee throughput performance testing for the concurrent multiprotocol / multi-PAN RCP, running both OpenThread and Zigbee on the host processor.

Performance

AN1142: Mesh Network Performance Comparison -
Reviews the Zigbee, Thread, and Bluetooth mesh networks to evaluate their differences in performance and behavior.

AN1141: Thread Mesh Network Performance -
Details methods for testing Thread mesh network performance; results are intended to provide guidance on design practices and principles as well as expected field performance results.


You are viewing documentation for version: 2.9 | 2.13 | Version History

Getting Started with RAIL

Release Notes | Downloads

Silicon Labs RAIL (Radio Abstraction Interface Layer) provides
an intuitive, easily-customizable radio interface layer that supports
proprietary or standards-based wireless protocols. RAIL is
designed to simplify and shorten the development process. Developers
no longer have to deal with hundreds of registers across
multiple products, but can instead rely on a unified software API.
RAIL, delivered through the Silicon Labs Flex SDK (Software Development
Kit), also makes applications portable across Silicon
Labs wireless products. RAILtest, included with the Flex SDK,
supports lab evaluation as well as application development.


Menu

Docs Home

DocSpace

Last Page Titlle

Docs Search


RS9116 Wi-Fi/Bluetooth Solutions

RS9116 wireless connectivity products are a family of SoC's and modules providing comprehensive 2.4/5 GHz Wi-Fi and dual-mode Bluetooth 5 wireless connectivity.  The product family is divided into two basic types depending on the type of host processor used.

RS9116W-based products are used with an embedded host microprocessor (MCU) together with WiSeConnect™ drivers.

RS9116N-based products are used with a Linux application processor together with n-Link™ drivers.

Product pages for the RS9116 provide features and specifications for various RS9116 SoCs and modules.

RS9116W - WiSeConnect™

WiSeConnect™ offers a full network offload option for embedded systems with low-end host microcontrollers running an RTOS or bare metal OS.  The RS9116W connects to a host MCU using UART, SPI or SDIO interfaces. A complete set of wireless, networking and security stacks run on the RS9116W device, however the networking stack can be bypassed if required. Communication with the host MCU is achieved with AT Commands, or alternately a simple binary API referred to as SAPI. Embedded products provide greater than 20 Mbps Wi-Fi application throughput with multiple operating modes including Wi-Fi Client, Wi-Fi Access Point, Simultaneous Wi-Fi Client & Access Point and Dual-mode Bluetooth.

Read WiSeConnect™ Documentation

Download the latest WiSeConnect™ Software Driver Package

RS9116N - n-Link™


Download the latest WiSeConnect™ Software Driver Package

RS9116N - n-Link™

n-Link™ offers low-level Wi-Fi and Bluetooth connectivity for systems that have a higher-end 32-bit applications processor running a Linux-based operating system. The RS9116N interfaces to a processor using SDIO or USB host interfaces, with the networking and wireless stacks/profiles running on the applications processor. n-Link™ provides up to 50 Mbps Wi-Fi application throughput with multiple operating modes including Wi-Fi Client, Wi-Fi Access Point, Simultaneous Wi-Fi Client & Access Point, and Dual-mode Bluetooth.

Read n-Link™ Documentation

Download the latest n-Link™ Open Source Driver

Download the legacy n-Link™ Proprietary Driver


You are viewing documentation for version: 2.6 | Version History

RS9116W BLE AT Command PRM

About this Document

This document describes the Bluetooth Low Energy (BLE) commands; including the parameters used in commands, valid values for each command, and the expected responses from the RS911X Modules. This document is also used to write software for the Host MCU in order to control and operate the module.


You are viewing documentation for version: 2.6 | Version History

RS9116W BT Classic AT Command PRM

About this Document

This document describes the Bluetooth (BT) Classic commands; including parameters used in commands, valid values for each command, and expected responses from the RS911X Modules. This document is also used to write software for the Host MCU to control and operate the module.


You are viewing documentation for version: 2.6 | Version History

Software Architecture

Overview

The RS9116 WiSeConnect module includes Wi-Fi, TCP/IP and BT 5 stacks embedded in its internal flash memory. This module requires a separate application processor which acts as a host. Host can communicate with RS9116 module using one of the interfaces listed below.

RS9116W Block Diagram
RS9116W Block Diagram

RS9116 supports following interfaces for interacting with host.

SPI

UART

SDIO

Note!
SDIO interface is currently not supported in the WiseConnect firmware.

The host can use either Simple APIs or AT Commands for configuring the module.

There are two modes for host interaction:

AT Mode (ASCII)

In this mode, host should use AT Commands for interacting with RS9116 Module. This mode can be used only with UART / USB-CDC interface. Section 'AT Command Mode' provides more details about this mode. Section 'WLAN Commands' describes all commands and other required details.

Binary Mode

In this mode, the host should use Binary Commands for interacting with RS9116 Module. This mode can be used with UART, SPI and SDIO interfaces. Section 'Binary Command Mode' provides more details about this mode. Section 'WLAN Commands' describes all commands and other required details.

Host Interface block diagram is shown below,

RS9116W Host Interface Block Diagram

WLAN Architecture

The following figure depicts the WLAN software architecture of the RS9116-WiSeConnect.

RS9116 WLAN Software Architecture

Application

The application layer invokes Simple APIs or AT Commands provided by SPI/ UART/SDIO driver. The application developer can use these APIs to build wireless applications.

SPI


SPI

The SPI interface on the RS9116-WiSeConnect works in slave mode. It is a 4-wire interface. In addition to the SPI interface, the module provides additional interrupt pin to signal events to the host.

The interrupt is raised by the module in SPI mode for the following condition.

When the module has data in its output buffer, it indicates host by raising active high signal on the interrupt pin.

The interrupt from module is active high and host has to configure the interrupt in level trigger mode.

UART

The UART interface on the RS9116-WiSeConnect transmits/receives data to/from the Host in UART mode.

SDIO

The SDIO interface on the RS9116-WiSeConnect transmits/receives data to/from the Host in SDIO mode.

Host Abstraction Layer (HAL)

The HAL abstracts the lower layers in the Host interface to which the RS9116-WiSeConnect is connected. The HAL interacts with the Wireless Control Block layer for the processing of the frames obtained from or destined to the Host.

Wireless Control Block (WCB)

The data from/to the Host is classified as Wi-Fi specific frames or TCP/IP specific frames. The functionality of the WCB module depends on the type and direction of the frames.

Wi-Fi Control Frames (WCF)

The WCB interprets the Wi-Fi control information from the Host and interacts with the SME (Station Management Entity) or APME (Access Point Management Entity) based on operating mode of RS9116- WiSeConnect. Configuration of the RS9116-WiSeConnect from the Host for Wi-Fi access is through AT commands or Binary commands.

TCP/IP Control Frames

TCP/IP networking protocol provides end-to-end connectivity specifying how data should be formatted, addressed, transmitted, routed and received at the destination.


If the packets received from the Host by WCB during transmission is interpreted as TCP/IP frames then the WCB interacts with TCP/IP stack for further processing before passing the packets to MAC layer.

Similarly if the packets are received from the TCP/IP stack by WCB during reception, WCB processes before passing these packets to host.

Station Management Entity (SME)

The SME is the core layer which manages the Wi-Fi connectivity in Station mode. The SME maintains the state machine to detect the activity on the Wi-Fi network and indicates to the user accordingly. It interacts with the WPA supplicant if security is enabled in the Wi-Fi network.

Access Point Management Entity (APME)

The APME is the core layer which manages the connectivity in Access Point group owner modes. The APME maintains the state machine to handle multiple clients connected to the module. It interacts with WPA supplicant if security is enabled in the Wi-Fi network.

WPA Supplicant

The main functionality of WPA supplicant is to support the key negotiation between Wi-Fi devices in a secure mode. This functionality depends on the mode in which RS9116-WiSeConnect operates in Station mode, Access point mode. The WPA supplicant is used to initiate the 802.1x/E Access Point authentication if WPA/WPA2-PSK is used as the security parameter. It also plays a major part in performing the 4-way handshake to derive the PTK in WPA/WPA2-PSK modes.


You are viewing documentation for version: 2.6   | Version History

SAPI Overview#

The RS9116W Simple API (SAPI) is a comprehensive collection of Wireless, Network Applications, BSD Socket APIs, and RS9116 driver code along with different HALs for mapping to platform interface on which the library may be ported.

This documentation in this section describes the RS9116 WiSeConnect SAPI (Simple API) library, including:

Brief descriptions about the RS9116 WiSeConnect SAPI Architecture

Details about the APIs and configurations available in the SAPI library

Recent updates of the SAPI library changes

SAPI is intended to run on a host MCU with/without RTOS. Use the given APIs without any modifications to make upgrading to future releases easier. Make sure you also update SAPI with the RS9116 device firmware.

RS9116 device includes Wi-Fi, TCP/IP Networking stack with SSL/TLS support up to TLS 1.2, HTTP/HTTPS, Web sockets, DHCP, MQTT client, and Bluetooth 5 stacks embedded. This device requires a separate application processor, which acts as a host. Host can communicate with RS9116 device using one of the interfaces listed below.

RS9116 supports the following interfaces for host interaction:

SPI

UART

SDIO

USB-CDC

SAPI enables easy migration into any platform with its uniform APIs. This library simplifies application development on the host. Users can develop application software without learning the underlying peripheral register interface and other details.


RS9116W release consists of two main components, Firmware and SAPI Library. Both components have the same revision number as they are tightly coupled. Latest releases might have bug fixes, enhancements, and new features in SAPI and/or Firmware. Most of the new features have associated APIs, which are available in the latest SAPI release only. It is recommended to always update SAPI and Firmware to same release version.

Features#

Platform-independent, interrupt-driven drivers written in C.

Drivers provide a simpler, functional interface and eliminate the need to manage the low-level host interface protocol.

Common APIs for four host interfaces (SPI, UART, SDIO, USB-CDC), which enables easy migration to different host interfaces.

Supports bare metal and FreeRTOS OS by default. Other RTOS can be supported through OS Abstraction changes.

May be used with Simplicity Studio, Keil uVision and IAR IDEs. The SAPI driver can also be ported for use with other IDEs that use GCC or ARM compiler toolchains.


You are viewing documentation for version: 2.6   (latest)  | Version History

RS9116 Evaluation Kit#

The RS9116 Evaluation Kit (EVK) includes everything necessary to Get Started with PC using AT Commands or to connect to a host MCU (not included) as described in Getting Started with EFx32 Host or Getting Started with STM32 Host.

The RS9116 EVK is available in several varieties as listed below.  Unless otherwise noted, the software support and operational instructions are the same for all varieties.

RS911X-DB-EVK1 - Dual Band Wi-Fi + Bluetooth Evaluation Kit with CC1 Module

RS911X-SB-EVK1 - Single Band Wi-Fi + Bluetooth Evaluation Kit with QMS SoC

RS911X-SB-EVK2 - Single Band Wi-Fi + Bluetooth Evaluation Kit with B00 Module

Complete details of the EVKs are available in the RS9116 EVK User's Guide.


You are viewing documentation for version: 2.6   (latest)  | Version History

Application Notes#

The Application Notes listed below cover key topics related to RS9116W WiSeConnect™.  For a complete list of technical documentation and resources, see: RS9116 Technical Resources.

Wi-Fi Regulatory Testing App Note#

Guide for Wi-Fi regulatory testing

Hardware and software requirements and setup

Configure and execute regulatory test modes

Bluetooth Regulatory Testing App Note#

Guide for Bluetooth and BLE regulatory testing

Hardware and software requirements and setup

Configure and execute regulatory test modes

Power Save App Note#

Guide to evaluate low power features using the RS9116 EVK

Hardware and software requirements and setup

Procedure for performing power measurements

Wi-Fi Throughput App Note#

Guide to evaluate and measure Wi-Fi throughput using the RS9116 EVK

Hardware and software requirements and setup

Setup and use the throughput reference project

Procedure for performing throughput measurements

Firmware Update App Note#

Guide to firmware update mechanisms offered for RS9116W

Describes firmware update options using SPI, USB and Wireless interfaces

SPI Protocol App Note#

Details of the SPI implementation of the RS9116W

RS9113 to RS9116 Migration Guide#

Guide for migrating an application from (legacy) RS9113 products to RS9116W

RS9113 and RS9116 part number compatibility

Hardware and software migration requirements


You are viewing documentation for version: 2.6   (latest)  | Version History

AT Command Examples#

The AT-Command examples provided in the WiSeConnect™ SDK are Tera Term scripts that demonstrate basic RS9116W functionality using only a RS9116 Evaluation Kit and a PC.  More details can be found in Getting Started with PC using AT Commands

The scripts are found in the WiSeConnect™ SDK at the path <SDK>/examples/at_commands

Details on the configuration and operation of each example are available in the readme.md file that is found with the example source code and at the following links:

BLE CentralDemonstrates setting up the device as a BLE Central device.

BLE Heart Rate ProfileDemonstrates setting up the device as a Bluetooth Low Energy Heart Rate Profile.

BLE Packet Error RateDemonstrates setting up the device as a BLE PER device.

BLE PeripheralDemonstrates setting up the device as a BLE Peripheral device.

BLE Proximity ProfileDemonstrates setting up the device as a BLE Proximity Profile Device.

BT Packet Error RateDemonstrates setting up the device as a BT PER Transmit/Receive functionality.

BT SPP MasterDemonstrates setting up the device as a Bluetooth Serial Port Profile (SPP) master.

BT SPP SlaveDemonstrates setting up the device as a Bluetooth Serial Port Profile (SPP) Slave.

Wi-Fi Soft APDemonstrates setting up the device as a Wi-Fi Access Point and connecting to it from a mobile phone or PC

Wi-Fi Enterprise AuthenticationDemonstrates connecting to a Wi-Fi access point in station mode using enterprise authenticarion.

Wi-Fi Firmware UpdateDemonstrates how to update firmware over Wi-Fi.

Wi-Fi Low PowerDemonstrates Wi-Fi Station standby associated power save functionality allowing the user to measure and evaluate the low-power consumption of the device.


Wi-Fi Low Power + BLEDemonstrates Wi-Fi Station standby associated power save functionality along with BLE advertising.

Wi-Fi StationDemonstrates connecting to a Wi-Fi access point in station mode.


You are viewing documentation for version: 2.6   (latest)  | Version History

WiSeConnect™ Example Applications#

The WiSeConnect™ SDK includes a large number of examples that illustrate how to use the RS9116W.  Each example includes ready-made projects for EFx32 and STM32 host MCU's that are simple to import into a target IDE and begin development.

To get started using the example applications, follow the instructions in on one of the getting started guides below:

Getting Started with EFx32 Host

Getting Started with STM32 Host

Getting Started with PC using AT Commands

The examples may be run on many other embedded host MCU's by porting the WiSeConnect™ driver software as described in the RS9116W SAPI Porting Guide.

The examples included in the WiSeConnect™ SDK are organized into the following types.  Each example includes documentation that describes how to configure and operate the example.  More details are available at the links below:

Featured Examples - Full featured projects that demonstrate a common RS9116 use-case or enable you to perform a key aspect of RS9116 evaluation.

Snippet Examples - Smaller projects that focus on one particular feature or API.

AT Command Examples - Pre-built Tera Term scripts used for evaluating the RS9116 directly from a PC.


You are viewing documentation for version: 2.6   (latest)  | Version History

Featured Examples#

Featured examples are complete projects that demonstrate a common RS9116 use-case or enable you to perform a key aspect of RS9116 evaluation.  The featured examples are found in the WiSeConnect™ SDK at the path:  <SDK>/examples/featured.

Details on the configuration and operation of each featured example are available in the readme.md file that is found with the example source code and at the following links:

AWS IoT Device ShadowCreates an AWS IoT 'thing' that connects to the AWS IoT device shadow service using the MQTT protocol

BLE PER - Transmit and Receive Performance and Regulatory Testingconfigure the device with necessary parameters to start transmitting or receiving BLE PER packets.

BT PER - Transmit and Receive Performance and Regulatory Testingconfigure the device with necessary parameters to start transmitting or receiving BT PER packets.

Firmware Update via TCP ServerWirelessly updates the RS911x firmware from a remote TCP server

Deep-Sleep UDP ClientConnects to a Wi-Fi Access Point in deep-sleep mode and intermittently wakes to send UDP packets

Transmit Performance and Regulatory TestingConfigures the device in a transmit mode that is used for transmit performance and regulatory certification testing (FCC, ETSI, CE, etc.)

Throughput TestMeasures Wi-Fi transmit/receive throughput performance using a remote iPerf client/server


You are viewing documentation for version: 2.6   (latest)  | Version History

Getting Started with an EFx32 Host#

This guide describes how to get started developing a RS9116W application on an EFx32 embedded host MCU using the WiSeConnect™ Simple Application Programming Interface (SAPI).  For quick evaluation using only the EVK and a PC instead see Getting Started with PC using AT Commands.

Getting started with application development on an EFx32 involves the following steps:

Download and Install Simplicity Studio

Choose a host MCU Development Board

Update the RS9116W Firmware

Connect the RS9116 EVK to the EFx32 development board

Open a Featured Example Project in Simplicity Studio

Build, Run and Debug an example project

Explore the WiSeConnect™ Software Driver Package

Import Snippet Example Projects into Simplicity Studio

Download and Install Simplicity Studio#

Simplicity Studio is available for download at www.silabs.com/simplicity-studio.  The steps outlined in this getting started guide require Simplicity Studio version 5.1.2 or later.

During installation, be sure to install the Technology Type: 32-Bit Microcontrollers.  More details can be found at Simplicity Studio Installation Instructions

Note!
The WiSeConnect™ Software Driver Package is automatically downloaded by Simplicity Studio.  More details can be found in the section, Explore the WiSeConnect™ Software Driver Package.

Choose a host MCU Development Board#


Choose a host MCU Development Board#

The example projects provided with the WiSeConnect™ Software Driver Package are designed to work out-of-the-box with the EFR32MG21 Wireless Starter Kit (SLWSTK6006A) or EFM32GG11 Starter Kit (SLSTK3701A) and the RS9116 Wi-Fi + Bluetooth Development Kit.  Project files are provided for both the EFR32MG21 radio board version A (BRD4180A) and version B (BRD4180B), EFM32GG11 radio board version (BRD2204A)

The WiSeConnect™ driver software also works with other embedded host MCUs.  Details on porting the driver to other host MCUs can be found in the RS9116W SAPI Porting Guide.

Update the RS9116W Firmware#

When you first receive a RS9116 EVK, or when updating to a new version of the WiSeConnect™ Software Driver Package, we recommend updating the RS9116W firmware to the latest available version. There are several ways to update firmware, but the recommended method to get started is outlined in the section, Updating RS9116W Firmware.

Note!Disconnect the RS9116 EVK from the host MCU board before updating the firmware, the host MCU connections may interfere with the update process.

Connect the RS9116 EVK to the host MCU development board#

For EFR32MG21 host MCU#

Connect the EFR32 Starter Kit, EXP adapter board and RS9116 EVB as illustrated in the following picture:

Note!
The EXP adapter board is included in the RS9116 Evaluation Kit.  If you have an older RS9116 Evaluation Kit that does not include the EXP adapter board, please request one through your local sales representative.

STEP 1. Connect the EXP adapter board to the EFR32 starter kit EXP header.


STEP 1. Connect the EXP adapter board to the EFR32 starter kit EXP header.

STEP 2. Connect the EXP adapter board to the SPI connector of the RS9116 EVK using the 10-pin ribbon cable provided with the RS9116 EVK.

STEP 3. Connect the RST_PS pin on the RS9116 EVK to the pin labeled 11 on the J4 header of the EXP adapter board using a jumper wire.

STEP 4. Set the ISP switch on the RS9116 EVK to the OFF position.

STEP 5. Connect the RS9116 EVK to a PC using the USB interface labeled POWER.  Note that this connection only provides power to the EVK.  There is no USB communication over this connection.

STEP 6. Connect the EFR32 Starter Kit to a PC using the Mini USB connector on the EFR32 Starter Kit.

Complete hardware details of the RS9116 EVK can be found in the RS9116 EVK User's Guide.

Power Save GPIO Connections#

The instructions above enable basic operation between the host MCU and RS9116.  Some low power examples require additional connections of the Ultra Low Power (ULP) GPIOs as detailed in the table below.  These details are valid for any example provided in the WiSeConnect™ SDK unless otherwise noted in the readme documentation of a particular example.

Signal Name

EXP Adapter Board

RS9116 EVK

Notes

UULP_0 / UULP_3

J4 Pin 9

J9 Pin 5

If using a RS9116 EVK version 1.4 or newer connect UULP_0.  Otherwise connect UULP_3

UULP_2

J4 Pin 7

J9 Pin 4

For EFM32GG11 host MCU#


J9 Pin 4

For EFM32GG11 host MCU#

Connect the EFM32 Starter Kit and RS9116 EVB as illustrated in the following picture:

STEP 1. Connect one end of the SDIO connector to EFM32 board using the SDIO Pin Configuration Table given below.

STEP 2. Connect the other end of SDIO connector to the RS9116 EVK.

STEP 3. Connect the RST_PS pin on the RS9116 EVK to the PIN11 on EFM32 board using a jumper wire.

STEP 4. Set the ISP switch on the RS9116 EVK to the OFF position.

STEP 5. Connect the RS9116 EVK to a PC using the USB interface labeled POWER.  Note that this connection only provides power to the EVK.  There is no USB communication over this connection.

STEP 6. Connect the EFM32 Starter Kit to a PC using the Mini USB connector on the EFM32 Starter Kit.

Complete hardware details of the RS9116 EVK can be found in the RS9116 EVK User's Guide.

SDIO Pin Configuration Table :#

Pins on EFM32

On Expansion Header

Pins on RS9116 EVK

PIN#

Signal

PIN#

14

SDIO_DAT2

12

SDIO_DAT3

SDIO_CMD

10

SDIO_CLK

SDIO_DAT0

SDIO_DAT1

GND

20

3V3

Power Save GPIO Connections#

The instructions above enable basic operation between the host MCU and RS9116.  Some low power examples require additional connections of the Ultra Low Power (ULP) GPIOs as detailed in the table below.  These details are valid for any example provided in the WiSeConnect™ software package unless otherwise noted in the readme documentation of a particular example.


RS9116 PWR SAVE GPIOs peripheral J9 Header Pin

EFM32 Pin#

Function

Comment

UULP_0 / UULP_3

GPIO

If using a RS9116 EVK version 1.4 or newer connect UULP_0.  Otherwise connect UULP_3

UULP_2

GPIO

Open a Featured Example Project in Simplicity Studio#

The WiSeConnect™ SDK includes a number of examples that are featured in Simplicity Studio.  A list of the featured examples along with documentation detailing the operation each example can be found in: Featured Examples.  More details on the contents of the software package can be found in: Explore the WiSeConnect™ Software Driver Package.

STEP 1. Open Simplicity Studio and navigate to the Launcher perspective.

STEP 2. Under My Products add the RS9116W Evaluation Kit with EFR32MG21 by typing RS9116 then selecting the kit.

The RS9116 Overview page should now display information about the RS9116 and EFR32MG21 kits.

STEP 3. With the product RS9116W Evaluation Kit with EFR32MG21 selected, navigate to the example projects by clicking on Example Projects & Demos then filter by the RS9116 WiSeConnect SDK as shown below.

Note!
The RS9116W Evaluation Kit with EFR32MG21 that was added in the previous step specifies the EFR32MG21 radio board version B (BRD4180B).  If instead you are using a EFR32MG21 radio board version A (BRD4180A) then, prior to selecting an example project, you must select the board under Debug Adapters as shown below.


STEP 4. Click the Create button for the project that you wish to open.  This will display the New Project Wizard which will allow you to rename your project, choose the location of your project and select whether you want the project files linked to the original location or copied into the new project location.  Typically, the default settings should be used for all options.  Click Finish to exit the wizard and create the new project.

Note!
The mention of "SDK" in the New Project Wizardand in the Simplicity IDE refers to the EFR32 platform SDK known as the Gecko SDK (GSDK) and not the RS9116 WiSeConnect™ SDK.

STEP 5. After creating the project, Simplicity Studio will launch the Simplicity IDE allowing you to build, run and debug the project.

Build, Run and Debug an Example Project on the Development Kit#

You can flash, run and debug the newly created example project simply by clicking on the Debug icon in the Simplicity IDE toolbar.  This will build the project, flash it onto the attached STK and open the Debugger Perspective.  Unless configured otherwise, the debugger will automatically break execution at the beginning of main allowing the user to step, run, or otherwise debug the application.  More details on using the debugger tools can be found at: Using the Debuggers.

To build the project without flashing and executing it, simply click on the Build icon in the Simplicity IDE toolbar.  This will build the selected default configuration (debug or release).

A pre-built image can be programmed onto a device using the Flash Programmer which is available by clicking the Program icon in the Simplicity IDE toolbar.

Example specific details such as how to configure and operate the example can be found in Example Applications.  The same information is also available in the readme file available with the example project source code.

Explore the WiSeConnect™ Software Driver Package#


Explore the WiSeConnect™ Software Driver Package#

Simplicity Studio automatically downloads the official WiSeConnect™ SDK repository from the Silicon Labs GitHub space. Therefore no action is required to integrate the software into Simplicity Studio.

For advanced situations, the integration between Simplicity Studio and the The WiSeConnect™ SDK GitHub repository can be managed using the External Repos settings in Simplicity Studio.  To view or edit the external repos settings go to Preferences > Simplicity Studio > External Repos as shown below. Here you can add, edit, update, or remove repos.  You can also select a specific branch, tag or a commit that you would like to use.

Once downloaded, Simplicity Studio will store the repository in the Simplicity Studio installation folder under ./developer/repos.  On a Windows PC this is typicall found at C:\SiliconLabs\SimplicityStudio\v5\developer\repos.  You can explore the WiSeConnect™ SDK here.

Note!
Simplicity Studio will not download the full contents of the WiSeConnect™ SDK GitHub repo until the user opens one of the features example projects as described in: Open a Featured Example Project in Simplicity Studio

The WiSeConnect™ SDK is organized into the main folders described below.

Folder

Description

examples

Contains host MCU example projects.  The example projects are divided into featured, snippets and at_commands as described below in Example Project Types.

firmware

Contains RS9116 firmware image

platforms

Contains platform specific source code for various available platforms.  Other platforms can be supported by following the RS9116W SAPI Porting Guide.

resources

Contains various resources for the example projects and sapi including device certificates and scripts.

sapi

Contains the source code files for the WiSeConnect™ Simple Application Programming Interface (SAPI).

third party


third party

Contains third party source code and tools such as freeRTOS, AWS SDK and more.

utilities

Contains varous utilities useful for evaluation and application developent.

Example Project Types#

The examples included in the WiSeConnect™ SDK are divided into the following types:

Featured - Full featured projects that perform a key aspect of RS9116 evaluation or use-case.  Featured examples are available directly from Simplicity Studio.  Using a featured example is described in :Open a Featured Example Project in Simplicity Studio

Snippets - Smaller projects that focus on one particular feature or API.  Snippets can be easily imported into Simplcity Studio as described in: Import Snippet Example Projects into Simplicity Studio.

AT commands - Pre-built Tera Term scripts used for evaluating the RS9116 directly from a PC.  More details can be found in: Getting Started with RS9116 EVK and WiSeConnect™.

Import Snippet Example Projects into Simplicity Studio#

Snippet example projects are available in the WiSeConnect™ SDK in the subfolder folder ./examples/snippets.  More information about the location of the WiSeConnect™ SDK, the folder structure and the example types can be found in: Explore the WiSeConnect™ Software Driver Package.

Snippet example projects can be easily imported into Simplicity Studio using the steps below:

For EFR32MG21 host MCU#

STEP 1. Select File > Import ... from the Simplicity Studio menu.

STEP 2. Click Browse and navigate to the projects folder in the snippet example that you are wanting to import.  In this example we are using the WLAN Station Ping example found at C:\SiliconLabs\SimplicityStudio\v5\developer\repos\wiseconnect\examples\snippets\wlan\station_ping\projects.


STEP 3. The project names include the EFR32 board number associated with the project (e.g. brd4180a).  Select the project associated with the the board you are using and click Next.

STEP 4. Ensure there are no unresolved settings then click Next

STEP 5. Click Finish.  The Simplicity IDE will be displayed with the imported project.  You can now build, run and debug the project.

For EFM32GG11 Host MCU#

STEP 1. Select File > Import ... from the Simplicity Studio menu.

STEP 2. Click Browse and navigate to the projects folder in the snippet example that you are wanting to import.  In this example we are using the WLAN Station Ping example found at C:\SiliconLabs\SimplicityStudio\v5\developer\repos\wiseconnect\examples\snippets\wlan\station_ping\projects.

STEP 3. The project names include the EFM32 board number associated with the project (e.g. brd2204a).  Select the project associated with the the board you are using and click Next.

STEP 4. Ensure there are no unresolved settings then click Next

STEP 5. Click Finish.  The Simplicity IDE will be displayed with the imported project.  You can now build, run and debug the project.


You are viewing documentation for version: 2.6   (latest)  | Version History

Getting Started with PC using AT Commands#

The fastest way to get started with the WiSeConnect™ software is to use a RS9116 Evaluation Kit (EVK) and PC with a terminal application such as Tera Term.

To get started with app development on a host MCU instead, see Getting Started with a EFx32 Host or Getting Started with a STM32 Host.

Using AT-Commands and a Tera Term example script, your EVK will be connected to a wireless network in minutes.

There's just a few steps involved:

Download WiSeConnect™ software

Connect the EVK

Verify the RS9116 firmware version

Run Tera Term example scripts

Download WiSeConnect™#

The software package is available directly in Simplicity Studio for Silicon Labs EFx32 hosts.  See Getting Started with a EFx32 Host.  For other MCU hosts or if you are not using Simplicity Studio, the software package can be downloaded directly from the Silicon Labs GitHub space.

Download the latest WiSeConnect™ Software Driver Package

Additional Software Requirements

The terminal program Tera Term is required to complete the steps in this guide.  Other terminal programs can be used to control the RS9116W however the example scripts used in this guide will only work with Tera Term. Download Tera Term for PC.

Connect the EVK#

STEP 1. Connect the EVK to a PC using the USB interface labeled UART as identified below.

There are several USB connectors on the RS9116 EVK.  For the purposes of basic evaluation using a PC, the UART port is recommended due to its low power consumption.  Alternatively, the USB-CDC interface can be used to achieve higher throughput.  When using the USB-CDC interface the basic operation outlined on this page remains the same.


STEP 2. If this is the first time connecting the EVK to your PC, verfy that it is properly detected by the PC.  The EVK will appear to the PC as a COM port labeled USB Serial Port (COMx).  If the EVK is not properly detected you may need to download and install the FTDI Virtual COM Port (VCP) driver.

STEP 3. Configure your terminal application with the following settings:

Configure the serial port settings to 115200 baud / 8-bit data / No parity / 1 stop bit

Enable local echo

Set receive and transmit new-line characters to CR+LF

See, Tera Term setup instructions.

Verify the RS9116 Firmware Version#

If this is the first time using the RS9116 EVK or if you recently downloaded a new version of the WiSeConnect™ Software Driver Package, the firmware that is currently installed on the EVB may be outdated and may require updating. The instructions below describe how to load and check the firmware version.  For instructions on how to update the firmware see, Updating the RS9116W EVK Firmware

STEP 1. After power-up or reset, enter the bootloader as follows (this sequence sends the key combination |U).

press and hold Shift

press then release | (the 'vertical line' or 'pipe' character)

press then release u

release Shift

The console displays the bootloader menu after the characters |UU as shown in the following example.

1.0

1 Load Default Wireless Firmware
A Load Wireless Firmware

(Image No

0-f

)
B Burn Wireless Firmware

(Image No

0-f

5 Select Default Wireless Firmware

(Image No

0-f

)
K Check Wireless Firmware Integrity

(Image No

0-f

7 Enable GPIO Based Bypass Mode

8 Disable GPIO Based Bypass Mode
Q Update KEY
Z JTAG Selection


8 Disable GPIO Based Bypass Mode
Q Update KEY
Z JTAG Selection

Note!
The bootloader menu does not appear automatically on boot because the device waits to perform Auto Baud Rate Detection (ABRD).  The character sequence Shift + | followed by Shift + u initiates ABRD causing the device to enter bootloader mode.  For more details on ABRD and the bootloader, see the RS9116W Programming Reference Manuals.

|UU

WELCOME TO REDPINE SIGNALS

BootLoader Version

1.0

1 Load Default Wireless Firmware
A Load Wireless Firmware

(Image No

0-f

)
B Burn Wireless Firmware

(Image No

0-f

5 Select Default Wireless Firmware

(Image No

0-f

)
K Check Wireless Firmware Integrity

(Image No

0-f

7 Enable GPIO Based Bypass Mode

8 Disable GPIO Based Bypass Mode
Q Update KEY
Z JTAG Selection

11
Loading

...
Loading Done

Note!

The bootloader automatically loads the default firmware after 20 seconds if a selection is not made.

If the console only displays Loading... without Loading Done, the device may be in legacy binary mode. See, Switching between legacy binary mode and AT-command mode.

The device can be configured in 'Bootloader Bypass Mode' as described in the RS9116W Programming Reference Manuals.

STEP 3. Query the version of the firmware by typing the command at+rsi_fwversion? as shown in the following console example.

...

Loading

...
Loading Done

at+rsi_fwversion?
OK1610.2.4.0.0036


at+rsi_fwversion?
OK1610.2.4.0.0036

STEP 4. If the firmware version does not match the firmware image provided with the WiSeConnect™ SDK, then a firmware update is required. The firmware image is found in the WiSeConnect software package at the path <SDK>/firmware.  The firmware version is specified as part of the file name.  For update instructions see, Updating the RS9116W EVK Firmware.

Run Tera Term Example Scripts#

The WiSeConnect™ SDK includes several Tera Term example scripts that use AT-Commands to demonstrate basic RS9116W functionality.  The scripts are found in the WiSeConnect™ SDK in the folder <SDK>/examples/at_commands/teraterm

When using these examples to evaluate power consumption please use the UART interface as described in Connect the EVK.

A complete list of examples and and instructions on running each example can be found in AT Command Examples.

It is recommended that you start with the Wi-Fi Station Mode Example.


You are viewing documentation for version: 2.6   (latest)  | Version History

Getting Started with a STM32 Host#

This guide describes how to get started developing a RS9116W application on an STM32 embedded host MCU using the WiSeConnect™ Simple Application Programming Interface (SAPI).  For quick evaluation using only the EVK and a PC instead see Getting Started with PC using AT Commands.

Getting started with application development on an STM32 involves the following steps:

Download the WiSeConnect™ Software Driver Package

Choose a host MCU development board

Update the RS9116W Firmware

Connect the RS9116 EVK to the STM32 development board

Open an Example Project in the Keil IDE

Run an Example Project on the Development Kit

Download the WiSeConnect™ Software Driver Package#

Download or clone the WiSeConnect™ Software Driver Package repository from GitHub.

Choose a host MCU development board and tools#

The example projects provided with the WiSeConnect™ Software Driver Package are designed to work out-of-the-box with the STM32F411RE Nucleo-64 Development Kit from ST Microelectroncis and the Keil MDK development environment.  Before continuing with this guide, download and install the Keil MDK.

The WiSeConnect™ driver software can also be run on many other embedded host MCU's.  To run example projects on a Silicon Labs EFM32/EFR32 host see: Getting Started with a EFx32 Host.  Details on porting the driver to other non-Silicon Labs platforms can be found in the RS9116W SAPI Porting Guide.

Update the RS9116W Firmware#


Update the RS9116W Firmware#

When you first receive a RS9116 EVK or when upgrading to a new version of the WiSeConnect™ Software Driver Package, we recommend you update the RS9116W firmware.  There are several update methods available when just getting started it is best to follow the method outlined in Updating RS9116W Firmware

Note!
Be sure to disconnect the RS9116 EVK from the host MCU board before updating the firmware using the method described in Updating RS9116W Firmware

Connect the RS9116 EVK to the STM32 MCU Development Board#

STEP 1. Connect the RS9116 EVK reset pin RST_PS to the STM32F11RE development board CN10 pin 6 to enable the STM32 to reset the RS9116.

STEP 2. Connect the STM32F411RE board to the SDIO/SPI connector of the RS9116 EVK using the 10-pin ribbon cable provided with the RS9116 EVK.

The pinout of the SPI cable is shown in the image below.

The following table summarizes the connections between the RS9116 EVK SDIO/SPI connector (J4) and the STM32F411RE development board connector (CN10).

Signal Name

RS9116 EVB (J4 - SDIO/SPI)

STM32F411 Board (CN10)

NC

10

No Connect

SPI_INTR

21

SPI_MISO

13

SPI_MOSI

15

GND

No Connect

SPI_CLK

11

VDD

GND

SPI_CS

17

NC

No Connect

STEP 3. Set the ISP switch on the RS9116 EVK to the OFF position.


STEP 3. Set the ISP switch on the RS9116 EVK to the OFF position.

STEP 4. Connect the RS9116 EVK to a PC using the USB interface labeled POWER.  Note that this connection only provides power to the EVK.  There is no USB communication over this connection.

STEP 5. Connect the STM32 development board to a PC using the Mini USB connector on the STM32F411RE board.

Complete hardware details of the RS9116 EVK can be found in the RS9116 EVK User's Guide.

Power Save GPIO Connections#

The instructions above enable basic operation between the host MCU and RS9116.  Some low power examples require additional GPIO configuration to enable Low Power (LP) or Ultra Low Power (ULP) operation.  These details are valid for any example provided in the WiSeConnect™ SDK unless otherwise noted in the readme documentation for a particular example.

Connections for Ultra-Low Power (ULP) Operation

Signal Name

STM32F411 Board (CN10)

RS9116 EVK

Notes

UULP_2

J9 Pin 4

UULP_0 (UULP_3)

J9 Pin 5

Only use UULP_3 for RS9116 EVK v1.3 or earlier

Connections for Low Power (LP) Operation

Signal Name

STM32F411 Board (CN10)

RS9116 EVK

Notes

UULP_5

J9 Pin 4

UULP_0 (UULP_3)

J9 Pin 5

Only use UULP_3 for RS9116 EVK v1.3 or earlier

Reset Connection#

Signal Name

STM32F411 Board (CN10)

RS9116 EVK

Notes

RST_PS

J9 Pin 2


RS9116 EVK

Notes

RST_PS

J9 Pin 2

An STM32 GPIO is used to reset the RS9116

Open an Example Project in the Keil IDE#

The WiSeConnect™ SDK includes a number of ready-made example projects for the STM32F411RE Nucleo-64 Development Kit and the Keil MDK development environment. A list of examples and documentation detailing the operation of each example can be found in: WiSeConnect™ Example Applications .

For the steps below, the Keil MDK development environment must be installed on the PC that is connected to the STM32F411RE development board.  Refer to the Keil website for details on downloading and installing the development environment.

STEP 1. Open the Keil µVision IDE

STEP 2. Click the menu item Project > Open Project...

STEP 3. Navigate to the examples folder in the downloaded WiSeConnect™ Software Driver Package and choose the µVision project file of the example you would like to open.  Every example contains a projects folder containing various project files.  For example, the path to the firmware update featured example project can be found in the following path:

<SDK>/examples/featured/firmware_update/projects/firmware_update-nucleo-f411re.uvprojx.

STEP 4. Opening the project will result in a fully functional project in the IDE that can be built, run and debugged.

Run an Example Project on the Development Kit#

You can build, run and debug the newly opened example project simply using the standard toolbar and menu items in the Keil µVision IDE.  Refer to the Keil documentation for more details.

For instructions to configure and use each, see Example Applications.  The same information is also available in the readme.md file available with the example project source code.


You are viewing documentation for version: 2.6   (latest)  | Version History

RS9116W - WiSeConnect™#

WiSeConnect™ offers a full network offload option for embedded systems with low-end host microcontrollers running an RTOS or bare metal OS.  The RS9116W connects to a host MCU using UART  or SPI interfaces. A complete set of wireless, networking and security stacks run on the RS9116W device, however the networking stack can be bypassed if required. Communication with the host MCU is achieved with AT Commands, or alternately a simple binary API referred to as SAPI. Embedded products provide greater than 20 Mbps Wi-Fi application throughput with multiple operating modes including Wi-Fi Client, Wi-Fi Access Point, Simultaneous Wi-Fi Client & Access Point and Dual-mode Bluetooth.

To get started using the WiSeConnect™ SDK, follow the instructions in on one of the getting started guides below:

Getting Started with PC using AT Commands

Getting Started with EFx32 Host

Getting Started with STM32 Host

The software package is available directly in Simplicity Studio for Silicon Labs EFx32 hosts.  For other MCU hosts the software package can be downloaded directly from the Silicon Labs GitHub space.

Download the latest WiSeConnect™ Software Driver Package


You are viewing documentation for version: 2.6   (latest)  | Version History

AT Command Programming Reference Manuals#

The programming reference manuals listed below describe the AT-command interface and other programming details of the RS9116W.  These documents should be referenced for detailed information that may not be available in the SAPI Reference.

Wi-Fi AT Command PRM#

Software architecture

Bootloader details

Host interface guide

Interface and command protocols

AT Command reference for Wi-Fi

BLE AT Command PRM#

Software architecture

Bootloader details

Host interface guide

Interface and command protocols

AT Command reference for BLE

Bluetooth Classic AT Command PRM#

Software architecture

Bootloader details

Host interface guide

Interface and command protocols

AT Command reference for Bluetooth Classic


You are viewing documentation for version: 2.6   (latest)  | Version History

WiSeConnect Release Notes#

Release notes are provided with each version of the WiSeConnect™ SDK.

WiSeConnect™ 2.6.1

WiSeConnect™ 2.6

WiSeConnect™ 2.5.2

WiSeConnect™ 2.5.1

WiSeConnect™ 2.5

WiSeConnect™ 2.4.1

WiSeConnect™ 2.4

WiSeConnect™ 2.3

WiSeConnect™ 2.0

WiSeConnect 2.6.1 Release Notes#

Last updated: September 14, 2022

Highlights#

Bug fixes

Release Details#

Item

Details

Release date

September 16, 2022

API Version (SAPI)

2.6.1 (Build 6)

Firmware Version

2.6.1.6 (Build 6)

Package Name

RS9116W.2.6.1.6

Supported RTOS

FreeRTOS

Hardware Modules

QMS, B00, C00, CC1, AB0, AB1, AA0, AA1

Hardware Chipsets

Chip Revision 1.4, Chip Revision 1.5

Operating Modes Supported

Wi-Fi STA, Wi-Fi AP, Wi-Fi STA+BLE

Additional Operating Modes Supported (Beta Quality)

Wi-Fi STA+BT, Wi-Fi STA+BT+BLE

Updating to this Release#

RS9116W 2.6.1 release consists of two components, as follows:

Firmware - RS9116 Firmware Binary

SAPI Library - SAPI Library runs on Host


Firmware - RS9116 Firmware Binary

SAPI Library - SAPI Library runs on Host

This release is meant only for use with designs based on RS9116 Silicon rev 1.4 (RS9116X-xxx-xxx-Bxx) and RS9116 Silicon rev 1.5 (RS9116X-xxx-xxx-Cxx).Customers using the RS9116X-xxx-xxx-Xxx parts (Silicon rev 1.3) can also upgrade to the latest firmware, however the power optimization feature macro EXT_FEAT_LOW_POWER_MODE must be disabled for revision 1.3.

Choose the firmware to match the silicon revision used in your design, as follows:

RS9116W.2.6.1.0.6.rpsRS9116X-xxx-xxx-Xxx (Silicon rev 1.3)RS9116X-xxx-xxx-Bxx (Silicon rev 1.4)

RS916W.2.6.1.0.6.rpsRS9116X-xxx-xxx-Cxx (Silicon rev 1.5)

Changes and Fixes#

Wi-Fi#

Resolved issues with DHCP renewal process when HTTP download is in progress.

Enhanced frequency offset calibration by reducing the number of iterations required. Also added checks to ensure frequency offset tuning doesn't get wrapped-around.

Resolved stability issues with static IP assignment when a duplicate IP address on the network is configured on STA.

For RSSI Query, responding with beacon avg rssi instead of last beacon RSSI.

Memory read/write support added in AT mode.

Fixed firmware stuck issue in WAP3 connection failure cases and also added changes to support WPA3-R3 certification.

Fixed issue with error code 0x0015 observed for Configuration save or Configuration Enable commands with some Opermode configurations.
Bluetooth

Fix for fragmentation issue with 1Mbps to improve BLE performance.


Fix for fragmentation issue with 1Mbps to improve BLE performance.

Fix to change BLE advertise frame Tx power by rsibt_updategaintableoffsetMaxpower.

Fix to reduce the timing for BT pairing and connection with with BT_Power_save application.

Fix for BLE disconnection with different error coes (4e08,4e22,4e3e) in AT modes.

Fix to improve BLE scan performance on 1.3 revison boards.

Fix for disconnection in audio streaming after connecting DUT to remote BLE device.

Fix to get exact response for "at+rsibt_getlocalcod?" command.

Fix for Bluetooth classic work in the coex mode of RSI_OPERMODE_WLAN_BT_DUAL_MODE.

Fix for module returning the improper remote device MTU size in the rsi_bt_app_on_spp_connect callback.

Fix for first byte missing During the spp_tx in AT_commands.

Fix for AFH map reported by HCI command HCI_Read_AFH_Channel_Map.

Fix for bluetooth AFH disabling after role switch.

Fix for SPP issues reported by automation team.

Fix for BLE TX Power is not changing for TELEC and KCC regions.

Fix for BLE SMP connection, if pairing information available, slave does not require to send pairing request.
Documentation

Updated documentation for user store configurations feature.

Updated Wi-Fi PRM with information on the commands supported in concurrent mode.

Indicating error(0xFFF8) for UDP command when wrong parameters are issued.

Added a note point in SAPI PRM that provided values for x0_ctune in calibration app.

Updated the Document by adding WPA3 new features.
Known Issues

Power save in PTA 3-Wire Co-Existence functionality requires a weak pull up to be applied to the GRANT pin. However, Beacon protection with power save is unsupported.


WiSeConnect 2.6 Release Notes#

Index#

Highlights

Release Details

Updating to this Release

New Features

Changes and Fixes

New APIs

Recommendations and New Options

Known Issues

Limitations and Unsupported Features

SDK Refactor

Terminology

Highlights#

Support for storing server IP and port in non-volatile memory

IP conflict detection support for RS9116 internal network stack

SNI (Server Name Indication) support for RS9116 silicon revision 1.4 and 1.5

Enhancements to support for logging

Enhancements to PTA 3-wire coexistence to protect beacon reception

Swyentooh and braktooth vulnerability fixes for BT/BLE

Release Details#

Item

Details

Release date

June 15, 2022

API Version (SAPI)

2.6.0 (Build 34)

Firmware Version

2.6.0 (Build 34)

Package Name

RS9116W.2.6.0.34

Supported RTOS

FreeRTOS

Hardware Modules

QMS, B00, C00, CC1, AB0, AB1, AA0, AA1

Hardware Chipsets

Chip Revision 1.4, Chip Revision 1.5

Operating Modes Supported

Wi-Fi STA, Wi-Fi AP, Wi-Fi STA+BLE

Additional Operating Modes Supported (Beta Quality)

Wi-Fi STA+BT, Wi-Fi STA+BT+BLE

Updating to this Release#

RS9116W 2.6 release consists of two components, as follows:

Firmware - RS9116 Firmware Binary

SAPI Library - SAPI Library runs on Host


Firmware - RS9116 Firmware Binary

SAPI Library - SAPI Library runs on Host

This release is meant only for use with designs based on RS9116 Silicon rev 1.4 (RS9116X-xxx-xxx-Bxx) and RS9116 Silicon rev 1.5 (RS9116X-xxx-xxx-Cxx). Customers using the RS9116X-xxx-xxx-Xxx parts (Silicon rev 1.3) can also upgrade to the latest firmware, however the power optimization feature macro EXT_FEAT_LOW_POWER_MODE must be disabled for revision 1.3.

Choose the firmware to match the silicon revision used in your design, as follows:

RS9116W.2.6.0.0.34.rpsRS9116X-xxx-xxx-Xxx (Silicon rev 1.3)RS9116X-xxx-xxx-Bxx (Silicon rev 1.4)

RS916W.2.6.0.0.34.rpsRS9116X-xxx-xxx-Cxx (Silicon rev 1.5)

This release includes bug-fixes, enhancements, relevant AT command updates, new SAPI features, and firmware. Most of the new features have associated APIs, which are available in the latest SAPI implementation only. It is strongly recommended to upgrade SAPI and Firmware together.

New Features#

Wi-Fi#

Support for storing server IP and port in non-volatile memory

IP Conflict detection support for RS9116 internal network stack

SNI (Server Name Indication) support for RS9116 silicon revision 1.4 and 1.5

Enhancements to PTA 3-Wire coexitence to protect beacon reception

Bluetooth - Common#

Swyentooh and braktooth vulnerability fixes for BT/BLE

General#

Enhancements to support for logging


General#

Enhancements to support for logging

Wi-Fi interoperability bug fixes

Changes and Fixes#

rsi_recv timeout granularity changed from 1s to 10 ms.

Fix for BLE disconnection and BLE SMP connection issues in example applications

Fix for Wi-Fi reconnections due to improper handling of isolated cipher mismatch event

Fix in example application for SonyMDR headset glitch issue

Fix for glitches and audio pauses for AirPods Pro, Sennheiser, Jabra Elite and Mi Earphones while connected to Wi-Fi

Fix for the issue where at+rsi_scan return invalid channel in case of reconnection with 5GHz band AP

Fix for HTTPS file download issue in EAP-TLS network

New APIs#

For a complete list of new APIs, see SAPI Changelog

Recommendations and New Options#

Wi-Fi#

To ensure graceful handling during asynchronous TCP closures from a peer, enable the opermode parameter ext_tcp_ip_feature_bit_map[16]

Enable aggregation using the opermode parameter feature_bit_map[2]

To avoid TCP disconnects during a rejoin, set TCP retransmission count to >= 30

To make a connection more robust for low throughput applications in busy networks, disable high MCS rates. For example, in a congested wireless envionment, a Smart Lock may benefit by disabling MCS6 and MCS7.

To restart the RS9116, the application should call rsi_driver_deinit() followed by rsi_driver_init() and rsi_device_init(). For OS cases, additionally call rsi_task_destroy(driver_task_handle) to delete the driver task before calling rsi_driver_deinit() and create again after rsi_device_init() using rsi_task_create().


Register the 'Join Fail Callback' function each time join is called. This is required because if a join fails, the callback is deregistered. Failure to register the callback may stop scan working correctly on a rejoin failure.

BT/BLE#

In BLE, the recommended range of the BLEConnection Interval is as follows:Power Save (BLE Only) - 100 ms to 1.28 sBT Classic + BLE Dual Mode is >= 200 msWi-Fi + BLE coex - 30 ms to 250 ms

In BLE during Connection, the configuration of Scan Interval and Scan Window with the same value is not recommended

In BT Classic, the recommended Sniff Interval configuration during powersave is limited to 100 ms (<= 100).

In BLE, if a device is acting as Central, the scan window (in set_scan_params() and create_connection() APIs) must be less than the existing Connection Interval.

In BLE mode, if scanning and advertising is in progress, and the device subsequently connects and moves to the central role, scanning and advertising stops. To further establish connection to another peripheral device or to a central device, the application must initiate advertising and scanning again.

Device powersave must be disabled prior to BT init and de-init.

Co-Existence#

For concurrent Wi-Fi + BLE, and while a Wi-Fi connection is active, we recommend setting the ratio of the BLE scan window to BLE scan interval to 1:3 or 1:4.

Wi-Fi + BLE AdvertisingAll standard advertising intervals are supported. As Wi-Fi throughput is increased, a slight difference in on-air advertisements compared to configured intervals may be observed.BLE advertising is skipped if the advertising interval collides with Wi-Fi activity.


Wi-Fi + BLE scanningAll standard scan intervals are supported. For better scan results, we recommend setting the ratio of the BLE scan window to BLE scan interval to 1:3 or 1:4.BLE scanning will be stopped for intervals that collide with Wi-Fi activity.

Wi-Fi + BLE Central/Peripheral ConnectionsAll standard connection intervals are supported.For a stable connection, use optimal connection intervals and max supervision timeout in the presence of Wi-Fi activity.

Wi-Fi + BLE Central/Peripheral Data TransferTo achieve higher throughput for both Wi-Fi and BLE, use medium connection intervals, such as 45 to 80 ms with maximum supervision timeout.Ensure Wi-Fi activity consumes lower intervals.

For Wi-Fi + BT + BLE, Wi-Fi + BT, Wi-Fi + BLE operating modes, connect Wi-Fi before BT/BLE connections to ensure seamless, stable connection for all 3 protocols.

For Wi-Fi + BT + BLE, Wi-Fi + BT, Wi-Fi + BLE operating modes, if BT/BLE needs to be connected before a Wi-Fi connection, use with high supervision timeout and high connection interval for BLE and high sniff interval for BT, to ensure seamless, stable connection. This configuration also ensures a stable BT/BLE connection when Wi-Fi connects/disconnects/rejoins.

Wi-Fi + BLE Central/Peripheral Data Transfer

System#

For User Store configuration and Configuration Save, do not enable power save or save it as a configuration. If power save is enabled and saved as a configuration, upon boot up, the RS9116 will boot with the saved configuration and will go to powersave without any indication to the host.

Set the compiler optimization level to O0 in project settings for IDE (KEIL).


Set the compiler optimization level to O0 in project settings for IDE (KEIL).

Memory configuration must be 384K for BT/BLE and co-ex operating modesUsage of low power flash mode bit (bit 19 in extended customer feature bitmap). Enable this bit for ultra low power standby associated scenarios. This results in about 20µA lower Wi-Fi standby associated current consumption.

Memory Configuration in SAPI functions: The default memory configuration is 384K. The memory configuration can be changed to 256/320/384kB by changing the macros defined in the following files:In rsi_wlan_config.h : RSI_EXT_CUSTOM_FEATURE_BIT_MAP EXT_FEAT_256K_MODE or EXT_FEAT_320K_MODE or EXT_FEAT_384K_MODEIn rsi_common.c : rsi_uint32_to_4bytes(rsi_opermode->ext_custom_feature_bit_map, (EXT_FEAT_256K_MODE (or) EXT_FEAT_320K_MODE (or) EXT_FEAT_384K_MODE | RSI_EXT_CUSTOM_FEATURE_BIT_MAP));

Apply Opermode commands in AT mode correctly. Using the wrong opermode may lead to unspecified behavior.

Set the recommended Power Save Profile (PSP) type to Enhanced Max PSP.

During firmware updates, powersave operation should be disabled.

For high throughput applications, powersave operation should be disabled.

The application must set the real-time clock with correct timestamp when the feature is enabled before establishing a TLS connection.

The socket select and socket receive timeout must be at least 1 second. A timeout value under 1 second is not supported.

For more details, see 'Configuration parameters' in the SAPI Reference Manual.

Known Issues#

Network Stack#

DHCP renewal during HTTP download may fail, this may cause disconnection.


Network Stack#

DHCP renewal during HTTP download may fail, this may cause disconnection.

Sometimes during a TLS handshake, ECC curve parameters may be incorrectly generated resulting in connection failure with BBD2 error. However, this recovers in the next attempt.

MQTT disconnects during firmware update when power save is enabled. Disable power save during firmware update and re-enable on update completion.

All GCM-based cipher suites are implemented in software and have limited performance.

The recommended MQTT publish payload is 1 kBytes.

If HTTP server functionality is enabled, do not use port 80 for the MQTT client.

Randomize the client port if using rapid connect/disconnect of the MQTT session on the same client port with powersave.

Secure TLS renegotiation is not supported in the embedded networking stack.

IPv6 support is not available in this release.

Wi-Fi#

WPA3 known issuesConnection takes about 3-4 secondSAE H2E (Hash to Element) is not supportedTransition disable indication is not supportedPMK SA caching is not supported

If the station performs a scan in concurrent mode (Wi-Fi STA+AP), stations connected to the AP may be disconnected. Enable AP after STA connection is completed.

Issue observed with WPA2 Enterprise Connectivity using Microsoft RADIUS Server.

If background scan is enabled along with custom feature bit map bit (8) configuration of the DFS channel support, issues may occur in obtaining an IP address for the Wi-Fi STA.

In fast PSP, configuration socket close is observed in full duplex communication in long duration tests.

PTA 3-wire co-existence does not work with powersave. However, if a weak pull up is applied to the GRANT pin, PTA 3-wire functionality will work with powersave. Details can be found in application notes.

BT/BLE#

SPP as MASTER connection doesn't work in AT/Binary mode


BT/BLE#

SPP as MASTER connection doesn't work in AT/Binary mode

In AT Mode for SPP Transfer the first byte is missing

BT/BLE User Gain table APIs don't work for Korea and Japan region

In the configuration of WLAN connection, BT A2DP Streaming and BLE Slave connection with SMP mode, BLE disconnections are observed

Wake on Wireless is not supported for BLE.

BT-HID may not interoperate with Apple devices.

In Wi-Fi + BT/BLE Co-Ex mode, high Wi-Fi broadcast traffic might cause BT/BLE disconnections.

In Wi-Fi + BT mode when there is continuous Wi-Fi data, you might observe BT not re-connecting to remote after disconnection.

BT-A2DP may not interoperate with some headsets.

For BLE, dual role scenario issues may occur when connecting as a central when the peripheral is advertising. Central connections can be made after peripheral connections are established and advertising stops.

A BLE disconnection will occur if both the peer and RS9116 already have bond info and the RS9116 initiates security as part of BLE secure connections. To workaround this issue, the application should not initiate a security request if it already has bond info.

A2DP music streaming glitches may be observed if a Wi-Fi download is in progress at the same time.

Co-Existence#

After powersave is enabled in co-ex mode, radio_init() must be called to turn off powersave.

In Wi-Fi + BLE mode:BLE may disconnect when the supervision timeout is configured to less than 16 seconds.WPS does not work.

In Wi-Fi + BLE / BLE only modes:For SPI as host interface, continuous BLE Tx notification may cause the host interface to hang needing a hardware reset. The issue is not seen with discrete burst BLE data.When Wi-Fi disconnects, a BT/BLE reconnection issue is observed.

Interoperability#


Interoperability#

Disconnection may occur in Wi-Fi client mode if an AP does not acknowledge QoS null frames with powersave configured.

Under some scenarios, the RS9116 may not send unicast probe requests if the access point does not send beacons as expected. This may result in disconnection from the AP.

System#

Chip Revision 1.3 doesn't support Low power mode optimization using bit setting defined by EXT_FEAT_LOW_POWER_MODE, setting this results in hang issue.

Sometimes the RS9116 enters powersave mode before the configured monitor interval for inactivity when co-ex is configured.

Wake on Wireless support has only been tested for the UART AT command interface.

Powersave without RAM retention does not work when the SPI interface is used.

The FTP client application does not work with EFx32/STM32 when an RTOS is used.

The HTTP OTA update application does not work with EFR32 and EFM32 when an RTOS is used.

Firmware update does not work for the EFM32 platform.

Limitations and Unsupported Features#

Wi-Fi/Network Stack#

AMSDU transmit is not supported.

Fragmentation is not supported.

AMSDU's within AMPDU is not supported.

Currently, the RS9116 does not support the radio measurement requests feature of CCX V2

802.11k is not supported

Short GI is not supported

40 MHz bandwidth for both the 2.4 & 5 GHz band is not supported.

802.11j channels less than 16 are not supported.

The USB host interface and USB powersave are not supported.

In AT mode, the total MQTT command length (apart from MQTT publish) should not exceed 150 bytes. This includes at+rsi (start of command) to (end of command)\r\n.


Configure MQTT_VERSION in rsi_mqtt_client.h based on the server configuration; only version 3 and 4 are supported.

3xTLS connections or 1xTCP and 2xTLS connection, connections are supported concurrently in Wi-Fi only mode.

TLS curve IDs supported are 15-28. TLS handshake with 3rd party clients depends on the TLS curve.

BT/BLE#

BT A2DP is only supported for RS9116 silicon revision 1.5.

BT sniff mode does not work if BT multiple slaves feature is enabled.

For BLE, if the connection is established with a small connection interval (<15 ms), simultaneous roles are not supported (i.e., Central/Peripheral + Advertising/Scanning).

A maximum of 2 concurrent BLE connections are supported; the connections can be either a connection to two peripheral devices or to 1 central and 1 peripheral device.

For BT Classic, only 1 connection is supported at any time.

BLE slave latency value is valid up to 32 only.

BT-A2DP encoder is not supported in the firmware.

BT-A2DP not supported in AT mode.

Co-Existence#

In Wi-Fi + BLE mode, if BLE scan interval and window have the same value, then there will be issue in making successful Wi-Fi connection.

For AT commands, Wi-Fi + BT + BLE (Opermode 9), BT + BLE (Opermode 8) do not work.

Wi-Fi STA + BT + BLE multiprotocol use cases require a detailed understanding of use cases and associated configurations. Contact Silicon Labs support for additional details.

Wi-Fi AP + BLE, Wi-Fi AP + BT & Wi-Fi AP + BT + BLE modes are not supported.

WiSeConnect 2.5.2 Release Notes#

Last updated: April 13, 2022

Highlights#

Issue fixes

Release Details#

Item


Highlights#

Issue fixes

Release Details#

Item

Details

Release date

April 13, 2022

API Version (SAPI)

2.5.2 (Build 4)

Firmware Version

2.5.2.0.4 (Build 4)

Package Name

RS9116W.2.5.2.0.4

Supported RTOS

FreeRTOS

Hardware Modules

QMS, B00, C00, CC1, AB0, AB1, AA0, AA1

Hardware Chipsets

Chip Revision 1.4, Chip Revision 1.5

Operating Modes Supported

Wi-Fi STA, Wi-Fi AP, Wi-Fi STA+BLE

Additional Operating Modes Supported (Beta Quality)

Wi-Fi STA+BT, Wi-Fi STA+BT+BLE

Updating to this Release#

RS9116W 2.5.2 release consists of two components

Firmware - RS9116 Firmware Binary

SAPI Library - SAPI Library runs on Host

This release contains bug-fixes and firmware binary updates. It is strongly recommended to update SAPI and firmware together.

Changes and Fixes#

Fix for Bluetooth SPP Rx latency with SDIO as host interface

Fix for Bluetooth host application freeze issue with SDIO as host interface

Documentation updates to address following issuesSNTP Error BB08BT Classic and BLE PER Stats command responses are NULL

Known Issues#

PTA 3-Wire is not supported with power save being enabled.

WiSeConnect 2.5.1 Release Notes#

Last updated: March 29, 2022

Highlights#

PTA 3-Wire Co-Existence support in Wi-Fi only mode with Thread protocol

Issue fixes

Release Details#

Item

Details

Release date

March 29, 2022

API Version (SAPI)

2.5.1 (Build 5)


API Version (SAPI)

2.5.1 (Build 5)

Firmware Version

2.5.1.5 (Build 5)

Package Name

RS9116W.2.5.1.5

Supported RTOS

FreeRTOS

Hardware Modules

QMS, B00, C00, CC1, AB0, AB1, AA0, AA1

Hardware Chipsets

Chip Revision 1.4, Chip Revision 1.5

Operating Modes Supported

Wi-Fi STA, Wi-Fi AP, Wi-Fi STA+BLE

Additional Operating Modes Supported (Beta Quality)

Wi-Fi STA+BT, Wi-Fi STA+BT+BLE

Updating to this Release#

RS9116W 2.5.1 release consists of two components

Firmware - RS9116 Firmware Binary

SAPI Library - SAPI Library runs on Host

This release contains bug-fixes and firmware binary updates. It is strongly recommended to update SAPI and firmware together.

Changes and Fixes#

PTA 3-Wire Co-existence support in Wi-Fi only mode with Thread protocol

Fix for rsi_timer_left() to return the remaining time for expiry instead of total time expired so far

Fix for low transmit power issue reported on latest AA0 modules

Fix for firmware version showing differently in the package and in the software

Fix for configuration of SPI_INTR to active low

Fix for regulator voltages (VOUTLDOAFE, UULP_VOUTSCDC) not matching data sheet specifications

Fix for HTTP OTAF upgrade issue when done with corrupt firmware in loop

Fix for EAP TLS certificate loading issue in TCP/IP bypass enabled mode

Fix for SNTP BB08 error

WiSeConnect 2.5 Release Notes#

Index#

Highlights

Release Details

Updating to this Release

New Features

Changes and Fixes

New APIs

Recommendations and New Options

Known Issues


New Features

Changes and Fixes

New APIs

Recommendations and New Options

Known Issues

Limitations and Unsupported Features

SDK Refactor

Terminology

Highlights#

Support for RS9116 chip revision 1.5

WPA2 Security Enhancements support

WPA3 Personal support for Station Mode

Support for Enhanced MaxPSP in Co-Ex Mode

Support for FAST PSP

PTA 3-Wire Co-existence Support for Wi-Fi as PTA Master

BT/BLE User Gain API support

WRECK Vulnerability fixes

FragAttacks vulnerability Fixes

SDIO Interface support

A2DP Source support with Co-existence

EFM32 (Silicon Labs MCU SLSTK3701A) platform support

Release Details#

Item

Details

Release date

December 31, 2021

API Version (SAPI)

2.5.0 (Build 26)

Firmware Version

2.5.0 (Build 26)

Package Name

RS9116W.2.5.0.26

Supported RTOS

FreeRTOS

Hardware Modules

QMS, B00, C00, CC1, AB0, AB1, AA0, AA1

Hardware Chipsets

Chip Revision 1.4, Chip Revision 1.5

Operating Modes Supported

Wi-Fi STA, Wi-Fi AP, Wi-Fi STA+BLE

Additional Operating Modes Supported (Beta Quality)

Wi-Fi STA+BT, Wi-Fi STA+BT+BLE

Updating to this Release#

RS9116W 2.5 release consists of two components, as follows:

Firmware - RS9116 Firmware Binary

SAPI Library - SAPI Library runs on Host


Firmware - RS9116 Firmware Binary

SAPI Library - SAPI Library runs on Host

This release is meant only for use with designs based on RS9116 Silicon rev 1.4 (RS9116X-xxx-xxx-Bxx) and RS9116 Silicon rev 1.5 (RS9116X-xxx-xxx-Cxx).Customers using the RS9116X-xxx-xxx-Xxx parts (Silicon rev 1.3) can also upgrade to the latest firmware. However, you will have to disable the power optimization feature enabling macro EXT_FEAT_LOW_POWER_MODE.

Choose the firmware to match the silicon revision used in your design, as follows:

RS9116W.2.5.0.26.rpsRS9116X-xxx-xxx-Xxx (Silicon rev 1.3)RS9116X-xxx-xxx-Bxx (Silicon rev 1.4)

RS916W.2.5.0.26.rpsRS9116X-xxx-xxx-Cxx (Silicon rev 1.5)

This release has bug-fixes, enhancements, relevant AT command updates, new SAPI features, and firmware. Most of the new features have associated APIs, which are available in the latest SAPI implementation only. It is strongly recommended to upgrade SAPI and Firmware together.

New Features#

Wi-Fi#

WPA2 Security Enhancements

WPA3 Personal Support for Station Mode

Support for Enhanced MaxPSP in Co-Ex Mode

Support for FAST PSP

WRECK Vulnerability Fixes

FragAttacks Vulnerability Fixes

PTA 3-Wire Co-Existence Support in Wi-Fi only mode (with external Zigbee and BLE)

Bluetooth - Common#

BT/BLE User Gain API support

Bluetooth - Classic#


Bluetooth - Common#

BT/BLE User Gain API support

Bluetooth - Classic#

Support for BT Advanced Audio Distribution Profile Source in Co-Ex mode. An example application project is included for the RT595 host platform. This is supported for Chip Revision 1.5 only.

Power Save#

None

General#

Support for RS9116 chip revision 1.5

Support for SDIO interface

Logging Infrastructure support for SAPI logging

802.11b Tx gain table improvements for chip revision 1.5 QMS

Chip revision 1.5 B00 certified FCC/ETSI/TELEC gain tables included

RS9116X-DB00-CCX-BXX certified TELEC gain tables included

TELEC certified

Support for examples on EFM32 (Silicon Labs MCU SLSTK3701A) platform for SDIO interface only

Certified gain tables for FCC/IC, CE and TELEC are included in the release package in the folder: .../resources/gain_tables

Changes and Fixes#

Fix for BT connectivity issue with HID profile with Windows 10 PC

New API, which allows destroying a driver task before driver de-initialization to facilitate clean termination

Fix for WLAN scan issue with error code 3 in some of the 1.3-based AA0 modules(RS9116X-SB00-AAX-XXX)

Fix for Module not responsive after few iterations of SPP profile data transfer in AT mode

Fix for SPP throughput issue

Fix for UDP Server socket issue in AP mode
New APIs

For a complete list of new APIs, see SAPI Changelog

Recommendations and New Options#

Wi-Fi#

Enable bit 16 of the 'Extended TCP IP Feature' bit map in opermode command for all Wi-Fi socket operations from host to ensure graceful handling during asynchronous closures from peer.

Enable aggregation (bit 2 of feature_bit_map) in opermode.


Enable aggregation (bit 2 of feature_bit_map) in opermode.

TCP retransmission count value should be 30 or higher, so that the TCP does not disconnect while the rejoin happens.

For low throughput applications, such as smart lock, disabling the highest MCS rates, such as MCS7 and MCS6 might help reducing packet retransmissions and ensure robust connection during heavy interference.

To restart the RS9116, the application needs to call rsi_driver_deinit() followed by rsi_driver_init() and rsi_device_init(). For OS cases, additionally call rsi_task_destroy(driver_task_handle) to delete the driver task before calling rsi_driver_deinit() and create again after rsi_device_init() using rsi_task_create().

Register 'Join Fail Callback' function every time when join is called, as in the rejoin failure path the callback is deregistered. If not done, this may result in scan not working on rejoin failure.

BT/BLE#

In BLE, the recommended range of the connection interval is as follows:Power Save (BLE Only) - 100 ms to 1.28 sBT Classic + BLE Dual Mode is >= 200 msWi-Fi + BLE coex - 30 ms to 250 ms

In BLE during connection, the configuration of scan interval and scan window with the same value is not recommended.

In BT Classic, the recommended sniff interval configuration during powersave is limited to 100 ms (<= 100).

In BLE, if a device is acting as central, the scan window (in set_scan_params and create_connection command) must be less than the existing connection interval.

In BLE mode, if scanning and advertising is in progress and subsequently gets connected and moves to the central role, scanning and advertising stops. To further establish connection to another peripheral device or to a central device, the application should - give a command for starting advertising and scanning again.


Device Power save need to be disabled before BT init and de-init.

Co-Existence#

For Wi-Fi + BLE, during Wi-Fi connection, lesser BLE scan Window and larger BLE scan Interval are recommended (1:3 or 1:4).

Wi-Fi + BLE AdvertisingAll advertising intervals are supported, as per the BT Spec. If the Wi-Fi transactions are more, you may see a slight difference in on-air advertisements compared to the configured intervals.BLE Advertising will be stopped for intervals that collide with Wi-Fi activity.

Wi-Fi + BLE scanningAll scan intervals are supported as per BT Spec. For better scan results, use scan-window and scan interval in 1:3 or 1:4 ratio when the Wi-Fi scan activity is present.BLE scanning will be stopped for intervals that collide with Wi-Fi activity.

Wi-Fi + BLE Central/Peripheral ConnectionsAll connection intervals are supported as per BT Spec.For a stable connection, use optimal connection intervals and max supervision timeout in the presence of Wi-Fi activity.

Wi-Fi + BLE Central/Peripheral Data TransferTo get better throughputs in both Wi-Fi and BLE, use medium connection intervals, such as 45 to 80 ms with maximum supervision timeout.Ensure Wi-Fi activity consumes lesser intervals.

For Wi-Fi + BT + BLE, Wi-Fi + BT, Wi-Fi + BLE operating modes, connect Wi-Fi ahead of BT/BLE connections to ensure seamless, stable connection for all 3 protocols.

For Wi-Fi + BT + BLE, Wi-Fi + BT, Wi-Fi + BLE operating modes, if BT/BLE needs to be connected ahead of Wi-Fi connection, use with high supervision timeout and high connection interval for BLE and high sniff interval for BT, to ensure seamless, stable - connection. This configuration will also ensure a stable BT/BLE connection when Wi-Fi connects/disconnects/rejoins.

Wi-Fi + BLE Central/Peripheral Data Transfer

System#