zsmartsystems / com.zsmartsystems.zigbee

ZigBee Cluster Library Java framework supporting multiple dongles
Eclipse Public License 1.0
138 stars 87 forks source link

EZSP v12 (EmberZNet Serial Protocol versions 12) for Silicon Labs Ember NCP dongles? #1401

Closed Hedda closed 7 months ago

Hedda commented 1 year ago

Is your feature request related to a problem? Please describe.

EZSP protocol version been incremented to EZSP v12 in Silicon Labs Gecko SDK v4.3 (4.3.0.0) / Zigbee EmberZNet v7.3 (7.3.0.0):

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

https://www.silabs.com/documents/public/release-notes/emberznet-release-notes-7.3.0.0.pdf

https://www.silabs.com/wireless/zigbee?tab=software#software

0x0C hexadecimal = 12 in decimal.

https://github.com/SiliconLabs/gecko_sdk/blob/gsdk_4.3/protocol/zigbee/app/util/ezsp/ezsp-protocol.h#L33

Silicon Labs EmberZNet 7.3.0.0 makes Silabs Zigbee stack compatible Zigbee Protocol Specification Revision 23 / R23 (Zigbee PRO 2023), but users should be warned against flashing EZSP v12 firmware as of yet as it is not backwards compatible with EZSP v11 or older EZSP.

Zigbee

Multiprotocol

https://www.silabs.com/blog/zigbee-pro-2023-spec-released-increases-security

https://csa-iot.org/newsroom/zigbee-pro-2023-improves-overall-security-while-simplifying-experience/

https://csa-iot.org/wp-content/uploads/2023/04/05-3474-23-csg-zigbee-specification-compressed.pdf

Describe the solution you'd like

Support for EZSP v12 (EmberZNet Serial Protocol versions 12) for Silicon Labs Ember NCP dongles.

Describe alternatives you've considered

N/A.

Additional context

Connectivity Standards Alliance (CSA) have now ratified and finally officially released Zigbee Pro Specification Revision 23 / R23 (a.k.a. Zigbee PRO 2023) on March 15th of 2023 as the very latest latest Zigbee specification standard:

This public press release announcement of Zigbee PRO 2023 by CSA was accompanying these official news blog articles:

Zigbee PRO 2023 introduces the coexistence of Zigbee and Zigbee Smart Energy devices, adds SubGHz support to North American and EU markets, and offers device onboarding and control via Bluetooth Low Energy.

Though "Zigbee Direct 1.0" was stealth launched in advance already back in January of 2023 it is also part of Zigbee PRO 2023:

FYI, about a year ago CSA (formerly Zigbee Alliance) also posted a blog on Zigbee features related to Zigbee Revision 23 (R23):

Also check out these other references for more summaries of some of the new features and functions of Zigbee PRO 2023:

While almost all the focus seems to be mostly on security now at launch, I read that CSA has a plan on posting follow-up articles later this year that will highlight the other features, (such as extending support for Sub-GHz bands in Europe and North America).

High-level summary:

PS: Off-topic but FYI; Texas Instruments Z-Stack ZNP SimpleLink SDK has already since a long time has been updated to Zigbee R23 for their CC2652 and CC1352 Zigbee SoCs, as TI has been an early promoter member of the Connectivity Standards Alliance (formerly Zigbee Alliance) for more than 12 years and is one of CSA's lead participant members in Zigbee R23 (and Matter) standards as well as being the chair for CSA's Zigbee Sub-1G task group.

Hedda commented 1 year ago

FYI, Nabu Casa already offers official EmberZNet 7.3 NCP firmware beta images for the Home Assistant SkyConnect USB dongle:

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

darkxst's has also added support for multiple hardware manifests to his fork of Nabu Casa's silabs-firmware-builder in order to allow override configs for automatic builds to enable automatic building of (unofficial) firmware images for many different popular Silicon Labs EFR32 based Zigbee adapters, including; ITead Sonoff ZBDongle-E, Easyiot ZB-GW04, and Elelabs ELR023 + ELU013 :

https://github.com/darkxst/silabs-firmware-builder/tree/main/firmware_builds

Note! He also has experimental builds for same EmberZNet version and hardware but with different baud rate speeds for testing.

https://github.com/darkxst/silabs-firmware-builder/blob/manifestjs/manifests

FranzSchi commented 10 months ago

One more smal hint. I'm using this Library with the openhab plugion. The Message shown is: EZSP Dongle: NCP requires unsupported version of EZSP (required = V12, supported = V4) I guess "supported = V4" should be upgraded to V11 or V12 in this context. Thx /Franz

cdjackson commented 10 months ago

I guess "supported = V4" should be upgraded to V11 or V12 in this context.

No - this number is not a static - it is a value reported by the dongle.

FranzSchi commented 10 months ago

Yes, exactly the suppoted shall be upgraded from 4 to 11 or if this is implemented to 12

cdjackson commented 10 months ago

Sorry - I don't know what you mean. The report looks correct - there's nothing here to change. It reports the required version and the version supported by the NCP. In this case, this indicates that the NCP reports that it is supporting version 4 of the protocol. I don't see a problem here, but I have very little to go on and if you think there's an issue, please provide a full log.

FranzSchi commented 10 months ago

So as i had

V12 Flashed to the stick: EZSP Dongle: NCP requires unsupported version of EZSP (required = V12, supported = V4)

As I downgraded to V11 then it was gone. I cannot provide a detailed log for this but I guess that No modern stick has V4 installed.

BR /Franz

cdjackson commented 10 months ago

I guess that No modern stick has V4 installed.

Well, I have plenty here that I use regularly. There's nothing wrong with the older EM357 devices for use with Zigbee. Anyway, this is just the minimum version in this case, so it's irrelevant.

Anyway, it looks like the log reporting is around the wrong way - so it should say supported = V12, required = V4.

FranzSchi commented 10 months ago

Hi @cdjackson,

there is noting to say against V4 but it seems I'm not the only one that misunderstood it. I would suggest to use both like: EZSP Dongle: NCP requires unsupported version of EZSP (yours= V12, minsupported = V4, maxsupported= V11)

image

Source: https://github.com/xsp1989/zigbeeFirmware/issues/44#issuecomment-1523466896

BR /Franz

ViToni commented 7 months ago

Is the core issue resolved by #1410? (Even if it doesn't solve the misleading log message yet.)

BTW I like @FranzSchi's suggestion a lot about how to phrase the log message. At least vor me it would be much clearer what is going on.

cdjackson commented 7 months ago

Not all new features added to the Silabs firmware have been implemented, but yes, EZSP12 is implemented.

IIRC the log message was also changed a little while ago as suggested (from memory).

So I think both features are fundamentally included in the latest release even if there are more unimplemented features available in the firmware, they are not currently utilised by the library. So I think I will close this and if there's something specific required, we should open a new issue specifically for that.

ViToni commented 7 months ago

The log message was changed by #1409 to: https://github.com/zsmartsystems/com.zsmartsystems.zigbee/blob/c3a95652adf4c681fb60f36449e2ee3b894e84d6/com.zsmartsystems.zigbee.dongle.ember/src/main/java/com/zsmartsystems/zigbee/dongle/ember/ZigBeeDongleEzsp.java#L1331-L1332

Looks great.

Hedda commented 7 months ago

darkxst's has also added support for multiple hardware manifests to his fork of Nabu Casa's silabs-firmware-builder in order to allow override configs for automatic builds to enable automatic building of (unofficial) firmware images for many different popular Silicon Labs EFR32 based Zigbee adapters, including; ITead Sonoff ZBDongle-E, Easyiot ZB-GW04, and Elelabs ELR023 + ELU013 :

https://github.com/darkxst/silabs-firmware-builder/tree/main/firmware_builds

Note! He also has experimental builds for same EmberZNet version and hardware but with different baud rate speeds for testing.

https://github.com/darkxst/silabs-firmware-builder/blob/manifestjs/manifests

Off-topic but a FYI tip for devs, darkxst is now providing prebuild cutting-edge firmware for most common EFR32MGxx adapters:

https://github.com/darkxst/silabs-firmware-builder/tree/manifestjs-SL/firmware_builds

ncp-uart-hw- = EZSP mode (pure EmberZnet Zigbee NCP). rcp-uart-802154- = RCP mode for MultiPAN/multiprotocol (requires Silicon Labs EZSP and/or OpenThread daemon on the host). ot-rcp- = OpenThread Only (Thread Spinel mode).

For example, check out firmware for Sonoff ZBDongle-E (by ITead) hardware which has latest NCP images in different buad rate:

https://github.com/darkxst/silabs-firmware-builder/tree/manifestjs-SL/firmware_builds/zbdonglee

Web Flasher - Flash newer Silabs EFR32 adapters directly from your browser (only Chrome and Edge supported) -> SL Web Flasher

Read this blog post for more details and instructions for using RCP Multi-PAN firmware (with Silabs Multiprotocol Addon for HA).

PS: The manifestjs-SL branch in darkxst's silabs-firmware-builder repo also allow you to build same firmware images yourself:

https://github.com/darkxst/silabs-firmware-builder/tree/manifestjs-SL/firmware_builds