Thread RPC firmware (with Spinel interface) for Texas Instruments CC2652/CC1352 to use OpenThread Border Router (OTBR) Add-on for use with Thread based devices like some ”Matter” and HomeKit products?

Anyone here in Home Assistant’s community (or Zigbee2MQTT/ZHA communities) who is willing to create a script for buildibg/compiling + releasing OpenThread RPC firmware binaries (with Spinel interface) for Texas Instruments CC2652/CC1352 based adapters that can be flashed by anyone?

See official TexasIntruments repo for ot-ti code → GitHub - TexasInstruments/ot-ti: TI-Openthread

UPDATE: This can allow users to create a native Thread network inside Home Assistant:

Note! The Thread integration shows up automatically when Home Assistant detects a border router.

Thread can then be used for Thread-based Matter or HomeKit devices:

The reason for wanting pre-built firmware images for this is that Home Assistant developer agners (Nabu Casa employee) is developing an “OpenThread Border Router Add-on” that shuld be compatible with all OTBR firmware in “RPC” mode to enable using Home Assistant as a Thread Border Router.

https://github.com/home-assistant/addons-development/tree/master/openthread_border_router

UPDATE: The OTBR add-on has moved to the main repository here → addons/openthread_border_router at master · home-assistant/addons · GitHub

See this discussion about using CC2652 based adapters with his OpenThread Border Router Add-on:

https://github.com/home-assistant/addons-development/issues/38

OTBR (OpenThread Border Router) Spinal “RPC” firmware for TI CC2652/CC1352 will allow us to re-flash and re-use many of the most popular existing adapters commonly sold as “Zigbee Coordinator” adapters (many of which today come pre-flashed with TI Z-Stack Zigbee NCP firmware instead).

https://www.zigbee2mqtt.io/guide/adapters/#based-on-texas-instruments-cc2652-cc1352-chip

So far agners has however only worked with Silicon Labs based adapter with OpenThread “RPC” firmware for Matter over Thread (as well as ESP32-C3 based devkit for Matter over WiFi) but I believe that is only because Nabu Casa choose to use a Silabs EFR32MG21 chip based adapter that will ship on the board as part on the official Home Assistant Yellow (formerly Home Assistant Amber) hardware:

https://github.com/zigpy/zigpy/discussions/894

https://www.crowdsupply.com/nabu-casa/home-assistant-yellow

Note that the addon by agners requires that OTBR firmware is in “RPC” mode (instead of “NCP” mode) as it currently has support for OpenThread Spinel RPC + HDLC + UART protocol/interface combination.

https://openthread.io/platforms/co-processor

https://github.com/openthread/ot-br-posix/

https://groups.google.com/g/openthread-users/

OTBR on Texas Instruments CC2652/CC1352 based chips should be a “Thread Certified Component”:

https://github.com/openthread/ot-cc13x2-cc26x2/blob/ee5d50c0d0a5d0e8624a78bc6cbc9ff9eae3a20a/src/cc2652/README.md

https://github.com/openthread/ot-cc13x2-cc26x2

https://github.com/openthread/openthread/tree/main/examples/platforms

https://dev.ti.com/tirex/explore/node?node=APzU0zOtgnQIe0sFnHCfxg__BSEc4rl__LATEST

https://openthread.io/vendors/texas-instruments

https://www.threadgroup.org/What-is-Thread/Thread-Benefits#certifiedproducts

https://training.ti.com/thread-cc2652-cc1352

Such adapter will as such in the future be compatible with upcoming Thread based “Matter” (Project CHIP / Connected Home over IP) devices if used in Home Assistant with their other add-ons for the that is also in development.

https://github.com/home-assistant/addons-development/tree/master/chip_tool

https://github.com/home-assistant/addons-development/tree/master/chip_controller_repl

https://github.com/project-chip/connectedhomeip

https://buildwithmatter.com/

https://csa-iot.org/all-solutions/matter/

Btw, also having optional OpenThread “NCP” border router firmware images as well would allow users to alternatively use other existing OpenThread applications that use “NCP” mode instead of the newer “RPC” mode which require additional component running on the host. See example wpantund daemon:

https://github.com/openthread/wpantund

PS: For reference check out Koenkk’s “Z-Stack-firmware” repository on GitHub as a very good example of sharing (Zigbee NCP) firmware patch and images for the same type of CC2652/CC1352 adapters:

https://github.com/Koenkk/Z-Stack-firmware/tree/master/coordinator/Z-Stack_3.x.0/bin

https://github.com/Koenkk/Z-Stack-firmware/tree/master/coordinator/Z-Stack_3.x.0

FYI, while not required nor a priority for proof-of-concept if have a dedicated physical radio adapter/dongle for each protocol, but you should also know and keep in mind for the future that Texas Instruments (just like Silicon Labs) does also have support for running concurrent multiprotocol via a Dynamic Multiprotocol Manager (DMM) driver which I believe should, in theory, allow you to build one single firmware image for the larger variants of CC2652/CC1352 that could support running both OpenThread Spinal RPC and Z-Stack Zigbee NCP Coordinator at the same time(?).

https://www.ti.com/wireless-connectivity/multi-protocol/overview.html

https://www.ti.com/lit/an/swra641a/swra641a.pdf?ts=1643381007232&ref_url=https%253A%252F%252Fwww.ti.com%252Fwireless-connectivity%252Fmulti-protocol%252Foverview.html

https://www.ti.com/lit/wp/swra687/swra687.pdf?ts=1643381009101&ref_url=https%253A%252F%252Fwww.ti.com%252Fwireless-connectivity%252Fmulti-protocol%252Foverview.html

https://training.ti.com/connect-zigbee-bluetooth-5-concurrency-demo?cu=1136411

2 Likes

Is this what you are looking for?
https://slae.sh/projects/cc2652/#openthread-border-router

Yeah, but needs to be updated more often, and believe will require different firmware images for different adapters since not all use the same pins, see for example how many different firmware images needed for different CC2652 based Zigbee adapters here → https://github.com/Koenkk/Z-Stack-firmware/tree/master/coordinator/Z-Stack_3.x.0/bin

FYI, Texas Instruments now provide an official TI OpenThread project on GitHub,

Note however that firmware images has to be built and compiled for each specific adapter as each can have different TI-SoC (MCU chip) and/or differwnt pin-mappings so flashing wrong firmware can brick your adapter (which if is the case will require manual recovery flashing via compatible debug probe programmer).

slaesh posted links to new updated binaries for his cc2652 stick in this issue:

slaesh wrote that his latest build seems to work using the otbr docker container.

PS: Again, issues with OpenThread Border Router Add-on for Home Assistant can also be posted here:

1 Like