Developer Guide#
Following is the 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 the robustness of a connection for low throughput applications in congested networks. For instance, turning off
MCS6
andMCS7
helps a Smart Lock 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() and then create the task again after rsi_device_init() 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 re-transmission count to >=
30
.Implemented a new API -
rsi_network_app_protocol_config()
to config the network application protocols, such as cipher selection for HTTP protocol.
BT-Classic/BLE#
Following is the recommended range 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 connection in BLE, 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 keep a delay of 5 seconds before calling switch_proto to clear background functions in the firmware.
Coexistence#
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 Advertising
All standard advertising intervals are supported. As Wi-Fi throughput is increased, a slight difference in on-air advertisements compared to 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 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 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 Wi-Fi activity consumes lower intervals.
To ensure a stable, and seamless connection, connect Wi-Fi before 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.
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
O0
in 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.