Skip to content

Support for Texas Instruments CC2652 radio chips (TZ-1546) #126

@darkxst

Description

@darkxst

Checklist

  • Checked the issue tracker for similar issues to ensure this is not a duplicate.
  • Described the feature in detail and justified the reason for the request.
  • Provided specific use cases and examples.

Feature description

I would like to use esp-thread-br with external 802.15.4 radio chips, such as Texas Instruments CC2652 series. TI's current Thread 1.3 certified firmware however is missing some required capabilities as below:

E(672) OPENTHREAD:[C] P-RadioSpinel-: RCP is missing required capabilities: 
E(672) OPENTHREAD:[C] P-RadioSpinel-:     sleep-to-tx
E(672) OPENTHREAD:[C] P-RadioSpinel-:     rx-timing
E(682) OPENTHREAD:[C] P-RadioSpinel-:     rx-on-when-idle

The last one can be disabled at compile time, but the other two cant. Notes in the TI source code show these two features are disabled due to a mix of hardware/software limitations.
https://github.com/TexasInstruments/ot-ti/blob/e7fbbcc60c25d1dec3ed4d02cff9acd866091ce7/src/radio.c#L1677

The TI firmware works fine in the POSIX OTBR container, which implements receive timing in Software within the OTBR. However it cannot work with esp-thread-br implemenation.

It would be great to have support for CC2652 as 802.15.4 radio when using esp-thread-br. This would require implementing software timing within the otbr and a way to disable sleep-to-tx.

Use cases

To run OTBR directly on ESP32 when attached to third party radios, of which CC2652 series are one of the most popular options for 802.15.4 radios. This would work in conjunction with Home Assistant or other open smart home platforms, allowing to easily add multiple OTBR instances to ones network.

Home Assistant itself works great with esp-thread-br running esp32-c6 or EFR32 radios.

Alternatives

The only alternative is to run a serial bridge in the esp32 and tunnel traffic from OTBR container over a network socket. While this works in some cases, any network issues quickly lead to instabilities. It would be much more preferable to run otbr directly on the esp32.

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions