Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
Hedda opened this issue Jun 9, 2023 · 12 comments

Comments

@Hedda
Copy link
Contributor

Hedda commented Jun 9, 2023

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

  • Zigbee R23 compliance, with these Security enhancements among others:
    • Dynamic link key negotiation
    • Device interview to query devices before they are allowed to join
    • Trust Center Swap Out to replace an existing Trust Center with a new one
    • Frame Counter Synchronization
  • Zigbee Direct Device (ZDD) support for:
    • Onboarding/commissioning
    • Communication to all Zigbee devices without a hub (Alpha), using Bluetooth LE
  • Zigbee Smart Energy 1.4a compliance (Alpha)
  • Enhancements to Zigbee Green Power (ZGP) APIs
  • New Zigbee Security upgrade component for moving encryption keys from cleartext NVM3 tokens into secure storage

Multiprotocol

  • Zigbee/OpenThread Concurrent Multiprotocol SoC sample app
  • CPC GPIO expander module
  • Zigbeed enhancements

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
Copy link
Contributor Author

Hedda commented Jun 20, 2023

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
Copy link

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
Copy link
Member

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
Copy link

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

@cdjackson
Copy link
Member

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
Copy link

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
Copy link
Member

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
Copy link

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: xsp1989/zigbeeFirmware#44 (comment)

BR
/Franz

@ViToni
Copy link
Contributor

ViToni commented Nov 23, 2023

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
Copy link
Member

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
Copy link
Contributor

ViToni commented Nov 23, 2023

The log message was changed by #1409 to:

logger.error("EZSP Dongle: NCP requires unsupported version of EZSP (NCP = V{}, supported = V{}-V{})",
ezspVersion.getProtocolVersion(), EzspFrame.EZSP_MIN_VERSION, EzspFrame.EZSP_MAX_VERSION);

Looks great.

@Hedda
Copy link
Contributor Author

Hedda commented Nov 24, 2023

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants