Revision as of 17:28, 14 December 2023 by Registered User (→‎Zigbee RUC with STM32WB)

For the sake of brevity, we will refer to Realistic Use Case (RUC) as an abbreviation throughout this discussion.

1. Introduction

The Zigbee protocol has developed for mesh networking capabilities of the internet of things (IoT) like home and building automation [1]. In the context of “Home automation”, the “Realistic Use Case” create and maintain a Zigbee mesh that runs 24h a day with a mix of different functionalities. The goal is to put our product in real-world situations that customers use to test and find potential problems before customers do.

Connectivity Realistic Use Case-Wiki-Overview logo.png

2. Zigbee Network

Without exception, the network is a “Home automation” network and the coordinator is only a Coordinator that is intended to become a “Home Gateway Device” (Zigbee HUB).
For more information about Zigbee network, refer to Wiki: Zigbee Network
The coordinator can be replaced by another such as Amazon Alexa, Google Home,… to add voice commands or test interoperability with other products.

Home Automation Example
Connectivity Realistic Use Case-Wiki-Overview Exemple.png

3. Zigbee RUC with STM32WB

The STM32CubeWB MCU Package[2] provides a lot of Zigbee applications that can be used to extend the main network.
But these applications should be adapted to run correctly in the RUC (Realistic Use Case) environment.
For this, the applications below have been created to reflect this reality:

  • On/Off Dimmable light [3]
  • Window covering [4]
  • Weather station [5]

4. Zigbee RUC SW architecture

To provide a more user-friendly working environment, the code architecture was modified. It enhances scalability, ease of maintenance and debugging. For this, some templates are developed to create Zigbee applications even more effortlessly. Previously, all the code was in a single file app_zigbee.c. In the RUC source code version, it has been split in several files and folders:

  • app_core.c : the main part where the application runs (start Zigbee stack, call services…).
  • app_menu_cfg.c : soft driver, enabling a colorful menu on UART interface [6]
  • app_zigbee.c : Manages the Zigbee primary functions to initialize stack, join network, binding…
  • app_nvm.c : Service to save Zigbee informations, enabling retrieval of the application’s state after reset or wake-up (Zigbee network, security keys, binding table, persistable attributes, …) [7]
  • Cluster Folder/File : containing all clusters files needed by the application (ex app_onoff.c)
Modification of code Architecture
Standard source code RUC source code
Connectivity Standard-source code exemple.png
Connectivity RUC-source code exemple.png

5. Acronyms and definitions

Term Definition
ZC Zigbee Coordinator
ZR Zigbee Router
ZED Zigbee End Device
RUC Realistic Use Case

6. References