SILICON LABS Zigbee EmberZNet SDK Owner’s Manual

June 17, 2024
SILICON LABS

Zigbee EmberZNet SDK 7.2.5.0 GA
Gecko SDK Suite 4.2
January 24, 2024

Zigbee EmberZNet SDK

Silicon Labs is the vendor of choice for OEMs developing Zigbee networking into their products. The Silicon Labs Zigbee platform is the most integrated, complete, and feature-rich Zigbee solution available.
Silicon Labs EmberZNet SDK contains Silicon Labs’ implementation of the Zigbee stack specification.
These release notes cover SDK version(s):

  • 7.2.5.0 released January 24, 2024
  • 7.2.4.0 released August 16, 2023
  • 7.2.3.0 released May 3, 2023
  • 7.2.2.0 released March 8, 2023
  • 7.2.1.0 released February 1, 2023
  • 7.2.0.0 released December 14, 2022

KEY FEATURES

Zigbee

  • Secure key storage support for MG2x parts that support Secure Vault-High
  • MG24+Si4468 Dual-PHY Zigbee Smart Energy support
  • MG12 Dual-Band 2.4GHz + SubGHz Zigbee Smart Energy support
  • MGM240S SiP Module Support
  • Zigbee on Host (ZigbeeD) support for 32 bit and 64 bit x86 architecture – experimental

Multiprotocol

  • Dynamic Multiprotocol Bluetooth and multiPAN 802.15.4 in RCP mode
  • Dynamic Multiprotocol Bluetooth and Zigbee NCP – experimental
  • Manufacturing Library (MfgLib) support for Concurrent Multiprotocol RCP
  • Zigbee + OpenThread Concurrent Listening on MG24 parts – experimental

Compatibility and Use Notices

For information about security updates and notices, see the Security chapter of the Gecko Platform Release notes installed with this SDK or on the TECH DOCS tab on https://www.silabs.com/developers/zigbee-emberznet. Silicon Labs also strongly recommends that you subscribe to Security Advisories for up-to- date information. For instructions, or if you are new to the Zigbee EmberZNet SDK, see Using This Release.

C ompatible Compilers:

IAR Embedded Workbench for ARM (IAR-EWARM) version 9.20.4.

  • Using wine to build with the IarBuild.exe command line utility or IAR Embedded Workbench GUI on macOS or Linux could result in incorrect files being used due to collisions in wine’s hashing algorithm for generating short file names.
  • Customers on macOS or Linux are advised not to build with IAR outside of Simplicity Studio. Customers who do should carefully verify that the correct files are being used.
    GCC (The GNU Compiler Collection) version 10.3-2021.10, provided with Simplicity Studio.

New Items

1.1 New Features
New in release 7.2.0.0
Zigbee Security

Support is available for storing encryption keys securely on EFR32MG2x parts that support the Secure Vault-High feature. Refer to AN1271: Secure Key Storage for information about securely storing security keys. Applications that wish to store security keys in secure storage must be used for new deployments, as OTA upgrade for existing devices is currently unsupported in this release.

Smart Energy
Simultaneous Dual-PHY Smart Energy support is now available on EFR32xG24+Si4468 parts.
Zigbee Smart Energy Dual-Band 2.4GHz and Sub-GHz support for end-devices is now available on EFR32xG12 par
DMP NCP
Dynamic Multiprotocol Zigbee-NCP + Bluetooth-NCP support is now available.

1.2 New Applications
None
1.3 New Components
New in release 7.2.0.0

Zigbee Security Manager Components
Zigbee Security Manager
The Zigbee Security Manager component is a common component that provides an interface for the user to manage security keys and crypto routines. This component is tailored to Zigbee-specific keys and crypto routines.
Security Manager
The Security Manager component is a stack-agnostic component that provides an interface to manage keys in PSA storage. These may be wrapped keys if the device supports the Secure Vault-High feature. The Security Manager component also provides an interface to certain crypto routines. The Zigbee Secure Key Storage component utilizes the Security Manager component.
Classic Key Storage
The Zigbee Classic Key Storage component handles the storing and fetching of security keys in NVM3 tokens. NVM3-stored keys are saved in-the-clear in flash, which means that keys can be read when flash is read from the device. This storage method is the way Zigbee applications have previously stored keys on the device.
Secure Key Storage
The Zigbee Secure Key Storage component handles storing keys using PSA APIs. For devices that support the Secure Vault-High feature, keys are wrapped in secure storage and cannot be gleaned by reading flash from the device.
The Security Manager component is used by the Zigbee Secure Key Storage component to execute certain crypto routines, like AES encryption and decryption.
Users wishing to have the application store keys securely must do so on fresh deployments only. There is currently no support for deployed devices to upgrade their key storage and move security keys from tokens into secure key storage. This upgrade functionality is planned for a future release.
Devices that include the Secure Vault High feature may still store security keys classically (for example in tokens) by including the Classic Key Storage component instead. SDK 7.2.0.0-based applications that include OTA upgrade functionality for these Secure Vault-High devices running pre-SDK 7.2.0.0 code are currently limited to using the Classic Key Storage component.
Secure Vault-High devices may not downgrade from an image that stored keys in secure storage to an image that stores keys back into tokens.
Other Components
Watchdog Refresh
The watchdog refresh component resets the watchdog timer periodically (value is configurable and holds a default of 1 second). Note that in order to accomplish this, the part needs to get into EM0 energy mode. This component is included by default when there is an RTOS and watchdog is used in the code. Refreshing of the watchdog timer can be disabled using the configuration option in the component.
Green Power Adapter
The zigbee_green_power_adapter component supports use of green power server or client component in a custom framework. This component includes a set of minimum required source files from the application framework and it provides a number of subroutines to be used to integrate the custom framework.

1.4 New APIs
New in release 7.2.1.0
Renamed sl_set_passive_ack_config() to sl_zigbee_set_passive_ack_config()
Renamed emAfOverrideAppendSourceRouteCallback() to emberAfOverrideAppendSourceRouteCallback()
Reinstated emberChildId() after removal in 7.2.0.0
Reinstated emberChildIndex() after removal in 7.2.0.0

New in release 7.2.0.0
Zigbee Security Manager Component
The Zigbee Security Manager component provides several APIs, which are implemented by either the Zigbee Classic Key Storage or Zigbee Secure Key Storage component. They provide functionality that includes importing and exporting keys stored by the component, retrieving key metadata, loading keys to use in an operation, and performing cryptographic operations with a loaded key. A full list of these new APIs is available in Zigbee Stack API documentation at https://docs.silabs.com. A subset of those APIs are listed here.

  • void sl_zb_sec_man_init_context(sl_zb_sec_man_context_t* context)
  • sl_status_t sl_zb_sec_man_import_key(sl_zb_sec_man_context_t context, sl_zb_sec_man_key_t plaintext_key)
  • sl_status_t sl_zb_sec_man_export_key(sl_zb_sec_man_context_t context, sl_zb_sec_man_key_t plaintext_key)
  • sl_status_t sl_zb_sec_man_load_key_context(sl_zb_sec_man_context_t* context)
  • sl_status_t sl_zb_sec_man_hmac_aes_mmo(const uint8_t input, const uint8_t data_length, uint8_t output)
  • sl_status_t sl_zb_sec_man_aes_ccm(uint8_t nonce, bool encrypt, const uint8_t input, uint8_t encryption_start_index, uint8_t length, uint8_t* output)

Miscellaneous
bool emberAfClusterEnableDisable(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfClusterMask mask, bool enable) allows enabling and disabling clusters at runtime, with bool emberAfIsClusterEnabled(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfClusterMask mask) to check whether a cluster is enabled. These APIs require setting EMBER_AF_PLUGIN_ZCL_CLUSTER_ENABLE_DISABLE_RUN_TIME in the ZCL framework core plugin to  rue in order to be compiled.

1.5 New CLI Commands
New in release 7.2.0.0
Added new CLI command for “bluetooth_on_demand_start” component, ‘plugin ble start’ and ‘plugin ble stop’ to request starting and stopping the Bluetooth stack when needed.

1.6 New Platform Support
New in release 7.2.4.0
BRD4195B and BRD4196B radio board support is now available.
New in release 7.2.0.0
MGM240S SiP Module support is now available.

1.7 New Documentation
All components have documentation available. If you have an issue seeing the documentation when you select the component in Project Configurator, you can find it on https://docs.silabs.com/.

Improvements

Changed in release 7.2.5.0
MAC TX Unicast Retry Counter

In previous versions, the Counter Handler callback for MAC and APS layer EmberCounterTypes concerning packet RX and TX was not being passed the passing proper target node ID or data arguments, and API documentation concerning behavior of certain counters that used these parameters was unclear or misleading. While the signature of emberCounterHandler() has not changed, the way its parameters are populated have changed slightly. Changes around this API include the following:

  • Comments around EmberCounterType enums in ember-types.h have been expanded for clarity.
  • Node ID parameter to the Counter Handler for TX-related counters now check whether the destination address mode indicates a valid short ID before using it. (If not, no destination address is populated, and a placeholder value of EMBER_UNKNOWN_NODE_ID is used instead.)
  • Node ID parameter to the Counter Handler for RX-related counters now reflect the source node ID, not the destination node ID
  • Retry count is not passed as the data parameter for EMBER_COUNTER_MAC_TXUNICAST SUCCESS/FAILED counters as described in ember-types.h in previous versions, but this was never properly populated in previously released versions, so its value in previous releases would always have been 0. This behavior has been clarified in the description of those EmberCounterTypes. (However, retry count for APS layer retries continues to be populated in the data parameter for EMBER_COUNTER_APS_TX_UNICAST_SUCCESS/FAILED counter types, consistent with prior releases.)
  • All counters that populate the Node ID or data parameter for the callback have been audited to ensure they pass the expected address (or EMBER_UNKNOWN_NODE_ID if a Node ID was expected but not able to be obtained from the packet), or data as described in revised ember-types.h documentation.
  • Counter handler for EMBER_COUNTER_MAC_TX_UNICAST_RETRY now correctly reflects the MAC layer destination node ID and number of retries in its Destination Node ID and data parameters.
  • Counter handler for EMBER_COUNTER_PHY_CCA_FAIL_COUNT now provides destination node ID information through the Node ID parameter about the intended MAC layer target of the message that failed transmission.

Intended Behavior Clarification for CSL
Users are reminded that zigbee unsynchronized CSL transmissions are subject to protocol preemption at the radio scheduler. In the SleepyToSleepy applications, BLE can and will preempt a zigbee CSL transmission, which will terminate the transmission. Scheduler preemption is more common for unsynchronized CSL, given that a potentially lengthy wake up frame sequence may be used. Users wishing to adjust transmission priorities may use the DMP Tuning and Testing component to do so. Users may also consult UG305:
Dynamic Multiprotocol User’s Guide for more information.
An issue has been fixed in CSL where a new wake up frame sequence that is received immediately following a previous payload framewould not be recorded correctly. This would result in a missed payload frame.

Changed in release 7.2.2.0
Miscellaneous
Improved the reportable change calculation in the Reporting component by supporting float datatype difference calculation. This is supported using the platform float libraries. If the reportable change calculation involves double or semi precision data types, a set of callbacks (emberAfGetDiffCallback and emberAfDetectReportChangedCallback) are introduced for the user to provide their arithmetic functions. Updated application framework stack callback function signatures and added missing host framework callbacks. These updates are available at https://docs.silabs.com/. Updated the ezspPollHandler function with updated input arguments, that required updating the EZSP_PROTOCOL_VERSION to 0x0B.
Changed in release 7.2.1.0
Miscellaneous
Improved error handling in sl_zigbee_set_passive_ack_config().

Changed in release 7.2.0.0
Watchdog
Re-enabled the watchdog timer on Zigbee sample applications. We now pet the watchdog once per second in the app.c file for the corresponding project.
Sub-GHz Network Find
Added the CMSIS configuration for channel pages and masks for the sub gigahertz network find component.
Network Steering
Added a validation script for the Zigbee Network Steering component to confirm that the optimized scans option is also enabled if the ‘try all keys’ option is enabled* .
NCP – CPC
Documentation was updated to indicate that the NCP applications need CPC included in RTOS-based applications and must be used with a host application that supports CPC.
Green Power Sink
The GP sink table now stores the group ID for the groupcast sink type (EMBER_GP_SINK_TYPE_GROUPCAST) in the respective token.
The sink type enumeration was updated to remove the EMBER_GP_SINK_TYPE_SINK_GROUPLIST.
Miscellaneous
Documentation was updated to state that the last two bytes of the received packet in manufacturing mode is not to be interpreted as the FCS / CRC bytes.
Command structs with items of size greater than 4 bytes are now defined as integer arrays instead of integer pointers.

Fixed Issues

Fixed in release 7.2.5.0

ID # Description
1147306 Fixed an issue for multi mac coordinator that prevented scanning on

sub ghzinterface during network formation because of the previous network leave.
1198598,
1196698| Fixed spurious frame pending bit set when there is no data pending
**** 1215648| Calling ember Remove Child() during a secure rejoin attempt by an end device can potentially lead to an extra decrement of the Child Count, potentially leading to a Child Count of -1 (255), inhibiting end devices from joining/rejoining due to an indicated lack of capacity in the Beacon.
1215649| Child Table search functions within the stack are inconsistent in use of 0x0000 versus 0xFFFF for node ID return value representing invalid/empty entries, leading to problems checking for unused entries in APIs like ember Remove Child().
1215650| Destination and PHY Index provided in Ember Extra Counter Info struct as part of ember Counter Handler() may be incorrect for MAC TX Unicast counter types.
1215652| Outgoing Beacon packets should trigger EMBER_COUNTER_MAC_TX_BROADCAST instead of EMBER_COUNTER_MAC_TX_UNICAST.
1215653| Sending data poll when packet buffers have been depleted to near zero can lead to a bus fault.
1221878| Rejoining an end device a with previous NWK key after a key change caused the end device to mistakenly be put into the neighbor table and treated like a router instead of an end device child, interfering with proper message delivery.
1240390| ZDO Bind/Unbind Requests refused for access/permission reasons should return EMBER_ZDP_NOT_AUTHORIZED status rather than EMBER_ZDP_NOT_PERMITTED status as per Zigbee specifications.
1240620| Fixed an issue that caused the end device move state machine to stop attempts to rejoin the network under heavy traffic conditions.

Fixed in release 7.2.4.0

ID # Description
1174328 Fixed an issue that caused one of the steps in Touchline test (DN-

TLM-TC-02B) to fail.

Fixed in release 7.2.3.0

ID # Description
1130734 Fixed null pointer dereference when sending an association response

if no buffers are available.

Fixed in release 7.2.2.0

ID # Description
660624 Device table component updated to be used by both SoC and host

architectures.
754110| The reportable change calculation is updated to support float calculation using platform-dependent float library.
1026022| Fixed an issue that was affecting the UART baud rate when setting the CTUNE value on NCP from host using set the EZSP_CONFIG_CTUNE_VALUE command.
1026760| Fixed an issue that was letting the dual PHY-capable end devices to rejoin on 2.4 GHz interface after associating on sub gigahertz interface.
1030357| Fixed an issue with “plugin megilp set-options” command returning an error in manufacturing mode by registering the callbacks for setting configuration values.
1063627| Updated ember Af Remote Set Binding Callback() and added missing callback for the host architecture.
1079388| Fixed an issue where the EMBER_AF_PLUGIN_NETWORK_CREATOR_SECURITY_BDB_JOIN_USES_INSTALL_CODE_KEY option in the

Network Creator Security component is overwritten when the “plugin network- creator-security open-network” or “plugin network-creator-security open-with- key” CLI commands are invoked.

1087526| Fixed some Covertly issues.
1096375| Fixed an issue where the ember Hmac AesHash API had been unavailable for application builds since Emberizine 7.2.0.
---|---
1097258| Fixed an issue that affected Green Power Server test cases 4.5.2.2, 4.5.2.3, 4.4.3.1 and 4.4.2.8.
1099131| Fixed an issue that was preventing the server to send a termination message to a client if it received a malformed certificate during key establishment.
1103117| Fixed an issue that was causing the Green Power Server to remain uninitialized after a network leave and re-association of the Green Power Combo application.
1104793| Fixed an issue that was causing an assert failure for the scenario of ongoing data transactions on both the interfaces of dual PHY stack.
1106002| Fixed an issue that affected Green Power server test case 4.4.1.7 steps 1-2.

Fixed in release 7.2.1.0

ID # Description
289695 The range check for reserved and non-existent Green Power device

source Id are added to the Green Power cluster command handlers.
651930| Removed legacy NCP callback ember AfPlugin Concentrator Broadcast Sent Callback().
621144| Added support for GPD switch on single-button devices such as BRD4183A.
648906| Reimplemented emberChildIndex().
659010| Reimplemented emberChildIndex().
727076| Fixed an issue that could result in diagnostics function to use incorrect Endpoint to update LQI, RSSI, and average MAC retry.
746260| Added support for Smart Energy KEEP-ALIVE cluster.
1026760| Fixed issue where End Device could rejoin using incorrect interface.
1031169| Fixed an issue where a paired GPD could be removed irrespective of presence in translation table.
1031241| Improved validation of reserved Green Power address.
1063525| Fixed an issue that could result in an invalid verify link key exchange to succeed even when Trust Center used an incorrect link key.
1067877| Fixed an issue whereby Scene information was incorrectly removed when adding a new Scene with the same Groupoid and ScanID.
1068968| Improved handling of child table timeouts in emberGetChildData().
1069245| Improved device table plugin prototype ember Af Trust Center Join Callback() to fix compilation errors.
1074378| Fixed an issue that allowed dual-band End Devices to incorrectly join non-preferred channel yet not disallow re-joining PAN on channel.
1075748| Fixed an issue that caused an EEPROM compilation error when removing CLI.
1077176| Fixed an issue that could cause NCP to fail on startup due to inter- PAN MAC filter (0x36) as a result of an incorrect MAC filter table size.
1081511| Fixed an issue preventing the usage of correct type 4 (OOB) key for commissioning.
1082602| Fixed an issue that could cause packets that fail to decrypt during commissioning to be forwarded as commissioning notifications with authentication failed flag set.
1083200| Fixed an issue where Message Integrity Codes where not being copied back to host in emGpCalculateIncomingCommandMic().
1083835| Fixed sink table read command handling for the gp Sharedkey type that fixed the GP Test Case failure 4.4.4.3.
1085137| Fixed an issue where the Sink could remove all entries for app mode 2 and matching EUI64s.
1087618| Fixed compilation issues due to missing Green Power Adaptor header files not being included in release.
1092779| Fixed issue that was preventing an End Device to process a ZDO Leave Request from a non-parent network node.
1091792| Improved error handling and return code of ember Get Current Security State().
1087567| The ncp sample application “nap-quart-hw-dual-phy” is not supported by the development board BRD4155.
ID #| Description
---|---
1089841| An issue that caused the ember Find And Rejoin Network With Reason to return busy status for an end device move procedure on sub gigahertz interface is fixed.
1094643| The function prototype for emGp Outgoing Command Encrypt is removed from the green-power-server’s because it is only internal to the green-power- security’s file.
1097536| Fixed an issue that caused multi-MAC coordinator to use an incorrect MAC interface to send unsolicited rejoin response to its child during address conflict resolution. This issue caused ZCP Test Case 10.12 to fail on sub- gigahertz.

Fixed in release 7.2.0.0

ID # Description
498094 Fixed an issue in function check For Reporting Config() in metering-

server. where the second input parameter of the invoked function ember Af Contains Server() had incorrectly referenced the cluster ID instead of the attribute ID.
657626| OTA update with page request can now handle up to EMBER_AF_PLUGIN_EEPROM_PARTIAL_WORD_STORAGE_COUNT number of out-of-order write operations without an assert.
684653| Fixed an issue that caused network-steering start to add TC task without checking network state and steering state.
688985| Fixed issue where the joining device joined the network with wrong Extended Pan ID, which would result in a Pan ID conflict.
742167| Fixed an issue that caused the discrepancy of Sequence Number field in ZLL message pairs (request – response).
755880| Changed GBCS event IDs to have correct values from the spec.
756571| Fixed the issue that caused ember Packet Handoff fin coming to receive bad index for EMBER_ZIGBEE_PACKET_TYPE_NWK_DATA/EMBER_ZIGBEE_PACKET_TYPE_NWK_COMMAND packets
760759| An issue has been fixed where certain modules, such as MGM210, can be used to generate and build an application that uses LEDs and buttons, such as Dynamic Multiprotocol LightSed. Apps that use these peripherals are not supported for modules that lack dedicated lines for using both buttons and LEDs.
763728| Handled the insufficient space case when reading attributes.
819117| Fixed an issue that caused parent not to check RX on idle bit when responding to a rejoin request from an unknown device
824361| Fixed typedef warnings when building “ncp-quart-hw” sample app with IAR.
825902| Resolved an issue where association, rejoin, and node ID updates may end up with a node being assigned an invalid address.
829607| Fixed an issue of end device configuration overriding the user- provided network address alias value to its own node ID when multicast and broadcast messages were originated by the application.
841499| Fixed an issue where a newly joined device can sometimes not get added to the child table if its IEEE address is not known.
842361| Fixed a parsing issue caused by incorrect min length array of OTA cluster commands.
844016| Fixed an issue that caused compilation errors on BRD4183C by excluding this board for some apps. *
850747| Watchdog is now enabled by default on all Zigbee Emberizine sample applications.
1017165| Fixed an issue that caused Force Sleep & Wake Up component to depend CLI component
1021877| Fixed issue in DynamicMultiprotocolLightSed and DynamicMultiprotocolLightSed projects where scheduler was not properly being locked from the CLI task context when the number of CLI command arguments was less than 2.
1021884| Fixed an incorrect alignment for an indexed token in wwah-server- silabs component.
1024651| Fixed an issue where emberAfMessageSentCallback() was not called if child had been removed during the transmission.
1026622| Fixed an issue that caused missing last byte with packet-handoff when EMBER_MANGLE_PACKET is used.
1027200| Fixed an issue where the Key Establishment component sent NO_RESOURCES instead of the required BAD_MESSAGE when an initiator with unknown EUI64 attempted key establishment.
1030940| Fixed issue in which really high APS message frequency towards SED devices could result in unprocessed (re)join requests.
ID #| Description
---|---
1042022| Fixed issue where the Key Establishment component didn’t check for minimum command request and command response length.
1058984| The templated callback for message sent would be called multiple times for fragmented packets, instead of once after all fragments get sent. This was a change in behavior starting in Zigbee Emberizine SDK 7.0 and has been addressed in SDK 7.2.0 and later. The templated callback is now only invoked once per fragmented transmission.
1060156| Fixed an issue where TC did not send NWK Key when other devices were scanning.
1061948| The issue of a lower ZCL sequence number for initiate key establishment command that follows a read attribute is fixed.
1066234| Fixed an issue that caused the key establishment state machine to get stuck if Confirm Key Data Response is lost over the air.
1066947| Fixed issue where scan procedure in form-and-join code could corrupt memory used by other buffers. This manifests as either a bus fault, usage fault or a packet buffer assert.
1068035| Fixed a potential issue that caused a linking error when customer wants to use green power client or server only for their NCP application.
1068055| The following ZCL Basic cluster optional attributes, which were missing from the XML definition file, have been added: 0x000C Manufacturer Version Details, 0x000D Serial Number, and 0x000E Product Label.
1069727| Fixed an uninitialized variable MISRA error in indirect-queue’sfile.
1077662| Fixed issue where the upgrade rule did not fire correctly for the Zigbee RTOS task stack size configuration. It is now specified in bytes instead of words.

Known Issues in the Current Release

Issues in bold were added since the previous release. If you have missed a release, recent release notes are available on https://www.silabs.com/developers/zigbee-emberznet in the Tech Docs tab .

ID # Description Workaround
N/A The following apps/components are not supported in this release

· NCP Sleepy
· EM4 support| Features will be enabled in subsequent releases.

193492

| ember Af Fill Command Global Server To Client Configure Reporting macro is broken. The filling of buffer creates incorrect command packet.| Use the “zcl global send-me-a-report” CLI command instead of the API.
278063| Smart Energy Tunneling plugins have conflicting treatment/usage of address table index.| No known workaround

289569

|

Network-creator component power level picklist doesn’t offer full range of supported values for EFR32

| Edit the range <-8..20> specified in the CMSIS comment for EMBER_AF_PLUGIN_NETWORK_CREATOR_RADIO_P

OWER in the

/protocol/zigbee/app/framework/plugin/network- creator/config/network- creator-config.h file. For example, change to <-26..20>.

295498| UART reception sometimes drops bytes under heavy load in Zigbee+BLE dynamic multiprotocol use case.| Use hardware flow control or lower the baud rate.

312291

| EMHAL: The hal Common Get In.x Millisecond Tick functions on Linux hosts currently use the gettimeofday function, which is not guaranteed to be monotonic. If the system time changes, it can cause issues with stack timing.|

Modify these functions to use clock_gettime with the CLOCK_MONOTONIC source instead.

338151| Initializing NCP with a low packet buffer count value may cause corrupt packets.| Use the 0xFF reserved value for packet buffer count to avoid the too-low default value
387750| Issue with Route Table Request formats on end device.| Under Investigation
400418| A touchlink initiator cannot link to a non-factory-new end- device target.| No known workaround.

424355

| A non-factory-new sleepy end device touchlink target- capable initiator is not able to receive a device information response in certain circumstances.|

Under Investigation

465180

| The Coexistence Radio Blocker Optimization item “Enable Runtime Control” may block proper Zigbee operation.| Optional ‘Wi-Fi Select’ Control of Blocker Optimization should be left “Disabled”.

480550

| The OTA cluster has its own built-in fragmentation method, hence it should not use APS fragmentation. Although, in case APS encryption is enabled it grows the payload of the ImageBlockResponses to a size where the APS fragmentation is activated. This could lead to the OTA process failing.|

No known workaround

481128

|

Detailed Reset Cause and crash details should be available by default via the Virtual UART (Serial 0) on NCP platforms when Diagnostics plugin and Virtual UART peripheral are enabled.

| Since Serial 0 is already initialized in the NCP, customers can enable the ember AfN cp Init Call back in the Zigbee NCP Framework and call the appropriate diagnostic functions (ha lGet Extended Reset Info, hal Get Extended Reset String, hal Print Crash Summary, hal Print Crash Details, and halPrintCrashData) in this callback to print this data to Serial 0 for viewing in the Network Analyzer capture log.

For an example of how to use these functions, refer to the code included in af-main-soc.c’s emberAfMainInit() when EXTENDED_RESET_INFO is defined.

ID # Description Workaround

486369

| If a Dynamic Multi Proto col LightSoc forming a new network has child nodes remaining from a network it has left, ember Af Get ChildTableSize returns a non-zero value in startIdentifyOnAllChildNodes, causing Tx 66 error messages when addressing the “ghost” children.| Mass-erase the part if possible before creating a new network or programmatically check the child table after leaving the network and delete all children using emberRemoveChild prior to forming a new network.

495563

| Joining SPI NCP Sleepy End Device Sample App doesn’t short poll, therefore the joining attempt fails at the state of Update TC Link Key.| The device that wishes to join should be in Short Poll mode before attempting to join. This mode can be forced by the End Device Support plugin.

497832

| In Network Analyzer the Zigbee Application Support Command Breakdown for the Verify Key Request Frame mistakenly references the part of the payload that indicates the frame Source Address as the Destination Address.|

No known workaround

519905

521782

| Spi-NCP may very rarely fail to start up bootloader communication using the ‘bootload’ CLI command of the ota-client plugin.|

Restart the bootload process

620596

| NCP SPI Example for BRD4181A (EFR32xGMG21)

nWake default pin defined cannot be used as a wake-up pin.

|

Change the default pin for nWake from PD03 to a EM2/3 wake-up-enabled pin in the NCP-SPI Plugin.

631713

| A Zigbee End Device will report address conflicts repeatedly if the plugin “Zigbee PRO Stack Library” is used instead of “Zigbee PRO Leaf Library”.| Use the”Zigbee PRO Leaf Library” instead of the “Zigbee PRO Stack Library” plugin.

670702

| Inefficiencies within the Reporting plugin can lead to significant latency based on data write frequency and table size, which may interfere with customer application code, including event timing.| If doing frequent writes, consider checking reporting conditions and sending reports manually rather than using the plugin.

708258

| Uninitialized value in groups-server.c via addEntryToGroupTable() can create a spurious binding and cause groupcast reporting messages to be sent.| Add “binding.clusterId = EMBER_AF_INVALID_CLUSTER_ID;” after “binding.type

= EMBER_MULTICAST_BINDING;”

757775

|

All EFR32 parts have a unique RSSI offset. In addition, board design, antennas and enclosure can impact RSSI.

| When creating a new project, install the RAIL Utility, RSSI component. This feature includes the default RSSI Offset Silabs has measured for each part. This offset can be modified if necessary after RF testing of your complete product.

758965

| ZCL cluster components and ZCL command discovery table are not synchronized. Therefore, when enabling or disabling a ZCL cluster component, implemented commands will not be enabled/disabled in the corresponding ZCL Advanced Configurator command tab.|

Manually enable/disable discovery for the desired ZCL commands in the ZCL Advanced Configurator.

765735| The OTA update fails on Sleepy End Device with enabled Page Request.| Use Block Request instead of Page Request.

845649

|

Removing CLI:Core component does not eliminate EEPROM cli calls to sl_cli.h.

| Delete the eeprom-cli.c file that calls the slcli.h. Additionally, calls to slcli.h as well as sl_cli_commandarg_t in the ota-storage-simple-eeprom can be commented out.

857200

| ias-zone-server.c allows for a binding to be created with a “0000000000000000” CIE address and posteriorly does not allow further bindings.| No known workaround
1019961| Generated Z3Gateway makefile hardcodes “gcc” as CC| No known workaround
ID #| Description| Workaround
---|---|---
1039767| Zigbee router network retry queue overflow issue in multi thread RTOS use case.| Zigbee Stack is not thread-safe. As a result, calling zigbee stack APIs from another task is not supported in OS environment and may put the stack into “non-working” state. Refer to the following App note for more information and workaround using event handler.

https://www.silabs.com/documents/public/application- notes/an1322-dynamic-multiprotocol-bluetooth-zigbee- sdk- 7x.pdf .

1081914| An issue is present for applications that store keys securely, or those that include the Secure Key Storage component, and the token file-based Trust Center Backup feature, as described in AN1387: Backing Up and Restoring a Z3 Green Power Combo Gateway.| Either use Classic Key Storage or standard Trust Center Backup, which does not store token information to a text file.
1082798| Throughput plugin has 5 bytes less than maximum length of the packet.| In function getHeaderLen() located in zigbee/framework/plugin/app/framework/plugin/throughput/ throughtput.c , remove the subtraction of EMBER_AF_ZCL_MANUFACTURER_SPECIFIC_OVERH

EAD macro during calculation of the maxPayloadLen variable.

1064370| The Z3Switch sample application only enabled one button (instance : btn1) by default that leads to mismatch in but- ton description in the projectfile.| Workaround: Install the btn0 instance manually during Z3Switch project creation.
1105915| On a dual band selection device, emberGetRadioParam- eters always returns 0 for the channel page regardless of the current channel page.| As a workaround, the page can be retrieved with: emMacPgChanPg(emCurrentChannel) ? (emMacPgChanPg(emCurrentChannel) | 0x18).
1175771| When running mfglib receive test mode for Host-NCP architecture with the sample application, Z3Gateway, reports a lot of ezspErrorHandler error 0x34 indicating the unavailability of message buffers.| Configure EMBER_AF_PLUGIN_GATEWAY_MAX_WAIT_FOR_EV
ENT_TIMEOUT_MS on the host app to 100, this reduces the error.
1152898| NCP with hardware flow control watchdog repeatedly gets triggered while host is not up.| Ensure the NCP is connected to the host before the NCP is powered.

Deprecated Items

Deprecated in release 7.2.0.0
The Secure EZSP feature will be removed in a future release.

Removed Items

Removed in release 7.2.1.0
Removed unused, legacy NCP callback API ember Plugin Concentrator Bora cast Sent Callback(). Removed unused RESERVED_AVAILABLE_MEMORY and EXTRA_MEMORY defines in many Zigbee Sample Application project templates. Note the removal of these legacy defines has no effect on the Sample Applications.

Removed in release 7.2.0.0
The Zigbee AES (PSA) and Zigbee CCM (PSA) components have been removed. For EFR-based applications, hardware support for these crypto routines is now brought in with the Zigbee Security Manager component, which is brought into projects via component dependencies. Host applications do not use the Zigbee Security Manager component. Host applications may still consume the AES (Software) and CCM (Software) components if desired.

Multiprotocol Gateway and RCP

7.1 New Items
Added in release 7.2.2.0
Zigbeed now loads the CREATOR_STACK_RESTORED_EUI64, if present, from the host tokens file, and uses it as the EUI64, overriding the EUI64 stored on the EFR32.
Added in release 7.2.1.0
Zigbeed now supports coex EZSP commands.
Added in release 7.2.0.0
Added Dynamic Multiprotocol BLE and Zigbee NCP project (zigbee_ncp-ble_ncp- xxx.slcp). Released as experimental quality.
Added 802.15.4 concurrent listening for EFR32MG24 CMP RCP. This is the ability to run Zigbee and Open Thread simultaneously indifferent channels using a single RCP (rcp-802154-xxx.slcp and rcp-802154-blehci-xxx.slcp). Released as experimental quality.
Added Zigbee support for 32-bit x86 architecture.
Added support for BLE to de-init in multiprotocol use cases, freeing up memory resources for use by other protocol stacks.
The Stack API Trace now can be enabled for Zigbeed by setting the debug-level to 4 or 5 in the zigbeed.conf file.
Zigbeed stack version as well as build date and time are now printed in the logs.

7.2 Improvements
Changed in release 7.2.2.0
Reduced CPC Tx and Rx queue sizes to fit the Zigbee BLE DMP NCP onto the MG13 family.
Changed zigbee_ble_event_handler to print scan responses from legacy advertisements in DMPLight app.
The rcp-xxx-802154 and rcp-xxx-802154-blehci apps now use 192 µsec turnaround time for non-enhanced acks while still using 256 µsec turnaround time for enhanced acks required by CSL.

7.3 Fixed Issues
Fixed in release 7.2.5.0

ID # Description
1188521 Fixed an RCP hang issue when running BLE Scan on with notification

and Open Thread ping traffic.

Fixed in release 7.2.4.0

ID # Description
**** 1118077 In the CMP RCP, Spinel messages were being dropped under heavy

traffic load due to CPC not keeping up with the incoming packets. Fixed this by bundling all Spinel messages ready to be sent over CPC into one payload on the RCP, and unbundling them on the host. This dramatically improves the efficiency of CPC so that it can keep up with the incoming radio traffic.
ID #| Description
---|---
1113498,
1135805,
1139990,
1143344| **** Fixed multiple intermittent Zigbeed crashes and asserts that could be triggered when joining many Zigbee devices simultaneously to the CMP RCP.

Fixed in release 7.2.3.0

ID # Description
1130226 Fixed issue in which the RCP would not recover if CPC became

temporarily busy.
1129821| Fixed null pointer dereference in Zigbeed when receiving a packet if no buffers are available.

Fixed in release 7.2.1.0

ID # Description
1036645 Solved a bug in BLE CPC NCP which prevented a client app from

reconnecting after the first disconnection.
1068435| Fixed Green Power bidirectional commissioning timing issue. Certification test case GPP 5.4.1.23 passes.
1074593| Fixed issue in which Just-in-time (JIT) messages to sleepy end devices were not sent correctly by Zigbee + RCP.
1076235| Fixed issue where ot-cli failed to run in the multiprotocol docker container.
1080517| Z3GatewayCPC now automatically handles a reset of the NCP (CPC secondary).
1085498| Fixed an issue where Zigbeed was not sending rejoin responses to sleepy end devices indirectly.
1090915| Fixed issue where multiple 0x38 errors appeared when attempting to either open a Zigbee endpoint on the Z3GatewayCPC OR to set EZSP parameters without resetting the CPC NCP.

Fixed in release 7.2.0.0

ID # Description
828785 Fixed a bug in cpc-hci-bridge that caused an HCI packet to be dropped

if BlueZ sent two at once.
834191| Improved the CPU utilization of the cpc-hci-bridge helper application.
1025713| Increased max length of Zigbeed device path to 4096.
1036622| Fixed a problem using cmake to build ot-cli using the multi-PAN RCP.
1040127| CPC security was failing to initialize for the rcp-uart-802154 and rcp-spi-802154 projects on MG13 and MG14 series parts. To work around this issue, mbedtls_entropy_adc has been added as entropy source for these parts. That might prevent the ADC from being used in combination with CPC security.
1066422| Fixed an intermittent buffer leak in Zigbeed.
1068429| Fixed a race condition that could cause the CMP RCP to assert.
1068435| Added capability on the RCP node to check and buffer a single bidirectional Green Power data frame and send it out upon rx offset timeout.
1068942| Fixed a leak in the RCP source match table that could prevent Zigbee devices from joining.
1074172| Fixed sending leave request from Zigbeed when receiving a poll from a non-child.
1074290| Stopped Zigbeed from processing un-acked polls.
1079903| Fixed a bug in the CMP RCP that could cause SPINEL messages to be dispatched incorrectly, resulting in Zigbeed and OTBR crashing or exiting.

7.4 Known Issues in the Current Release
Issues in bold were added since the previous release. If you have missed a release, recent release notes are available on https://www.silabs.com/developers/gecko-software-development-kit.

ID # Description Workaround
811732 Custom token support is not available when using Zigbee. Support is

planned in a future release.
937562| Bluetoothctl ‘advertise on’ command fails with rcp-uart- 802154-blehci app on Raspberry Pi OS 11.| Use btmgmt app instead of bluetoothctl.
1031607| The rcp-uart-802154.slcp project is running low on RAM on an MG1 part. Adding components may reduce the heap size below what is needed to support ECDH binding in CPC.| A workaround is to disable CPC security via the SL_CPC_SECURITY_ENABLED configuration.
1074205| The CMP RCP does not support two networks on the same PAN id.| Use different PAN ids for each network. Support is planned in a future release.

7.5 Deprecated Items
None
7.6 Removed Items
None

Using This Release

This release contains the following:

  • Zigbee stack
  • Zigbee Application Framework
  • Zigbee Sample Applications

For more information about Zigbee and the Emberizine SDK see UG103.02: Zigbee Fundamentals.
If you are a first-time user, see QSG180: Z Zigbee Emberizine Quick-Start Guide for SDK 7.0 and Higher, for instructions on configuring your development environment, building and flashing a sample application, and documentation references pointing to next steps.

8.1 Installation and Use

The Zigbee Emberizine SDK is provided as part of the Gecko SDK (GSDK), the suite of Silicon Labs SDKs. To quickly get started with the GSDK, install Simplicity Studio 5, which will set up your development environment and walk you through GSDK installation. Simplicity Studio 5 includes everything needed for IoT product development with Silicon Labs devices, including a resource and project launcher, software configuration tools, full IDE with GNU toolchain, and analysis tools. Installation instructions are provided in the online Simplicity Studio 5 User’s Guide.

Alternatively, Gecko SDK may be installed manually by downloading or cloning the latest from GitHub. See https://github.com/Sili- conLabs/gecko_sdk for more information.

Simplicity Studio installs the GSDK by default in:

  • (Windows): C:\Users\\SimplicityStudio\SDKs\gecko_sdk
  • (MacOS): /Users//SimplicityStudio/SDKs/gecko_sdk

Documentation specific to the SDK version is installed with the SDK. Additional information can often be found in the knowledge base articles (KBAs). API references and other information about this and earlier releases is available on https://docs.silabs.com/.

8.2 Security Information
Secure Vault Integration
For applications that choose to store keys securely using the Secure Key Storage component on Secure Vault-High parts, the following table shows the protected keys and their storage protection characteristics that the Zigbee Security Manager component manages.

Wrapped Key Exportable / Non-Exportable Notes
Network Key Exportable
Trust Center Link Key Exportable
Transient Link Key Exportable Indexed key table, stored as volatile key
Application Link Key Exportable Indexed key table
Secure EZSP Key Exportable
ZLL Encryption Key Exportable
ZLL Preconfigured Key Exportable
GPD Proxy Key Exportable Indexed key table
GPD Sink Key Exportable Indexed key table
Internal/Placeholder Key Exportable Internal key for use by Zigbee Security

Manager

Wrapped keys that are marked as “Non-Exportable” can be used but cannot be viewed or shared at runtime.
Wrapped keys that are marked as “Exportable” can be used or shared at runtime but remain encrypted while stored in flash.
User applications never need to interact with the majority of these keys. Existing APIs to manage Link Key Table keys or Transient Keys are still available to the user application and now route through the Zigbee Security Manager component.

Some of these keys may become non-exportable to the user application in the future. User applications are encouraged to not rely on the exporting of keys unless absolutely necessary.
For more information on Secure Vault Key Management functionality, see AN1271: Secure Key Storage.

Security Advisories
To subscribe to Security Advisories, log in to the Silicon Labs customer portal, then select Account Home. Click HOME to go to the portal home page and then click the Manage Notifications tile. Make sure that ‘Software/Security Advisory Notices & Product Change Notices (PCNs)’ is checked, and that you are subscribed at minimum for your platform and protocol. Click Save to save any changes.

8.3 Support
Development Kit customers are eligible for training and technical support. Use the Silicon Laboratories Zigbee web page to obtain infor- mation about all Silicon Labs Zigbee products and services, and to sign up for product support.
You can contact Silicon Laboratories support at http://www.silabs.com/support.

Simplicity Studio
One-click access to MCU and wireless tools, documentation, software,
source code libraries & more. Available for Windows, Mac and Linux!

| | |
---|---|---|---
IoT Portfolio
www.silabs.com/IoT| SW/HW
www.silabs.com/simplicity| Quality
www.silabs.com/quality| Support & Community
www.silabs.com/community

Disclaimer
Silicon Labs intends to provide customers with the latest, accurate, and in- depth documentation of all peripherals and modules available for system and software implementers using or intending to use the Silicon Labs products. Characterization data, available modules and peripherals, memory sizes and memory addresses refer to each specific device, and “Typical” parameters provided can and do vary in different applications. Application examples described herein are for illustrative purposes only. Silicon Labs reserves the right to make changes without further notice to the product information, specifications, and descriptions herein, and does not give warranties as to the accuracy or completeness of the included information. Without prior notification, Silicon Labs may update product firmware during the manufacturing process for security or reliability y reasons. Such changes will not alter the specific cations or the per formance of the product. Silicon Labs shall have no liability y for the consequences of use of the information supplied in this document. This document does not imply or expressly grant any license to design or fabricate any integrated circuits. The products are not designed or authorized to be used within any FDA Class III devices, applications for which FDA premarket approval is required or Life Support Systems without the specific written consent of Silicon Labs. A “Life Support System” is any product or system intended to support or sustain life and/or health, which, if it fails, can be reasonably expected to result in significant personal injury or death. Silicon Labs products are not designed or authorized for military applications. Silicon Labs products shall under no circumstances be used in weapons of mass destruction including (but not limited to) nuclear, biological or chemical weapons, or missiles capable of delivering such weapons. Silicon Labs disclaims all express and implied warranties and shall not be responsible or liable for any injuries or damages related to use of a Silicon Labs product in such unauthorized applications. Note: This content may contain off endive terminology y that is now obsolete. Silicon Labs is replacing these terms with inclusive language wherever possible. For more information, visit www.silabs.com/about-us/inclusive- lexicon-project

Trademark Information
Silicon Laboratories Inc. ® , Silicon Laboratories ® , Silicon Labs ® , SiLabs ® and the Silicon Labs logo ® , Bluegiga ® , Bluegiga Logo ® , EFM ® , EFM32 ® , EFR, Ember ® , Energy Micro, Energy Micro logo and combinations thereof, “the world’s most energy friendly microcontrollers”, Redpine Signals ® , WiSeConnect , n-Link, ThreadArch ® , EZLink ® , EZRadio ® , EZRadioPRO ® , Gecko ® , Gecko OS, Gecko OS Studio, Precision32 ® , Simplicity Studio ® , Telegesis, the Telegesis Logo ® , USBXpress ® , Zentri, the Zentri logo and Zentri DMS, Z-Wave ® , and others are trademarks or registered trademarks of Silicon Labs. ARM, CORTEX, Cortex-M3 and THUMB are trademarks or registered trademarks of ARM Holdings. Keil is a registered trademark of ARM Limited. Wi- Fi is a registered trademark of the Wi-Fi Alliance. All other products or brand names mentioned herein are trademarks of their respective holders.

Silicon Laboratories Inc.
400 West Cesar Chavez
Austin, TX 78701
USA www.silabs.com

Documents / Resources

| SILICON LABS Zigbee EmberZNet SDK [pdf] Owner's Manual
Zigbee EmberZNet SDK, EmberZNet SDK, SDK
---|---

References

Read User Manual Online (PDF format)

Loading......

Download This Manual (PDF format)

Download this manual  >>

SILICON LABS User Manuals

Related Manuals