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 module will come up with the saved configuration and will go to power save without any indication to the host.

Set 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. You can configure it to 256/320/384kB by changing the macros defined in the below two 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. The wrong opermode in some cases might lead to unspecified behavior.

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

Disable power save during firmware upgrade and re-enable on upgrade completion.

Disable power save for high throughput applications.

The application needs to ensure that it sets RTC with correct timestamp when the feature is enabled before establishing the SSL connection.


Timeout value should be minimum 1 second for socket select and socket receive calls. Timeout value less than 1 second is not currently supported.

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

Known Issues#

Network Stack#

Sometimes during the SSL Handshake, the generated ECC curve parameters are incorrect, resulting in connection failure with BBD2 error. However, this recovers in the next attempt.

MQTT disconnects during firmware upgrade using OTAF, when power save is enabled. Disable power save during firmware upgrade and re-enable on upgrade completion.

Newly Added GCM Based Strong Cipher Suites will have performance issues as Hardware support is not available in the current platform.

Recommended MQTT Publish payload is 1 KB.

If the HTTP Server is configured in the module, MQTT client port should not be port configured on port 80.

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

Secure SSL Renegotiation not supported in Embedded Networking Stack.

IPv6 support is not available in this release.

Wi-Fi#

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

If the station performs the scan in concurrent mode (Wi-Fi STA+AP), it is possible for stations connected to the AP to get disconnected. Enable AP after STA connection is completed.

Issue observed with WPA2 Enterprise Connectivity using Microsoft RADIUS Server.

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

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

BT/BLE#

Wake on Wireless not supported for BLE.


BT/BLE#

Wake on Wireless not supported for BLE.

BT-HID might not inter-operate 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 interoperability issue might be observed with some headsets.

For BLE, dual role scenario issues might occur when connecting as central if the advertising is also going out for the peripheral role. Central connections can be made after the peripheral connections are established and advertising is stopped.

BLE disconnection is observed if both peer and module already have bond info and module initiating security as part of BLE secure connections. A possible workaround in the application is not to initiate a security request if the bond information is already available.

LMP timeout BLE disconnection observed with latest Realme mobile handsets.

Some of the A2DP music streaming glitches are observed if the Wi-Fi download is in progress at the same time.

Issue with EDR-3DH5 packet reception, where in bit error rate of more than 50% is observed.

Co-Existence#

In co-ex Mode if power save is enabled, it stays in enabled state even after Wi-Fi disconnection. Disable power save after every radio_init() and enable it when intended by application.

BLE may disconnect with Wi-Fi + BLE configuration and Wi-Fi continuous data transfer when the low BLE supervision timeout is configured. When the supervision timeout is configured with the value of 16 seconds, no disconnections are observed.

WiFi + BLE mode WPS is not working.

Wi-Fi +BLE/BLE only mode: For SPI as host interface, continuous BLE TX notification might cause the host interface to hang needing a hardware reset. The issue is not seen with discrete burst BLE data.


In Wi-Fi + BT/BLE configuration with Wi-Fi disconnects, BT/BLE reconnection issue is observed (see the earlier section 'Recommended Configurations and Application Development options' in this document).

Interoperability#

QoS null frames indicating going to power save if not acknowledged by AP may cause AP not to sync with the power save state, resulting in possible disconnections.

If 3rd party access points are periodically not sending beacons, in some scenarios unicast probe requests are not sent from the module, as expected, which might result in disconnections.

System#

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

Sometimes the module goes to power save before the configured monitor interval for inactivity whenn Co-Ex mode is configured.

Wake on Wireless support is tested only for UART AT command interface.

Power save without RAM retention is not working for the SPI interface.

FTP Client application is not working with EFx32/STM32 in the OS scenario. The demo app to be tested only for non-OS scenario.

HTTP OTAF Application is not working with EFR32 and EFM32 in OS scenario. The demo app to be tested only for Non-OS scenario on EFR32.

Firmware upgrade for both OS and non-OS scenarios is not working for EFM32 application.

Limitations and Unsupported Features#

Wi-Fi/Network Stack#

AMSDU TX is not supported.

Fragmentation is not supported.

AMSDU's within AMPDU is not supported.

Currently, the module does not support Radio Measurement Requests feature of CCX V2

802.11k is not supported

Short GI is not supported

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


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

802.11J channels less than 16 are not supported.

USB host interface and USB Power save are not supported.

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.

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

SSL Curve IDs supported are 15-28. SSL handshake with 3rd party clients depends on the SSL Curve ID.

BT/BLE#

BT A2DP is supported on chip version 1.5 only

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 (i.e., Central/Peripheral + Advertising/Scanning) are not supported.

BLE maximum 2 concurrent connections are supported, which 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 during Wi-Fi connection, if both BLE scan interval and window are the same, an issue will occur in successfully making the Wi-Fi connection.


For AT commands, Wi-Fi + BT + BLE (Opermode 9) B + BLE (Opermode 8) are not working. However, BT, Wi-Fi + BT modes (Opermode 5) works fine. Also, all combinations work fine with SAPI.

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

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

SDK Refactor#

The SDK folder structure and names were significantly changed in the 2.4 release. For detailed information, see SAPI Changelog

WiSeConnect 2.4.1 Release Notes#

Last updated: September 10, 2021

Highlights#

FragAttack vulnerability fixes

Wi-Fi Interoperability issue fixes

Release Details#

Item

Details

Release date

September 1, 2021

API Version (SAPI)

2.4.1 (Build 16)

Firmware Version

2.4.1.0.16 (Build 16)

Package Name

RS9116W.2.4.1.16

Supported RTOS

FreeRTOS

Hardware Modules/Chipsets

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

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.4.1 release consists of two components

Firmware - RS9116 Firmware Binary

SAPI Library - SAPI Library runs on Host

This release has bug-fixes and Firmware. It is strongly recommended to upgrade SAPI and Firmware together.


Changes and Fixes#

Fix for FragAttack Vulnerabilities

Fix for issues on Swyentooth Vulnerability fixes

Fix for few Wi-Fi interoperability issues with certain Access Points

Fix for issue in BLE local attribute setting, when notification not enabled in remote, resulting in error 4046

Fix for issue in AP mode, switching to 5 GHz band results in 0x5B error

Fix for UDP Asynchronous socket not storing and providing remote IP and Port information

Fix for Wi-Fi low RF transmit power output issue for AA0 modules

Fix for ping failure after reconnection to AP in concurrent mode

Fix for HTTP OTAF upgrade failing in subsequent iterations if first iteration fails due to network connections resulting in 0xBBED error

Fix for issue with BLE connection 2nd iteration onwards after connect/disconnect when remote device is advertising as connectable

Fix for issue of BT disconnection with continous SPP_rx traffic, sometime due to LMP timeout

Known Issues#

FragAttack Vulnerability CVE-2020-24588: Aggregation Attack (accepting non SPP A-MSDU frames) is not addressed in this release, as this needs a change in specification

FragAttack Vulnerability CVE-2020-26146: Aggregation Attack (reassemble fragments with non-consecutive packet numbers) is not addressed in this release

Workarounds#

CC0/CC1 Host Interface Detection at Low Temperatures#

One or more of the serial host interfaces of RS9116 CC0/CC1 modules may fail to respond to host detection at ambient temperatures lower than approximately -20 degC.
Execute the following sequence of commands to adjust the module calibration to workaround this issue.

1
#define BURN_XO_FAST_DISABLE

rsi_wireless_init

// Set the operating mode of the module

rsi_wlan_radio_init

// Set the operating band and initialize the module

rsi_calib_write


// Set the operating band and initialize the module

rsi_calib_write

(BURN_INTO_FLASH

, BURN_XO_FAST_DISABLE

// Trigger the calibration write process to update the

// information in flash and wait for a response from the firmware.

Note!

The workaround must be executed at room temperature, ~25 degC.

The command sequence must be executed once ONLY.

Ensure the power supply to the module is stable while issuing commands.

The workaround is needed for existing products/boards already mounted with CC0/CC1 modules only.

Once executed, the module must be power-cycled before it can be used for normal operation.

WiSeConnect 2.4 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#

Azure and AWS cloud connectivity support

SweynTooth vulnerabilities fixes

Strong cipher suite support

Co-Existence Algorithm Enhancements

EN 300 328 v.2.2.2 certification support

TELEC certification support

Wi-Fi interoperability fixes and enhancements

Crystal calibration support (Needed for RS9116 QMS)

Significant reorganization and refactoring of the SDK

Integrated support for EFR32MG21 hosts and Simplicity Studio

Release Details#

Item

Details

Release date

June 30, 2021

API Version (SAPI)

2.4.0 (Build 36)

Firmware Version

2.4.0 (Build 36)

Package Name

RS9116W.2.4.0.36

Supported RTOS

FreeRTOS

Hardware Modules/Chipsets

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

Operating Modes Supported


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.4 release consists of two components

Firmware - RS9116 Firmware Binary

SAPI Library - SAPI Library runs on Host

This release has bug-fixes, enhancements, 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#

Azure support for cloud connectivity

AWS support for cloud connectivity

Support for dynamic switching between AP and STA mode of operation (see  config_feature_bit_map[16])

Support for loading certificate without requiring a reboot of the chip

Configurability option for disabling transmit Data rates MCS5, MCS6 and MCS7

Support for stronger cipher suites

Support for enhanced max-PSP mode for better interoperability, see config_feature_bit_map[26] and refer to API rsi_wlan_power_save_profile(). This PSP type is supported for STA-only mode.

Enhancements for better interoperability. Keep alive configuration, graceful closure of previous WLAN connections.

Enhancements to Wi-Fi Auto Rate adaptation algorithm

Enhancements to Wi-Fi + BLE Co-Existence support

Improvements to Wi-Fi + BLE provisioning examples

Bluetooth - Common#

Resolution to SweynTooth family of BT vulnerabilities

Bluetooth - Classic#

Support for BT Advanced Audio Distribution Profile Source (BT alone mode only). Example Application project included for RT595 host platform

Power Save#

Fixes for functional issues in power save mode at high temperature, 85°C

General#


Fixes for functional issues in power save mode at high temperature, 85°C

General#

WLAN EN 300 328 v.2.2.2 ETSI Certification Compliance support added for the following modules and SoC Versions: B00 1.4, QMS 1.3, QMS 1.4, CC0/CC1 1.3, CC0/CC1 1.4, and AA0/AA1 1.3

Certified gain tables are added for these modules for different antennas, which can be configured using the user gain Table API for Wi-Fi and rsi_bt_set_antenna_tx_power_level() API for BT/BLE. Default firmware configuration is for the internal PCB/Chip AntennaB00: Internal antenna (Fractus FR05-S1-N-0-102) and Dipole antenna (Taoglas GW.34.5153)CC0/CC1 1.4 FCC/ETSI: Dipole Antenna (GW.71.5153), dipole Antenna (Inside WLAN PRO-IS 299), PCB antenna (RSIA7), PIFA antenna (Smarteq 4211613980), PIFA antenna (MARS-31A8 Wi-Fi antenna)CC0/CC1 1.3 : PCB antenna , dipole antennaAA0/AA1-1.3: chip antenna, Heavy-duty screw mount antenna

TELEC certification support

Support for chip manufacturing software (Crystal Calibration support for RS9116 QMS chip integration)

Support for examples on the EFR Platform

Package and documentation restructure

Changes and Fixes#

Fixes for memory leak in SSL, ensuring stability for longer connection

Resolved issue with TCP long data transfer with low power configuration for memory configuration greater than 256k.

Fix for setting device local name for BLE

Fix for rsi_ble_white_list_using_adv_data() failure


Fix for rsi_ble_white_list_using_adv_data() failure

Fix for store config/auto-config keep-alive timeout not working.

Fix for HID Keyboard notifications not being seen on the iOS mobile side

Configurability support in Firmware update APIs for the SAFE and FAST upgrade

Mishandling of SDIO interrupts addressed in SAPI driver by calling rsi_hal_intr_pin_status() API. MCU HAL APIs will need to port this API for respective platform. Refer to SAPI porting guide for more information.

Boot up Issue at low temperature (refer to API rsi_calib_write() Bit of 3)

New APIs#

For a complete list of new APIs, see SAPI Changelog

Recommendations and New Options#

Wi-Fi#

It is recommended to 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.

Aggregation (bit 2 of feature_bit_map) is recommended to be enabled in opermode.

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

For low throughput applications, such as a 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 module, 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 might result in a scan not functioning on rejoin failure.

BT/BLE#

In BLE, recommended range of Connection Interval inPower Save (BLE Only) - 100 ms to 1.28 s.BT Classic + BLE Dual Mode is >= 200 ms.Wi-Fi + BLE coex - 30 ms to 250 ms

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

In BT Classic, recommended Sniff Interval configuration during Power Save 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 the advertising intervals are supported, as per the BT Spec. If the Wi-Fi transactions are more, you may observe 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 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#

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 module will come up with the saved configuration and will go to power save without any indication to the host.

Set Optimization level to O0 in project settings for IDE (KEIL).


Set 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. Users can configure it to 256/320/384kB by changing the macros defined in the below two filesIn 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. The wrong opermode in some cases might lead to unspecified behavior.

Set the recommended Power Save Profile (PSP) type to Enhanced Max PSP for Wi-Fi alone mode and MAX PSP for Wi-Fi Co-Ex Modes.

Disable power save during firmware upgrade and re-enable on upgrade completion.

Disable power save for high throughput applications.

The application needs to ensure that it sets RTC with correct timestamp when the feature is enabled before establishing the SSL connection.

Timeout value should be minimum 1 second for socket select and socket receive calls. Timeout value less than 1 second is not currently supported.

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

Known Issues#

Network Stack#


Known Issues#

Network Stack#

MQTT disconnects during firmware upgrade using OTAF, when power save is enabled. Disable power save during firmware upgrade and re-enable on upgrade completion.

Newly Added GCM Based Strong Cipher Suites will have performance issues as Hardware support is not available in the current platform.

Recommended MQTT Publish payload is 1 kBytes.

If HTTP Server is configured in the module, MQTT client port should not be port configured on port 80.

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

Secure SSL Renegotiation not supported in Embedded Networking Stack.

IPv6 support is not available in this release.

Wi-Fi#

If the station performs the scan in concurrent mode (Wi-Fi STA+AP), it is possible for stations connected to the AP to get disconnected. Enable AP after STA connection is completed.

Issue observed with WPA2 Enterprise Connectivity using Microsoft RADIUS Server.

If BG Scan is enabled along with custom feature bit map bit (8) configuration of the DFS Channel support, issues may occur in getting IP address for the Wi-Fi STA.

BT/BLE#

Wake on Wireless not supported for BLE.

BT-HID might not inter-operate with Apple devices.

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

Continuous data transfer on SPP (Rx/Tx) with packet size ~800 bytes in some scenarios might lead to BT disconnection. Introduce delay in between transfers to work around this issue.

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 interoperability issue might be observed with some headsets.


BT-A2DP interoperability issue might be observed with some headsets.

For BLE, dual role scenario issues might occur when connecting as central if the advertising is also going out for the peripheral role. Central connections can be made after the peripheral connections are established and advertising is stopped.

Co-Existence#

In Co-Ex Mode if power save is enabled, it stays in enabled state even after Wi-Fi disconnection. Disable power save after every radio_init() and enable it when intended by application.

BLE may disconnect with Wi-Fi + BLE configuration and Wi-Fi continuous data transfer when the low BLE supervision timeout is configured. When the supervision timeout is configured with the value of 16 seconds, no disconnections are observed.

WiFi + BLE mode WPS is not working.

Wi-Fi +BLE/BLE only mode: For SPI as host interface, continuous BLE TX Notification might cause the host interface to hang needing a hardware reset. The issue is not seen with discrete burst BLE data.

In Wi-Fi + BT/BLE configuration with Wi-Fi disconnects, BT/BLE reconnection issue is observed (see the earlier section 'Recommended Configurations and Application Development options' in this document).

Interoperability#

QoS Null frames indicating going to Power Save if not acknowledged by AP may cause AP not to sync with the power save state, resulting in Possible disconnections.

If 3rd Party Access Points are periodically not sending beacons, in some scenarios unicast probe requests are not sent from the module, as expected, which might result in disconnections.

System#

A known issue exists with FAST-PSP mode. Use Enhanced MAX-PSP power save.

Wake on Wireless support is tested only for UART AT command interface.


Wake on Wireless support is tested only for UART AT command interface.

802.11b transmit power of some AA0 modules might be 4 dBm less than that mentioned in data sheets. As a result, connectivity issues might be observed at 2.4 GHz when the AP is far.

Power Save without RAM retention is not working for the SPI interface.

Limitations and Unsupported Features#

Wi-Fi/Network Stack#

AMSDU TX is not supported.

Fragmentation is not supported.

AMSDU's within AMPDU is not supported.

Currently, the module does not support Radio Measurement Requests feature of CCX V2

802.11k is not supported

Short GI is not supported

802.11w is not supported

40 MHz bandwidth in 2.4 GHz band is not supported.

802.11J channels less than 16 are not supported.

USB host interface and USB Power save are not supported.

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.

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

SSL Curve IDs supported are 15-28. SSL handshake with 3rd party clients depends on the SSL Curve ID.

BT/BLE#

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 (i.e., Central/Peripheral + Advertising/Scanning) are not supported.


BLE maximum 2 concurrent connections are supported, which 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

User Gain Table API is not available for BT/BLE Path. Limit the BT/BLE TX power for a specific antenna using rsi_bt_set_antenna_tx_power_level API.

Co-Existence#

In Wi-Fi + BLE during Wi-Fi connection, if both BLE scan interval and window are the same, an issue will occur in successfully making the Wi-Fi connection.

For AT commands, Wi-Fi + BT + BLE (Opermode 9), BT + BLE(Opermode 8) are not working. However, BT, Wi-Fi + BT modes (Opermode 5) works fine. Also, all combinations work fine with SAPI.

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

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

SDK Refactor#

The SDK folder structure and names were significantly changed in the 2.4 release. For detailed information, see SAPI Changelog

Terminology#

Term

Description

New Features

These items are new to this release

Changes/Issues Fixed

Changes made to existing features found in previous releases of the software.

Enhancements to existing product flow and feature set.

Bug fixes done in the Release

Deprecated Items

Features or functions or APIs that are removed from the distributed release to align with the software roadmap

Known Issues


Known Issues

Features or functions that do not work as planned at time of release. Workarounds may be offered to meet short term development goals, but longer-term solutions will be added in future software releases

Limitations/Recommendations

Describes the limitations on product usage and recommendations for optimal use cases


You are viewing documentation for version: 2.6   (latest)  | 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: 5.0 (latest) | Version History

Silicon Labs Real-Time Locationing (RTL) Library

Release Notes | Downloads

Introduction

Bluetooth 5.1 introduces support for Direction Finding by adding the option to send and receive Constant Tone Extensions (CTEs) after Bluetooth packets. This makes it possible to do phase measurements on antenna arrays and ultimately to determine the direction of an incoming signal. To learn more about the theory of Direction Finding and how to determine the direction of incoming signals, see UG103.18: Bluetooth® Direction Finding Fundamentals.

Beginning with Bluetooth SDK v3.0, Silicon Labs’ Bluetooth stack supports CTE transmitting and receiving features and can take phase measurements on the incoming signal as specified by the Bluetooth standard. Note, however, that the determination of the angle of incidence from the phase measurements is outside of the scope of the standard and must be implemented in the application. To reduce the Time to Market for its customers, Silicon Labs also offers a reference implementation of a Bluetooth-based Real Time Locating System (RTLS), which provides both an out-of-box experience to evaluate the solution and a flexible framework that makes it possible for everyone to create their own RTLS. To get started with the reference implementation, refer to AN1296: Application Development with Silicon Labs’ RTL Library.

Users can also employ custom direction-finding algorithms on top of the Bluetooth stack. This requires deep knowledge in Direction Finding but enables even more flexibility. If you choose this approach, see AN1297: Custom Direction-Finding Solutions using Silicon Labs’ Bluetooth Stack.

The Silicon Labs Direction Finding solution is part of the Bluetooth SDK. If you are not yet familiar with the Silicon Labs Bluetooth SDK, start with QSG169: Bluetooth® SDK v3.x Quick-Start Guide.


Finally, whether you use Silicon Labs’ Direction Finding board or your own design, AN1195: Antenna Array Design Guidelines for Direction Finding provides useful information regarding antenna design. It also provides accuracy measurement results of the RTL library used with Silicon Labs’ Direction Finding board.

For more information and to get started with Bluetooth Direction Finding, see QSG175: Silicon Labs Direction Finding Solution Quick-Start Guide.

Real Time Locating (RTL) Library

Estimating the Angle of Arrival (AoA) or Angle of Departure (AoD) from IQ samples is not trivial, especially in a real environment full of reflections. To optimize development and to speed up time-to-market, Silicon Labs provides a Real Time Locating library (RTL lib), which processes the IQ samples received from the Bluetooth stack, implements multipath detection and azimuth and elevation calculation, and exposes the data to the application via an open API.

Silicon Labs RTL Library Providing Azimuth and Elevation

Furthermore, the library can also estimate the location of a tracked asset in a multi-locator scenario using triangulation, where multiple locators receive CTEs from the same asset tag, provided that the library knows the position of each locator. In this case, the positions of the locators and the estimated angles (AoA) serve as the input, and the estimated location is the output.

Silicon Labs RTL Library Providing X, Y and Z

After the positions are estimated, user’s application has to determine how to process data.

The RTL library provides the following features:

Direction Finding Method

AoA

# of tags supported

infinite (lib needs to be initialized for each, and physical channel puts a limitation on this)

# of locators supported

100

Antenna arrays supported

4x4 URA, 3x3 URA, 1x4 ULA antenna arrays on Silicon Labs Antenna Array board

Modes of operation


Modes of operation

Single shot / Real time,Fast response / Basic / High accuracyAzimuth & elevation / Azimuth only

Supported platforms

Windows x64, Ubuntu x64, Raspbian (Cortex A), Darwin x64

The RTL library is provided as a single static library for each supported platform. The library can be found in the Gecko SDK suite under:
C:\SiliconLabs\SimplicityStudio\v5\developer\sdks\gecko_sdk_suite\v3.3\util\silicon_labs\aox

The library has three API classes, as follows:

Angle of Arrival / Departure (sl_rtl_aox): API used for AoA/AoD estimation from IQ samples. (Currently only AoA is supported.)

Location Finding (sl_rtl_loc): API used for location estimation (x, y, z coordinates) from AoA/AoD.

Utility Functionality (sl_rtl_util_): API grouping utility functions that may be useful during AoA/AoD/location estimation

An IQ Sample Quality Analysis API is also available inside the Angle of Arrival / Departure and Utility Functionality classes to provide analytical measurements of different errors in the system.

Angle of Arrival / Departure

Bluetooth has two direction-finding methods: Angle of Arrival (AoA) estimation and Angle of Departure (AoD) estimation. Currently, the RTL library supports AoA mode only. In this mode, the transmitter transmits a constant tone on a single antenna, and the receiver receives this signal on multiple antennas. Based on their spatial situation, the receiver antennas will receive the same signal with different phase offsets, from which the direction of the incoming signal can be estimated.

Angle of Arrival


Angle of Arrival

While it is easy to estimate the Angle of Arrival in an environment free of noise and reflections, it can get quite challenging in a noisy real-world environment with a lot of reflections. To mitigate the effects of reflections, the RTL library uses different methods, such as spatial and temporal filtering, averaging over multiple frequencies, and so on.

Location Finding

If there are multiple fixed-position locators that can calculate the direction of the transmitter (asset tag), the position of the asset tag can be calculated from the angles using triangulation. In addition to the Angle of Arrival estimation, the RTL library also provides location finding functionality. After the library learns the position of each locator and gathers the angles from each locator, it can provide a position estimation for asset tags. Just as for AoA estimation, challenges introduced by the reflective and noisy environment are addressed.

Location Finding

IQ Sample Quality Analysis

Errors from multiple sources can affect the quality of the received IQ samples. In a real-life environment, some phenomena are considered as normal and not errors, but can also corrupt the perceived IQ data. The most notable example of this is the multipath propagation, which twists the perceived magnitude and phase of the IQ sample data. Its extent depends on the particular antenna location in the array as well as the position and the angle of the followed tag related to the locator antenna array.

The possible sources for the perceived noise may include the following:

Radio receiver analog noise

Quantization noise from the sampling

Leaking signals from the surrounding channels folding into the band of interest

Sampling jitter that translates into noise

Other radio protocols operating on the same band

Cosmic background noise

And so on ….


Other radio protocols operating on the same band

Cosmic background noise

And so on ….

In other words, there are a plenty of sources for signal noise even in relatively good conditions. In addition to the calculation of Angle of Arrival and position estimations, the RTL library also provides functionality called IQ sample quality analysis to help developers find the root cause of angle estimation issues by analyzing statistical properties of the IQ samples.

Real Time Locating System (RTLS) Reference Implementation

Although it is up to developers to determine how the RTL library is used in the application, Silicon Labs offers a reference implementation of a Bluetooth-based Real Time Locating System (RTLS), which provides both an out-of-box experience to evaluate the solution and a flexible framework that makes it possible for everyone to create their own RTLS. The general architecture of this reference RTLS, using Silicon Labs RTL library, looks like this:

General RTLS Architecture as Implemented in the Bluetooth SDK

All AoA related sample apps in the Bluetooth SDK are created so that they support this model. To learn more about the sample apps, see  AN1296: Application Development with Silicon Labs’ RTL Library.

Note that on the Locator side the devices work in a Network Co-Processor (NCP) mode, that is, the stack runs on the EFR32 chip, but the application runs on a host computer. Currently, due to the limited computational capacity of the EFR32 chips, only NCP mode is supported, that is the RTL library cannot be used on the chip. To learn more about NCP mode, see AN1259: Using the v3.x Silicon Labs Bluetooth® Stack in Network Co-Processor Mode.


The locators can connect to the central PC in many ways. Silicon Labs’ reference implementation uses MQTT to collect angle data from locators, since it gives the flexibility to run the host sample apps on a distributed network as well as on a single PC using localhost, but other implementations can also be used.


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

About the Launcher#

This section provides a reference to the functionality available in Simplicity Studio® 5 (SSv5) when you first open the application. This first perspective is called the Launcher perspective. A "perspective" is an Eclipse term for an initial arrangement of views and an editor area.

1 - Welcome and Device-Specific Tabs: The Welcome page includes a Get Started section to help with target kit, board, or device selection.  The Learn and Support section may be expanded to show some of the reference and support resources available. Once a device is connected and/or selected, device-specific tabs provide access to example projects, documentation, and so on.

2 - Debug Adapters: Silicon Labs kits and supported debug adapters (for example, SEGGER J-Link products). The icon to the left of the debug adapter item indicates if it is connected over USB or Ethernet.

3 - My Products: Shows an editable list of products that you may want to use as target devices to set the Launcher's context. Use this view to select target devices when you don't have a kit available.

4 - A top-level menu provides access to a number of functions, including configuration options and help. A toolbar offers access to tools and functions on the left and shortcuts to different perspectives on the right.

5 - The Launcher perspective also provides additional functions across the bottom of the perspective:

Log in menu. Here you can:Log in or outRegister a software development kit.Change usersClear stored credentials

Garbage collection status and clear function. Click the trash can to run the garbage collector. This releases memory that may not have been released automatically. You should not need to use this function during normal operation.  To turn the display off, go to Preferences > General and uncheck Show heap status.


6 - A perspectives tool bar in the top right shows open perspectives and allows you to open others.

Click Open Perspective to see a list of available perspectives. The perspectives list is similar to that available through the Window > Perspective menu selection.

Right-click an open perspective to see the context menu. While you can customize the perspective through the Customize menu option (see Help > Help Contents > Workbench User Guide for more information), you can also customize a perspective by dragging views and opening and closing views. These changes are persistent and survive closing and reopening a perspective. Click Reset to restore the perspective to its default settings.

Not all functions available through the Launcher perspective are relevant to developing for all target devices. The Developing for ... pages highlight the key pieces for each device category.


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

About the Simplicity IDE#

The Simplicity Studio® 5 (SSv5) Simplicity Integrated Development Environment (IDE) perspective is designed to support code editing, downloading, and debugging for EFR32 devices and modules and EFM32, EFM8, and 8051 devices.

These pages review the Simplicity IDE User Interface, discuss how to import and export projects, and explore the features supporting code editing.


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

Building and Flashing#

These pages describe:

How to compile or build software into a binary image

How to configure additional build steps using the  Post-Build Editor to make customized binary images

How to load or flash that application image onto a connected device


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

Developing for 8‑Bit Devices#

Hardware Configurator (Configurator) for 8-bit devices is part of Simplicity Studio® 5 (SSv5) and greatly simplifies EFM8 and C8051 MCU peripheral initialization by presenting peripherals and peripheral properties in a graphical user interface.

The 8051 SDK contains an extensive and nearly comprehensive set of examples for 8-bit MCU peripherals for each supported device family. These examples show simple use cases for each peripheral, and can be used as building blocks for larger systems incorporating multiple peripherals, or as a starting place for applications requiring each peripheral. Projects based on these examples are customized by changing code as described in About Projects and by updating peripheral configuration using the 8-bit Hardware Configurator.

In Hardware Configurator, most of the initialization firmware can be generated by selecting peripherals and property values from combo boxes or entering register values in text boxes. Some peripherals provide calculators, such as baud rate, timer overflow rate, and SPI clock rate, that can be used to automatically confirm the necessary reload register value to generate the specified clock rate. Hardware Configurator also provides real-time property validation to ensure that a configuration is valid before downloading code to the MCU.


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

Getting Started#

To get started with Simplicity Studio® 5 (SSv5):

Install SSv5 and development software

Explore the main features of SSv5

Start a project

You do not need hardware to install SSv5 and the relevant software packages or, for 32-bit devices, to explore the project configuration interface for a particular SDK. However, having your target hardware connected during installation ensures that your SSv5 installation is configured precisely for your environment.

You should also have an account set up in the Silicon Labs Customer Support Portal. Access to some software packages is controlled by your customer profile.

See Prerequisites for more information.

If you have features or functions that are provided as an SDK extension, you need to install it separately after you have installed the main SDK. See Install SDK Extensions for more information.


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

Simplicity Studio® 5 User's Guide#

Simplicity Studio is the core development environment designed to support the Silicon Labs IoT portfolio of system-on-chips (SoCs) and modules. It provides access to target device-specific web and SDK resources; software and hardware configuration tools; an integrated development environment (IDE) featuring industry-standard code editors, compilers and debuggers; and advanced, value-add tools for network analysis and code-correlated energy profiling.

Simplicity Studio is designed to simplify developer workflow. It intelligently recognizes all evaluation and development kit parts released by Silicon Labs and, based on the selected development target, presents appropriate software development kits (SDKs) and other development resources.

Simplicity Studio 5 (SSv5) focuses on developer experience, leveraging feedback from customers, employees and competitive reviews. Developers of all experience levels will benefit from an optimized workflow that supports them through the development journey and produces quicker project progression and device configuration.

The Simplicity Studio 5 User's Guide pages are organized into the following groups.

Getting Started describes how to install SSv5 and the relevant development resources, and provides general overviews of using the SSv5 interface and of developing projects in SSv5. If you are new to SSv5, start here.

About the Launcher is a reference guide to the features and functions available when you first open SSv5. This is a general reference, although some items may not be applicable to all devices.

About the Simplicity IDE is a reference guide to the features and functions in the Simplicity integrated development environment. This is a general reference, although some items may not be applicable to all devices.

Developing for 32-Bit Devices provides instructions and reference material for 32-bit device development in the two development environments: Project Configurator and AppBuilder.


Developing for 8-Bit Devices provides instructions and reference material for 8-bit device development using the Hardware Configurator.

Building and Flashing describes how to compile and flash images to various device types.

Companion IDEs: Visual Studio Code discusses how to generate project code in Simplicity Studio 5 to then be used in the VS Code IDE.

Testing and Debugging outlines tools and strategies for testing your applications on Silicon Labs devices.

Using the Tools is a reference guide to the various tools packaged with SSv5. Not all tools are applicable to every development path. Their specific use is described in the individual Developing for pages.


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

Testing and Debugging#

This section provides information on testing and debugging application firmware.

Overview and Resources reviews the tools that are available and additional documentation.

Using the Debugger provides details on Simplicity Studio's built-in debuggers.

Using Wireshark describes how to connect a device to the Wireshark packet analyzer.


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

Companion IDEs: Visual Studio Code#

With the Simplicity Studio 5 (SSv5) 5.6.0.0 release, Silicon Labs is introducing beta level support for using Visual Studio Code (VS Code) in combination with SSv5. To add this support, a VS Code extension is also being released. It can be either downloaded directly from the VS Code extension marketplace or with this link: https://marketplace.visualstudio.com/publishers/silabs

SSv5 is still required to create the initial project and to make project changes with the Project Configurator, but when you are using the Visual Studio Code-Compatible project generator, all editing, building, and debugging of the project should be done in VS Code. In other words, do not try to build the project in both Simplicity Studio and in VS Code.

Using the VSCode project Generator#

The Project Configurator includes a new “Visual Studio Code Compatible Project (Beta)” project generator. Once the project is created, from the Project Configurator Overview tab click Change Target/SDK/Generators and enable the VS Code generator.

Click Save and the project is generated, including three new files to support development in VS Code.  If a popup dialog appears asking what to do with some project configuration files, leave the setting at the default “Keep my file” and click OK.  The three VS Code support files are <projectname>.vscode.Makefile, <projectname>.vscode.project.mak and vscode.conf.


Make any other project configurator changes to the project and then the project can be continued in VS Code.  Once you begin using VS Code for development, it is not recommended to build the project in SSv5. However, before any changes have been made in VS Code, you can verify that it builds in SSv5 before continuing development in VS Code.

The VS Code generator is Gecko SDK Suite (GSDK)-independent. This means it can be used with any 4.x.x GSDK. It has been functionally tested with at least, GSDK 4.0.2, GSDK 4.1.3 and GSDK 4.2.0.

Using the Project in VS Code#

Preparing VS Code for Silicon Labs Support#

To use VS Code for development with Silicon Labs projects, VS Code must first be downloaded and installed from the Visual Studio website (Download Visual Studio Code). Then the Silicon Labs extension must be installed either from within VS Code by clicking on the Extensions icon and then searching the Marketplace for “Simplicity Studio for VS Code” or by downloading the extension as a .vsix file from https://marketplace.visualstudio.com/publishers/silabs and then adding it to VS Code by clicking the three dots next to EXTENSIONS and selecting Install from vsix….

Installing the Simplicity Studio for VS Code extension will also install other extensions it depends on: C++ Extension Pack and Cortex-Debug.  VS Code is now ready to add the Silicon Labs project from the earlier step.

Adding a VS Code-Enabled SSv5 Project to VS Code#

You can add a project to VS Code in two ways.

Use File > Open Folder… and browse to the project folder in the Simplicity Studio workspace (default workspace is v5_workspace) or the source-controlled project folder.


Use File > Add Folder to Workspace… and again browse to the project folder. This second method is recommended, especially if working with multiple projects. This will place the folder in an untitled workspace. Select File > Save Workspace As… and select a folder and name for the workspace.  The VS Code workspace should be saved outside of the Simplicity Studio workspace folder in a folder dedicated to VS Code workspaces. Subsequent projects can be added to this open workspace using File > Add Folder to Workspace….

After adding two projects to a workspace VS Code looks like this:

The source files can be edited, and additional files added to the projects. When ready to build the project, select the project build configuration ('all' is the default for now) in the SILICON LABS SUPPORT section and the icons for three support options (build – wrench, flash – down arrow, debug – bug icon) are displayed.

Builds will use make along with the two generated make files and the GNU ARM GCC toolchain specified when the project was created in SSv5. All files and folders in the project folder will be compiled (including user-added source files).

Flash will flash the project .hex file to the target board using Simplicity Commander. The Output console window will display the progress of the flash operation.

Debug will start a debug session using the Segger GDB Server and the GNU ARM GDB Client. The normal options to step through the program, set breakpoints, and examine variables and registers are all supported. The debug control icons are highlighted in the red box in the following figure.


Note: The vscode.conf file is used as the ‘glue’ file between the project configuration of the Simplicity Studio-installed resources and the Silicon Labs VS Code extension. The links in this file are used by the Silicon Labs VS Code extension to find the associated tools necessary for building, flashing, and debugging the project. It is not meant to be manually edited.
Note for Matter developers: After you have generated your project in Simplicity Studio and added it to VS Code Workspace, Silicon Labs has provided four VS Code tasks to facilitate developing Matter projects in VS Code. See the Matter documentation on https://docs.silabs.com for more information.


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

USB Device

USB is one of the most successful communication interfaces in the history of computer systems and is the de facto standard for connecting computer peripherals.
Silicon Labs USB Device stack is a USB device module designed specifically for embedded systems. Built from the ground up with Silicon Labs’ quality, scalability, and reliability, it has gone through a rigorous validation process to comply with the USB 2.0 specification.
This documentation describes how to initialize, start, and use Silicon Labs USB Device stack. It explains the various configuration values and their uses. It also includes an overview of the technology, types of configuration possibilities, implementation procedures, and examples of typical usage for every available class.

To help you understand the USB concepts quickly, the documentation features many examples of USB with basic functions. These examples will provide you with a framework that allows you to build devices quickly. These examples include:

USB-to-serial adapter (Communications Device Class)

Mouse or keyboard (Human Interface Device Class)

Removable storage device (Mass Storage Class)

Custom device (Vendor Class)

The following is the overview of the documentation sections:

Specifications and Features

USB Device Configuration

USB Device Programming Guide

USB Device Classes
CDC ACM ClassHID ClassMSC SCSI ClassVendor Class

USB Device Troubleshooting

Microsoft Windows OS USB Host


Wi-Fi Transceivers & Modules

This page contains documentation for WFx200 based Wi-Fi ICs and Modules. For RS9116 documentation, see RS9116 Wi-Fi/Bluetooth Solutions.

RS9116 Family: Wi-Fi/Bluetooth Solutions

See RS9116 Wi-Fi/Bluetooth Solutions.

WF Series: Wi-Fi Transceiver ICs

A cost-effective and scalable Wi-Fi transceiver family that is targeted at high-volume IoT applications and offers
support for both low- and high-end microcontrollers. A scalable software architecture suits both RTOS and Linux environments.

WF200 Wi-Fi Transceiver

Hardware

Data Sheets

Application Notes

Guides & Manuals

WF200 Wi-Fi Expansion Kit

Software

Wi-Fi LMAC Driver for Linux

Wi-Fi FMAC Driver for MCU

WFM Series: Wi-Fi Transceiver Modules

Building upon the WF200, the certified WFM200 SiP further integrates both the antenna and antenna matching along with a temperature compensated crystal for extended operation up to 105 °C.

WFM200S Wi-Fi Transceiver Module

Hardware

Data Sheets

Application Notes

Guides & Manuals

WFM200S Wi-Fi Expansion Kit

Software

Wi-Fi LMAC Driver for Linux

Wi-Fi FMAC Driver for MCU

WGM Series: Wi-Fi Modules with Apps Processor

The WGM160P contains a WF200 transceiver and a Gecko EFM32 microcontroller which combined provide advanced low-power IoT connectivity. The WGM160P can be used with the Wi-Fi FMAC driver for MCU for an open architecture approach.

WGM160P Wi-Fi Module

Hardware

Data Sheets

Application Notes

Guides & Manuals

WGM160P Wi-Fi Module Starter Kit

Software

Wi-Fi FMAC driver WGM160P example

Gecko OS Documentation