Skip to content

IEEE802154 + BLE - Coex? #3239

@ivmarkov

Description

@ivmarkov

Motivations

The subject is the TL;DR.

The elaboration is that when provisioning a Matter node, the node might, or might not run the BLE and the IEEE802154 (or Wifi) radios simultaneously.

While the Matter spec had taken special precautions to support devices that do not allow for BLE + "the other radio" coex (the so called "Non-concurrent Commissioning Flow"), these precautions are not always working across all Matter controllers.

For example, Alexa does not really support the non-concurrent commissioning flow.

Solution

From an API standpoint:
Something similar to what is implemented in esp-wifi in terms of the esp_wifi::init function: i.e. you initialize something once only, by passing it the RADIO_CLK periph as well as a timer periph, and then you can immutably borrow the initialized something when instantiating the BLE, the Wifi, and (in future) the Ieee802154 radio.

Of course that would mean that the Ieee80215 driver/crate would need to depend on the esp-wifi crate, or the "init" magic needs to be moved to somewhere else (esp-hal?).

From an implementation standpoint, I have no idea if the coex between BLE and IEEE802154 is feasible, but I guess it is not completely out of reach, given that ESP-IDF is implementing it.

Alternatives

Use non-concurrent commissioning with Matter.

Metadata

Metadata

Assignees

No one assigned

    Labels

    package:esp-ieee802154Issues related to the esp-ieee802154 packagepackage:esp-radioIssues related to the esp-wifi package

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions