Revision as of 18:21, 2 November 2022 by Registered User

1. Introduction

OTA is a feature that allows to update Zigbee devices Over-The-Air. Typically, the OTA server offers/presents an upgrade binary, and an OTA client downloads it. The implementation of the OTA feature uses the Exegin OTA Cluster.

2. STM32WB OTA use case

Zigbee OTA requires at least two STM32WBxx boards running Zigbee protocol with specific applications:

  • one board (Server) running ZigBee_Ota_Server application
  • one or more boards (Clients) running ZigBee_Ota_Client application

First, the binary to download must be flashed on the “FREE” memory region on the Server side, by using STM32CubeProgrammer for example. In our use-case, it is flashed at the address 0x08030000.
Then, the server initiates an OTA provisioning process and clients may or not request it. Multiple clients can be updated at the same time.
The binary should be transferred and flashed on the “FREE” memory region of the client. In our case it will be flashed at the address 0x08030000.

OTA Server/Client model
Connectivity OTA.png

During application update, the server transfers the binary to the client. Upon the reception of all the frames of the binary, the device will reboot.
The binary could be either for M4 application or for M0 coprocessor wireless binary.

2.1. Application update (M4)

The OTA verify that the downloaded binary is for M4 and check the integrity code: if it is OK, the OTA launch the new application firmware (here On/Off app).

Application update
Connectivity M4 OTA.png

2.2. Coprocessor wireless binary update (M0)

If the downloaded binary is for coprocessor M0, the OTA check the integrity code and reboot on FUS if it is OK. The wireless coprocessor install the secure binary and reboot on the OTA. The OTA is now ready to receive the new M4 firmware which should be always updated and flashed after an M0 update.

Coprocessor wireless binary update
Connectivity M0 OTA.png
No categories assignedEdit