Elelabs / elelabs-zigbee-ezsp-utility

Elelabs Zigbee EZSP Utility to perform firmware update on a range of Elelabs EZSP products as well as other generic EZSP adapters.
Apache License 2.0
127 stars 26 forks source link

[REQUEST] Silicon Labs Concurrent Multiprotocol Zigbee in NCP mode and Open-Thread in RCP mode (Alpha) #25

Open Hedda opened 2 years ago

Hedda commented 2 years ago

Silicon Labs Gecko SDK 4.1.0 released with "Alpha Concurrent Multiprotocol Zigbee in NCP mode and OpenThread in RCP mode":

https://github.com/SiliconLabs/gecko_sdk/releases

Does that mean could now build a unified firmware image that can support Zigbee in NCP mode and OpenThread in RCP mode?

If this is the case then such backwards compatible firmware images might be interesting for users of existing applications that use "old school" Zigbee in NCP mode as it would open up the ability to concurrently also use the same radio adapter for OpenThread/Thread (and thus also the upcoming Matter connectivity protocol), or does it not?

Please see a somewhat related discussion here (though it only discusses RPC mode and not NCP + RPC) -> https://github.com/zigpy/zigpy/discussions/894

Silabs Zigbee EmberZNet SDK 7.1.0.0

Please take note that because of its new (Alpha) support for concurrently running firmware with Zigbee NCP and OpenThread RPC at the same time announced in Silicon Labs Gecko SDK v4.1.0 I do believe that sooner or later going with EmberZNet 7.1.x firmware or even in the relatively near future for early adopters will be tempting to both manufacturers of Zigbee radio USB adapters and end-users owning existing Silicon Labs EFR32MG12, EFR32MG13, and EFR32MG21 adapters.

As such firmware will mean that could use the same EFR32MGxx adapter as a Zigbee Coordinator for existing Zigbee devices and an OpenThread Border Router (OTBR) for the upcoming Matter over Thread (formerly Project CHIP / Connected Home over IP). So in essence users could just flash their existing Silabs Zigbee Coordinator and have it also act as a radio for Matter over Thread.

https://github.com/SiliconLabs/gecko_sdk/releases/tag/v4.1.0

Component | Version | Summary | Details -- | -- | -- | -- [OpenThread SDK](https://www.silabs.com/wireless/thread#software) | 2.1.0.0 | - Alpha SPI support for OpenThread RCP without CPC
- Thread 1.2 and 1.3 support for OpenThread
- Updated GCC compiler version to 10.3.1
- **Alpha Concurrent Multiprotocol Zigbee in NCP mode and OpenThread in RCP mode**
- Alpha Dynamic Multiprotocol Bluetooth and multi-PAN 802.15.4 in RCP mode | [Release Notes](https://www.silabs.com/documents/public/release-notes/open-thread-release-notes-2.1.0.0.pdf) [Zigbee EmberZNet SDK](https://www.silabs.com/wireless/zigbee#software) | 7.1.0.0 | - 2.4GHz Zigbee Smart Energy support for xG24
- 802.15.4 Signal Identifier and MAC CCA Mode 2 and 3 support for xG24
- Zigbee Green Power Gateway Backup
- Updated GCC and IAR compiler version
- **Alpha Concurrent Multiprotocol Zigbee in NCP mode and Open-Thread in RCP mode**
- Alpha Dynamic Multiprotocol Bluetooth and multi-PAN 802.15.4 in RCP mode | [Release Notes](https://www.silabs.com/documents/public/release-notes/emberznet-release-notes-7.1.0.0.pdf)

PS: Note that importantly this EmberZNet SDK 7.1.0 added an update to EZSP v9 (EmberZNet Serial Protocol version 9) which might break existing Zigbee implementation if user Silabs Zigbee EmberZNet SDK 7.1.0.0 NCP firmware before updated to EZSP v9.

Hedda commented 1 year ago

FYI, Nabu Casa developer is working on Zigbee NCP + OpenThread RCP combination firmware for Home Assistant SkyConnect:

https://github.com/NabuCasa/silabs-firmware

Those firmware images feature support for simulations running Zigbee NCP (EZSP) + OpenThread RCP for backward compatibility:

https://github.com/NabuCasa/silabs-firmware/tree/main/EmberZNetAndOpenThreadRCP/beta

The reason for also wanting OpenThread RPC support is that Home Assistant 2022.12 has now been released with initial multiprotocol support Zigbee NCP (via EZSP) and Thread (OpenThread RCP Multi-PAN which indirectly can support Matter over Thread), as tested with "Home Assistant SkyConnect" USB adapter and "Home Assistant Yellow" embedded radio.

They are also in parallel working on an experimental pure RCP Multi-PAN firmware image that is not compatible with NCP for those users who do not want to use Zigbee NCP:

https://github.com/NabuCasa/silabs-firmware/tree/main/RCPMultiPAN

https://www.crowdsupply.com/nabu-casa/home-assistant-yellow/updates/more-yellows-shipping-and-thread-plus-matter-updates

https://www.home-assistant.io/blog/2022/12/07/release-202212/

https://community.home-assistant.io/t/home-assistant-skyconnect-usb-stick-announced-will-be-compatible-with-both-zigbee-and-thread-including-matter-chip-over-thread/433594/

Looks like as an experimental feature user can choose RPC Multi-PAN firmware for multiprotocol support is flashed if the user chooses to enable multiprotocol support in the "Home Assistant SkyConnect" and "Home Assistant Yellow" add-ons for Home Assistant, which is listed as an experimental feature. And at this point, moving back to an EmberZNet Zigbee NCP firmware requires manually reflashing the adapter.

RPC Multi-PAN firmware requires that the application support connecting to Zigbeed (Silicon Labs Zigbee Daemon) via socket to be able to use for ezsp adapters wih EmberZNet RPC firmware (instead of EmberZNet NCP firmware).

image