Zigbee Application Framework API Reference#

The Zigbee Application Framework Reference documentation includes the following sections:

Silicon Labs Zigbee 7 Documentation#

Getting Started#

Getting Started with Simplicity Studio 5 and the Gecko SDK - Describes downloading development tools and the Gecko SDK, which includes Silicon Labs OpenThread. Introduces the Simplicity Studio 5 interface.

QSG180: Zigbee EmberZNet Quick-Start Guide for SDK 7.0 and Higher - Provides basic information on configuring, building, and installing applications for the EFR32MG family of SoCs using the Zigbee EmberZNet Software Development Kit (SDK) v7.0 and higher with Simplicity Studio 5.

UG103.02: Zigbee Fundamentals - Describes the key features and characteristics of a Zigbee solution. It also includes a section on Zigbee 3.0.

UG103.01: Wireless Networking Fundamentals - For those new to wireless networking, introduces some fundamental concepts of wireless networking. These concepts are referred to in other Fundamentals documents.

UG103.03: Design Choices Fundamentals - Discusses the major decisions that must be made about which wireless protocol you should use, as well as additional decisions to be made if you are designing a Zigbee solution.

UG103.09: ZLL Fundamentals - Compares the ZLL stack and network with the EmberZNet PRO stack and network, with notes about considerations when implementing a ZLL solution. Includes a basic description of ZLL configuration and commissioning, and notes about the interoperability of ZLL and non-ZLL devices.

AN1301: Transitioning from Zigbee EmberZnet SDK 6.x to SDK 7.x - Summarizes the differences between Zigbee EmberZNet 7.x in GSDK 4.x and earlier AppBuilder-based versions.

Developing with Zigbee EmberZNet#

UG105: Advanced Application Programming with the Stack and HAL APIs– A companion to the EmberZNet API references, for developers whose applications require functionality not available through Project Configurator and the application framework, or who prefer working with an API. Includes an introduction to the stack API, a discussion of advanced design issues to consider when developing an application using the API, and provides an example application.

UG491: Zigbee Application Framework Developer's Guide for SDK 7.0 and Higher - The Zigbee Application Framework is a body of embedded C code that can be configured by project configuration tools to implement any Zigbee Cluster Library (ZCL) application. This guide covers the structure and usage of the Zigbee Application Framework in SDK 7.0 and higher.

AN1325: Zigbee Cluster Configurator User's Guide - Describes how to use the Zigbee Cluster Configurator, an advanced configuration tool within Simplicity Studio that allows developers to manage the Zigbee endpoints, clusters and commands implemented by their device.

AN1089: Using Installation Codes with Zigbee Devices - Explains how to use Simplicity Commander to check, write, verify, and erase installation codes on Silicon Labs Wireless Gecko (EFR32) devices.

UG162: Simplicity Commander Reference Guide - Describes how and when to use Simplicity Commander's Command-Line Interface.

Co-Processors#

AN1320: Building a Customized NCP Application with Zigbee EmberZNet 7.0 and Higher - Provides instructions for configuring various aspects of a component-based NCP application using Zigbee EmberZNet SDK 7.0 and higher with the tools included in Simplicity Studio 5.

UG101: UART Protocol Reference Guide - Describes the protocol used by EZSP-UART to reliably carry commands and responses between a host processor and a network co-processor. The topics discussed include a brief overview of Ember-designed ASH (Asynchronus Serial Host) protocol, general ASH frame format, different ASH frames, and their operation.

AN706: EZSP-UART Host Interfacing Guide - Describes procedures for initial tests of a host connected to a Zigbee processor using EZSP-UART. It assumes that you have already read UG101: UART Protocol Reference Guide. You should have a basic understanding of the UART Gateway protocol, as well as the signals needed by the UART interface.

UG100: EZSP Protocol Reference Guide - Describes the EmberZNet Serial Protocol (EZSP), used by a host application processor to interact with the EmberZNet PRO stack running on an NCP over either a SPI or a UART interface. Describes the frame formats for different EZSP-bound stack activities such as network management, messaging, bootloading, and token access.

AN711: EZSP-SPI Host Interfacing Guide - Details the EZSP-SPI Protocol used by a host microcontroller to communicate with a network co-processor (NCP) running the EmberZNet PRO stack. It includes recommended procedures for developing and testing a driver for the EZSP-SPI Protocol on a new host microcontroller.

AN1389: Running Zigbee Host Applications in a Docker Container - Zigbee EmberZNet 7.0 and higher no longer supports compiling host applications in MinGW for Windows. This document offers an alternative solution by using a Docker container to run the NCP Host Application.

Multiprotocol#

UG103.16: Multiprotocol Fundamentals - Describes the four multiprotocol modes, discusses considerations when selecting protocols for multiprotocol implementations, and reviews the Radio Scheduler, a required component of a dynamic multiprotocol solution.

UG305: Dynamic Multiprotocol User's Guide - Describes how to implement a dynamic multiprotocol solution.

AN1322: Dynamic Multiprotocol Development with Bluetooth and Zigbee EmberZNet SDK 7.0 and Higher - Provides details on developing Dynamic Multiprotocol applications using Bluetooth and Zigbee EmberZNet SDK 7.0 and higher.

Running Zigbee, OpenThread, and Bluetooth Concurrently on a Linux Host with a Multiprotocol Co-Processor - Describes how to run any combination of Zigbee EmberZNet, OpenThread, and Bluetooth networking stacks on a Linux host processor, interfacing with a single EFR32 Radio Co-processor (RCP) with multiprotocol and multi-PAN support, as well as how to run the Zigbee stack on the EFR32 as a network co-processor (NCP) alongside the OpenThread RCP.

AN724: Designing for Multiple Networks on a Single Zigbee Chip - Describes the multi-network stack feature that allows a single-radio chip to be concurrently part of more than one distinct network. Some limitations and restrictions are enforced by the multi-network stack and should be taken into account during the design of a multi-network application. These limitations are mostly related to the role the node assumes on the networks and are discussed here in detail.

Coexistence#

UG103.17: Wi-Fi Coexistence Fundamentals - Introduces methods to improve the coexistence of 2.4 GHz IEEE 802.11b/g/n Wi-Fi and other 2.4 GHz radios such as Bluetooth, Bluetooth Mesh, Bluetooth Low Energy, and IEEE 802.15.4-based radios such as Zigbee and OpenThread

AN1017: Zigbee and Thread Coexistence with Wi-Fi - Details the impact of Wi-Fi on Zigbee and Thread, and methods to improve coexistence. First, methods to improve coexistence without direct interaction between Zigbee/Thread and Wi-Fi radios are described. Second, Silicon Labs's Packet Traffic Arbitration (PTA) support to coordinate 2.5 GHz RF traffic for co-located Zigbee/Thread and Wi-Fi radios is described (for the EFR32MG only).

Security#

UG103.05: IoT Endpoint Security Fundamentals - Introduces the security concepts that must be considered when implementing an Internet of Things (IoT) system. Using the ioXt Alliance's eight security principles as a structure, it clearly delineates the solutions Silicon Labs provides to support endpoint security and what you must do outside of the Silicon Labs framework.

AN1233: Zigbee Security - Introduces some basic security concepts, including network layer security, trust centers, and application support layer security features. It then discusses the types of standard security protocols available in EmberZNet PRO. Coding requirements for implementing security are reviewed in summary. Finally, information on implementing Zigbee Smart Energy security is provided.

AN1190: Series 2 Secure Debug - Describes how to lock and unlock the debug access of EFR32 Gecko Series 2 devices. Many aspects of the debug access, including the secure debug unlock are described. The Debug Challenge Interface (DCI) and Secure Engine (SE) Mailbox Interface for locking and unlocking debug access are also included.

AN1222: Production Programming of Series 2 Devices - Provides details on programming, provisioning, and configuring Series 2 devices in production environments. Covers Secure Engine Subsystem of Series 2 devices, which runs easily upgradeable Secure Engine (SE) or Virtual Secure Engine (VSE) firmware.

AN1247: Anti-Tamper Protection Configuration and Use - Shows how to program, provision, and configure the anti-tamper module on EFR32 Series 2 devices with Secure Vault.

AN1268: Authenticating Silicon Labs Devices using Device Certificates - How to authenticate an EFR32 Series 2 device with Secure Vault, using secure device certificates and signatures.

AN1271: Secure Key Storage - Explains how to securely "wrap" keys in EFR32 Series 2 devices with Secure Vault, so they can be stored in non-volatile storage.

AN1303: Programming Series 2 Devices Using the Debug Challenge Interface (DCI) and Serial Wire Debug (SWD) - Describes how to provision and configure Series 2 devices through the DCI and SWD.

AN1311: Integrating Crypto Functionality Using PSA Crypto Compared to Mbed TLS - Describes how to integrate crypto functionality into applications using PSA Crypto compared to Mbed TLS.

Zigbee Over-the-Air Update#

AN1384: Over-the-Air Bootload Server and Client Setup for Zigbee SDK 7.0 and Higher - Describes how to perform a Zigbee over-the-air (OTA) bootloading session between a ZCL OTA Upgrade cluster client device and server device. The instructions are for EFR32MG12 development kits. Users can also refer to this procedure when setting up or testing Zigbee OTA bootload cluster download in their own development environments with their own hardware.

AN716: Instructions for Using Image Builder - Provides instructions for creating Zigbee Over-the-air (OTA) bootloader files with Image Builder, which takes an existing file (or multiple files) and wraps them in the file format as declared in the Zigbee specification.

Bootloading#

UG103.06: Bootloader Fundamentals - Introduces bootloading for Silicon Labs networking devices. Discusses the Gecko Bootloader as well as legacy Ember and Bluetooth bootloaders, and describes the file formats used by each.

UG489: Silicon Labs Gecko Bootloader User's Guide for GSDK 4.0 and Higher - Describes the high-level implementation of the Silicon Labs Gecko Bootloader for EFR32 SoCs and NCPs, and provides information on how to get started using the Gecko Bootloader with Silicon Labs wireless protocol stacks in GSDK 4.0 and higher.

AN1084: Using the Gecko Bootloader with EmberZNet - Includes detailed information on using the Silicon Labs Gecko Bootloader with EmberZNet. It supplements the general Gecko Bootloader implementation information provided in UG489: Silicon Labs Gecko Bootloader User's Guide.

AN1218: Series 2 Secure Boot with RTSL - Contains detailed information on configuring and using the Secure Boot with hardware Root of Trust and Secure Loader on Series 2 devices, including how to provision the signing key. This is a companion document to UG266: Silicon Labs Gecko Bootloader User's Guide.

AN1326: Transitioning to the Updated Gecko Bootloader in GSDK 4.0 and Higher - Gecko Bootloader v2.x, introduced in GSDK 4.0, contains a number of changes compared to Gecko Bootloader v1.x. This document describes the differences between the versions, including how to configure the new Gecko Bootloader in Simplicity Studio 5.

Smart Energy#

AN714: Smart Energy ECC-Enabled Device Setup Process - Describes how to set up a device with the security resources required to support Smart Energy (SE) security, which is based on certificate-based key establishment (CBKE) using Elliptic-Curve Cryptography (ECC). You should be familiar the Zigbee Smart Energy Profile specification.

AN708: Setting Manufacturing Certificates and Installation Codes - Provides an overview of the use of install codes and certificates in a Smart Energy network. Describes the components of a Smart Energy certificate and the differences between test certificates and production certificates. Explains how to use Silicon Labs utilities to program, verify and erase install codes and certificates.

Green Power#

UG103.15: Green Power Fundamentals - Describes the main features and functions of Zigbee Green Power (ZGP) and a basic ZGP network, including its device types and commissioning process, and how EmberZNet supports the ZGP device types.

UG392: Using Silicon Labs Green Power with EmberZNet PRO - Introduces Silicon Labs Green Power components within the EmberZNet PRO stack and explains how to enable your network for Green Power.

AN1387: Backing Up and Restoring a Z3 Green Power Combo Gateway - Describes how to use the backup and restore feature in a zigbee_gp_z3_gateway_combo scenario application.

Certification#

AN1118: Certifying Zigbee 3.0 Devices - Includes guidelines for certifying Zigbee 3.0 devices, instructions on setting up and using the Zigbee test harness and Zigbee test tool, and troubleshooting tips.

AN1118S: Supplemental Information for Certifying Zigbee 3.0 Devices - Contains three complete PICS documents for Z3ColorControlLight, zigbee_z3_gateway and Z3SmartOutlet reference designs, along with XML files for Z3ColorControlLight clusters. Note that the Z3ColorControlLight was previously released in older SDK distributions, but is no longer shipped in current releases.

Hardware Configuration#

AN1321: Configuring Peripherals for 32 Bit devices with Zigbee 7.0 and Higher - Describes how to configure peripherals running firmware produced with Zigbee 7.0 and higher using Simplicity Studio's Pin Tool and Project Configurator.

AN961: Bringing Up Custom Devices for the EFR32MG and EFR32FG Families - Describes how to initialize a piece of custom hardware (a 'device') based on the EFR32MG and EFR32FG families so that it interfaces correctly with a network stack. The same procedures can be used to restore devices whose settings have been corrupted or erased.

AN1323: Configuring Antenna Diversity for Zigbee EmberZNet 7.0 and Higher - Describes how to use Project Configurator to configure both receive and transmit Antenna Diversity in Zigbee EmberZNet applications.

Non-Volatile Data Storage#

UG103.07: Non-Volatile Data Storage Fundamentals - Introduces non-volatile data storage using flash and the three different storage implementations offered for Silicon Labs microcontrollers and SoCs: Simulated EEPROM, PS Store, and NVM3.

AN1135: Using Third Generation Non-Volatile Memory (NVM3) Data Storage - Explains how NVM3 can be used as non-volatile data storage in various protocol implementations.

Testing#

UG104: Testing and Debugging Applications for the Silicon Labs EFR32MG Platform - Describes strategies for testing and debugging applications, including: hardware and application considerations, initial development testing, and lab testing. For additional information about later stages of programming and testing see application notes AN700.1: Manufacturing Test Guidelines and AN718: Manufacturing Test Overview.

AN718: Manufacturing Test Overview - Provides a high-level description of the different options for integrating RF testing and characterization into standard test flows. It is intended for customers who are moving from the early prototype development stage to the manufacturing production environment and need assistance with manufacturing test.

AN700.1: Manufacturing Test Guidelines for the EFR32 - Details the different options for integrating RF testing and characterization into standard test flows.

AN1162: Using the Manufacturing Test Library for EmberZNet - Describes how to use the manufacturing library and its associated plugins in Simplicity Studio to perform RF tests during the manufacturing phase.

AN1385: Performance Results for Multi-PAN RCP for OpenThread and Zigbee - Summarizes the results of simultaneous Thread and Zigbee throughput performance testing for the concurrent multiprotocol / multi-PAN RCP, running both OpenThread and Zigbee on the host processor.

Performance#

AN1142: Mesh Network Performance Comparison - Reviews the Zigbee, Thread, and Bluetooth mesh networks to evaluate their differences in performance and behavior.

AN1138: Zigbee Mesh Network Performance - Details methods for testing Zigbee mesh network performance; results are intended to provide guidance on design practices and principles as well as expected field performance results.