Bluetooth Low Energy (BLE) and Wi-Fi operate in the same band, and in some devices, share a single radio. This can cause data transmission on one interface to interfere with the other. Such interference can impact the performance of both Wi-Fi and BLE. In order to avoid such interference, coexistence (coex) configurations and algorithms are introduced in the underlying WLAN and BT stacks. These configurations can be tuned from the application to test and improve the performance of underlying Wi-Fi and BLE traffic when they are operated simultaneously.
This library provides an API that you can use to configure the coex parameters for WLAN and BLE.
Supports Wi-Fi BT coex configuration based on BLE Scan priority. You can set the LE Scan priority, with one of three options - high, medium, and low. Based on the priority, the different LE scan parameters are configured.
This library supports the following framework(s):
- AnyCloud Framework: AnyCloud is a FreeRTOS-based solution. Smart Coex Library uses the wifi-connection-manager library for Wi-Fi network connectivity functions, and bluetooth-freertos for BLE.
A set of pre-defined configuration files have been bundled with the wifi-mw-core library for FreeRTOS, lwIP, and mbedTLS.
Review the configuration and make the required adjustments. See the "Quick Start" section in README.md.
-
Define the following COMPONENTS in the application's Makefile for the Smart Coex Library. For additional information, see the "Quick Start" section in README.md.
COMPONENTS=FREERTOS MBEDTLS LWIP WCM WICED_BLE
-
Add the following compiler directives to the
DEFINES
section in the application's Makefile:DEFINES+=CYBSP_WIFI_CAPABLE
-
By default, log messages are disabled by the Smart Coex library. To enable log messages, the application must perform the following:
-
Add the
ENABLE_SMARTCOEX_LOGS
macro to theDEFINES
in the code example's Makefile. The Makefile entry would look like this:DEFINES+=ENABLE_SMARTCOEX_LOGS
-
Call the
cy_log_init()
function provided by the cy-log module. cy-log is part of the connectivity-utilities library.See connectivity-utilities library API documentation for cy-log details.
-