Recommended Settings in WiSeConnect™ SDK v3.x#

This guide consolidates recommendations for both SoC and NCP operation modes using the WiSeConnect™ SDK v3.x.

System#

SoC Only#

  • The current revision of SiWx917 has:

    • RAM memory of 672k bytes which can be shared between NWP and M4 processors in SoC mode.

    • The below configurations are applicable in SoC mode and can be configured based on the application requirement. EXT_FEAT_480K_M4SS_192K is the default configuration, based on requirement EXT_FEAT_480K_M4SS_192K configuration is selected for SoC mode multi-protocol examples.

      • EXT_FEAT_480K_M4SS_192K - This mode configures NWP with 480k and M4 with 192K bytes of memory

      • EXT_FEAT_416K_M4SS_256K - This mode configures NWP with 416k and M4 with 256K bytes of memory

      • EXT_FEAT_352K_M4SS_320K - This mode configures NWP with 352k and M4 with 320K bytes of memory

    • SoC mode should not use 672k_M4SS_0K memory configuration.

  • There are 2 Versions of Pro-Kits/Radio boards. Si917-6031A based on Si917-4338A (Rev A01 - A11) and SiWx917-6031A based on SiWx917-4338A (Rev A12-A14). To get optimal power numbers, enable macro SL_SI91X_ENABLE_LOWPWR_RET_LDO pre-processor define for ICs or while using SiWx917-6031A Pro-kit, SiWx917-4338A version of boards. This macro should be disabled for earlier variants of the board (Si917-6031A, Si917-4338A).

  • With RAM configuration (EXT_FEAT_352K_M4SS_320K), only 352K memory is available to NWP which limits the features supported, Recommended to enable EXT_FEAT_416K_M4SS_256K in Wi-Fi + BLE Multi protocol mode to enable more Network features.

  • For EXT_FEAT_416K_M4SS_256K and EXT_FEAT_480K_M4SS_192K memory configurations, it is recommended to retain both NWP and M4 RAMs in power save.

NCP Only#

  • Memory configuration for NCP mode is 672K_M4SS_0K

  • Set the following recommended FreeRTOS configuration in FreeRTOSConfig.h:

    • configTIMER_TASK_PRIORITY to 55

    • configTOTAL_HEAP_SIZE to 51200

    • configUSE_POSIX_ERRNO to 1

SoC and NCP#

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

  • Set the preprocessor macro SL_WLAN_EVENT_THREAD_PRIORITY to the highest priority among all threads in the system. The default value is osPriorityRealtime1.

  • Set the preprocessor macro SL_WLAN_COMMAND_ENGINE_THREAD_PRIORITY to the second highest priority, just below the event thread. The default value is osPriorityRealtime.

  • Any other threads created by the application should have a priority lower than both SL_WLAN_EVENT_THREAD_PRIORITY and SL_WLAN_COMMAND_ENGINE_THREAD_PRIORITY.

Wi-Fi / Network Stack#

SoC and NCP#

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

  • It is recommended to set region code as IGNORE_REGION in boot configurations for SIWG917Y module boards except for PER mode.

  • MDNS works best with the DTIM-based power save method. Performance issues could be observed with the Listen interval-based power save method due to multicast packet loss.

  • Enable BIT(10) - SL_SI91X_FEAT_SSL_HIGH_STREAMING_BIT in feature bitmap to increase TLS_Rx throughputs.

  • In IPv6 mode, MDNS will use the Link-local address if a unicast global address isn't set, and will use the unicast global address when its configured.

  • It is recommended to enable SL_SI91X_EXT_TCP_IP_WAIT_FOR_SOCKET_CLOSE BIT(16) of the 'Extended TCP IP Feature' bit map in the opermode command for all Wi-Fi Socket operations from the host to ensure graceful handling during asynchronous closures from the peer.

  • For high throughputs, it is recommended to enable BIT(2) - SL_SI91X_FEAT_AGGREGATION of feature_bit_map in opermode.

  • Users can enable SL_SI91X_EXT_TCP_IP_SSL_16K_RECORD in 'Extended TCP IP Feature' bit map in opermode for (HTTPS server) supporting 16k record

  • TWT

    • Recommendation is to use sl_wifi_target_wake_time_auto_selection() API for all TWT applications

    • It is recommended to issue iTWT setup command once IP assignment, TCP connection, application specific socket connections are done

    • When using sl_wifi_enable_target_wake_time API, increase TCP / ARP Timeouts at the remote side depending upon the configured TWT interval configured. It's highly recommended to use sl_wifi_target_wake_time_auto_selection() as an alternative

    • In case of TWT in CoEx mode, when using sl_wifi_enable_target_wake_time API, use TWT wake duration <= 16 ms and TWT wake interval >= 1 sec. If wake duration > 16 ms or TWT wake interval < 1sec, there might be performance issues

    • For iTWT GTK interval in AP should be configured to max possible value or zero. If GTK interval is not configurable on AP side, recommended TWT interval (in case of sl_wifi_enable_target_wake_time API) or RX Latency (in case of sl_wifi_target_wake_time_auto_selection API) is less than 4sec

    • When sl_wifi_enable_target_wake_time API is used, configuring TWT Wake interval beyond 1 min might lead to disconnections from the AP. Recommended to use TWT wake interval of less than or equal to 1 min

    • When using sl_wifi_enable_target_wake_time API, it is recommended to set missed_beacon_count of sl_wifi_set_advanced_client_configuration API greater than 2 times of the configured TWT Interval.

    • DUT keepalive should be configured aligned with AP keepalive in TWT modes.

  • Disable power save for high throughput applications or use FAST PSP power save mode as per application requirement

  • The application needs to ensure that it sets RTC with the correct timestamp before establishing the SSL/EAP connection.

  • The minimum timeout value should not be less than 1 second for socket select and socket receive calls.

  • Please refer Keep alive intervals supported by MQTT broker and configure keep alive interval values accordingly.

  • The minimum keep alive interval value recommended for embedded MQTT is 10 Seconds.

  • Disable power save and suspend any active TWT sessions before triggering HTTP OTAF.

  • Randomize the client port if using rapid socket connect/disconnect.

  • Recommended to configure VAP_ID properly for Si91x STA and AP using sl_si91x_setsockopt_async(), in case of data transfer.

  • Recommended to use valid length (<= 202 bytes) for topic to be published while using Embedded MQTT, else it leads to return wrong error code (0x21).

  • In concurrent mode with dual IP, it is advised to bring up STA first (IP configuration) and AP later

  • It is recommended to configure Tx, Rx, Global buffer pool ratio in the buffer config command for all Wi-Fi Socket operations from the host

  • It is recommended to use "TCP exponential backoff" configuration for congested channels

  • It is recommended is to disable broadcast filter during TCP connection to avoid ARP resolution issues

  • To avoid IOP issues, it is recommended to disable power save before Wi-Fi connection

  • An intermediate CA should be a trusted CA, provided it is not a self-signed certificate. To be considered as a trusted CA, the KeyUsage field must be explicitly configured while generating the certificate

  • It is recommended to enable RSI_REJOIN_FIRST_TIME_RETRY to minimize join failures, especially in scenarios such as abnormal connection termination caused by a module reset or power failures.

  • The recommended payload size for embedded MQTT Publish messages is 1 kB.

  • It is recommended to set the TCP retransmission count value to 30 or higher to prevent disconnection during rejoin attempts.

  • Disable power save mode before establishing a TCP connection for the NCP-UART interface.

BLE#

SoC and NCP#

  • In BLE, the recommended range of Connection Interval in Power Save (BLE Only) - 100 ms to 1.28 s.

  • In BLE, during Connection, the configuration of Scan Interval and Scan Window with the same value is not recommended. The suggested ratio of Scan Window to Scan Interval is 3:4.

  • In BLE, if a device is acting as Central, the scan window (in set_scan_params and create_connection commands) must be less than the existing Connection Interval. The suggested ratio of Scan Window to Connection Interval is 2:3.

  • In BLE mode, if scanning and advertising are in progress on the SiWx91x module and it subsequently gets connected, the following occurs:

    • Central Role: Scanning stops.

    • Peripheral Role: Advertising stops.

    To establish a connection with another peripheral or central device, the application must issue a command to restart advertising and scanning.

Multi-protocol#

SoC and NCP#

  • 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. When more than two BLE connections are active, configure the BLE advertising interval to 211.25 milliseconds.

  • 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 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 scanning will be stopped for intervals that collide with Wi-Fi activity.

Wi-Fi + BLE Central/Peripheral Connections#

  • 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 Transfer#

  • To ensure optimal BLE throughput, it is recommended to use optimal connection intervals along with the maximum supervision timeout.

SoC Only#

  • We recommend using the SOC clock only up to 120 MHz (SL_SI91X_CUSTOM_FEAT_SOC_CLK_CONFIG_120MHZ). At 160 MHz, BLE disconnections are observed while running WLAN + BLE.