coexistence

[中文]


When Wi-Fi coexists with Bluetooth, what mode does it support?

  For supported coexistence scenarios, please refer to coexistence documentation.


When Wi-Fi coexists with ESP-BLE-MESH, the Wi-Fi throughput is low, why?

For ESP32-DevKitC boards without PSRAM, Wi-Fi can coexist with ESP-BLE-MESH but with a relatively low throughput. For ESP32-DevKitC boards with PSRAM, the transmit rate can stabilize at over 1 Mbps.

To support PSRAM, the following configurations in menuconfig should be enabled accordingly:

  • Component config -> ESP PSRAM -> Support for external, SPI-connected RAM -> SPI RAM config -> Try to allocate memories of WiFi and LWIP in SPIRAM firstly. If failed, allocate internal memory

  • Component config -> Bluetooth -> Bluedroid Options -> BT/BLE will first malloc the memory from the PSRAM

  • Component config -> Bluetooth -> Bluedroid Options -> Use dynamic memory allocation in BT/BLE stack

  • Component config -> Bluetooth -> Controller Options -> BLE full scan feature supported

  • Component config -> Wireless Coexistence -> Software controls WiFi/Bluetooth coexistence (Enable)


Does ESP32 support coexistence between ESP-WIFI-MESH and Bluetooth® LE Mesh?

No.

However, the ESP32 supports coexistence between ESP-WIFI-MESH and Bluetooth LE, or Wi-Fi STA and Bluetooth LE Mesh.


Does ESP32 support coexistence between Bluetooth® and Wi-Fi?

Yes, but time-sharing control is required for ESP32’s coexistence between Wi-Fi and Bluetooth. Please go to menuconfig to enable the Wi-Fi/Bluetooth coexistence, shown as follows:

IDF: release/v5.0

menuconfig -> Component config -> Wi-Fi -> Software controls WiFi/Bluetooth coexistence (Enable)

IDF: release/v5.1 and later versions

menuconfig -> Component config -> Wireless Coexistence -> Software controls WiFi/Bluetooth coexistence (Enable)


When Wi-Fi, Bluetooth® LE, and A2DP sink coexist, audio data reception is lost and lagged while entering Bluetooth LE scanning. How to resolve such issue?

  • Use RingBuf to cache audio data

  • Pause music and add a tone, such as “scanning for devices”.


Can BLE advertising (Connectable) and iBeacon sending (advertising) coexist?

IDF: release/v4.0 and later versions | CHIP

ESP32:

  • Not supported yet on hardware level, but can be realized on application layer by polling and sending broadcast packets at regular intervals.

IDF: release/v4.3 and later versions | CHIP: ESP32-C3|ESP32-S3

  • Yes.


How do ESP32 Bluetooth® and Bluetooth® LE dual-mode coexist and how can I use this coexistence mode?

The ESP32 Bluetooth and Bluetooth LE dual-mode does not require complex configurations. For developers, it is simple as calling Bluetooth LE API for Bluetooth LE, and calling Classic Bluetooth API for Classic Bluetooth.

For Classic Bluetooth and Bluetooth LE coexistence, please refer to a2dp_gatts_coex example.


How do ESP32 Bluetooth® and Wi-Fi coexist?

In the menuconfig, there is a special option called Software controls WiFi/Bluetooth coexistence, which is used to control the coexistence of Bluetooth and Wi-Fi for ESP32 using software, thus balancing the coexistence requirement for controlling the RF module by both the Wi-Fi and Bluetooth modules.

  • It is recommended to enable this option if both Bluetooth and Wi-Fi functions are used simultaneously.

  • In coexistence scenarios, Bluetooth and Wi-Fi share RF resources through Time Division Multiplexing (TDM). When performing a Bluetooth® LE scan, the scheduled scan window may fall into the Wi-Fi time slot and be interrupted, resulting in an actual scan duration shorter than the configured value. Therefore, it is recommended to set the scan interval and window to the same value to improve scanning performance.


How can I resolve the frequently occurred ELxXX error (such as ELx200) when Wi-Fi and Ble co-exit?

CHIP: ESP32

  • It has been fixed in commit 386a8e37f19fecc9ef62e72441e6e1272fa985b9. Please switch to the corresponding commit to test.