Developer Guide#
The following is a list of recommendations and new options:
Wi-Fi#
Enable aggregation using the opermode parameter to improve throughput feature_bit_map[2].
Disable high MCS rates to improve connection robustness for low-throughput applications in congested networks. For instance, turning off
MCS6andMCS7helps improve Smart Lock performance in a congested wireless environment.To restart the RS9116, the application must call
rsi_driver_deinit(), followed byrsi_driver_init()andrsi_device_init(). For OS cases, also call rsi_task_destroy(driver_task_handle) to delete the driver task before calling rsi_driver_deinit(). After rsi_device_init(), create the task again by calling rsi_task_create().To prevent interoperability issues and connection failures, it is advisable to disable powersave mode before establishing a Wi-Fi connection.
Network Stack#
To ensure graceful handling during asynchronous TCP closures from a peer, enable the opermode parameter ext_tcp_ip_feature_bit_map[16].
To avoid TCP disconnects during a rejoin, set TCP retransmission count to >=
30.A new API,
rsi_network_app_protocol_config(), has been implemented to configure network application protocols, such as cipher selection for HTTP protocol.Randomize the client port when rapidly connecting and disconnecting an MQTT session on the same client port with powersave enabled.
If HTTP server functionality is enabled, do not use port 80 for the MQTT client.
The recommended payload size for embedded MQTT Publish messages is 1 kB.
BT Classic/BLE#
The following are the recommended ranges for the BLE Connection Interval:
Powersave (BLE only) - 100 ms to 1.28 s
BT Classic + BLE Dual Mode is >= 200 ms
Wi-Fi + BLE coex - 30 to 250 ms
During a BLE connection, it is not recommended to configure the scan window and scan interval with the same value.
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(), andcreate_connection()APIs) must be less than the existing connection interval.In BLE mode, when scanning and advertising are in progress and the device connects and switches to the central role, both scanning and advertising stop. Furthermore, to connect to another peripheral or central device, the application must initiate advertising and scanning again.
Device powersave must be disabled prior to BT initialization and deinitialization.
It is recommended to maintain a delay of 5 seconds before calling switch_proto to clear background functions in the firmware.
The BLE peripheral latency value is valid up to 32.
The maximum supported AE data length is 200 bytes.
The maximum number of supported ADV_EXT sets is 2.
A maximum of two BLE connections are supported (one central + one peripheral).
Coexistence#
For concurrent Wi-Fi + BLE operation, while a Wi-Fi connection is active, we recommend setting the ratio of the BLE scan window to the BLE scan interval to 1:3 or 1:4.
Wi-Fi + BLE Advertising
All standard advertising intervals are supported. As Wi-Fi throughput is increased, a slight difference between the on-air advertising intervals and the configured intervals might be observed.
BLE advertising is skipped if the advertising interval collides with Wi-Fi activity.
Wi-Fi + BLE scanning
All standard scan intervals are supported. For better scan results, we recommend setting the ratio of the BLE scan window to the BLE scan interval to 1:3 or 1:4.
BLE scan would be stopped for intervals that collide with Wi-Fi activity.
Wi-Fi + BLE Central/Peripheral Connections
All standard connection intervals are supported.
For a stable connection, use optimal connection intervals and the maximum supervision timeout in the presence of Wi-Fi activity.
Wi-Fi + BLE Central/Peripheral Data Transfer
To achieve higher throughput for both Wi-Fi and BLE, use medium connection intervals, such as 45 to 80 ms with maximum supervision timeout.
Ensure that Wi-Fi activity consumes lower intervals.
To ensure a stable and seamless connection, connect Wi-Fi before establishing BT/BLE connections in the following operating modes: Wi-Fi + BT + BLE, Wi-Fi + BT, and Wi-Fi + BLE.
For Wi-Fi + BT + BLE, Wi-Fi + BT, and Wi-Fi + BLE operating modes, if BT/BLE must be connected before Wi-Fi, use with a high supervision timeout, a high connection interval for BLE, and a high sniff interval for BT to ensure seamless and stable connection. This configuration ensures that the BT/BLE connection stays stable when Wi-Fi connects/disconnects/rejoins.
Wi-Fi STA + BT + BLE multiprotocol use cases require a detailed understanding of the use cases and associated configurations. Contact Silicon Labs Support for additional details.
System#
For User Store configuration and Configuration Save, do not enable powersave or save it as a configuration. If powersave is enabled and saved as a configuration, then on boot up, the RS9116 boots with the saved configuration. In this scenario, the RS9116 goes to powersave mode without giving any indication to the host.
Set the compiler optimization level to
O0in the project settings for IDE (KEIL).Memory configuration must be 384 KB for BT/BLE and coex operating modes.
Usage 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 384 K.
Apply Opermode commands in AT mode correctly. Using the wrong Opermode command might lead to unspecified behavior.
Set the recommended Power Save Profile (PSP) type to Enhanced Max PSP.
It is recommended to disable the powersave functionality while updating the firmware.
For high-throughput applications, powersave operation should be disabled.
The application is required to set the real-time clock with the correct timestamp when the feature is enabled before establishing a TLS connection.
At least one second timeout is necessary for socket select and receive. No timeout value under one second is supported.
For firmware updates using the bootloader method, the user must verify the integrity of the RPS file content. A corrupt image may cause the chip to become unresponsive to host commands.