Over-the-air firmware/file system upgrade process for Zigbee 3.0 FOTA upgrade image file formats
Digi XBee® 3 Zigbee® RF Module
320
FOTA upgrade image file formats
OTA/OTB file
The .ota file extension represents a file which contains a FOTA upgrade image. The .otb file extension
represents a file which contains a FOTA combined upgrade image containing both the bootloader and
the firmware. However, the way the XBee 3 Zigbee RF Module processes both the files remain the
same.
fs.ota file
The .fs.ota file extension represents an over-the-air MicroPython file system upgrade image. The XBee
3 Zigbee RF Module processes these files differently as compared to OTA/OTB files.
The over-the-air file system upgrade process is explained in detail in OTA file system upgrades.
The OTA header
The FOTA uses a specific firmware file with a .ota extension. We recommend parsing the OTA header
from the OTA file first to obtain the firmware version, manufacturer code, image type and the size of
the GBL file. These parameters are required to generate the rest of the FOTA upgrade messages.
Note All fields in the OTA header with the exception of the OTA Header String are in little-endian
format.
The format of the OTA header is:
For FOTA images, the file version field contains additional hardware/software compatibility
information. We recommend that if you intend to perform an FOTA update, you use the OTA header
extracted from the file so that you can avoid undesired behavior.
Hardware/software compatibility
The Hardware Software Compatibility number ensures that an incompatible firmware is not flashed
on to the XBee 3 Zigbee RF Module. To obtain this value, query %C (Hardware/Software Compatibility)
on the target device. You can successfully update the device to a firmware if, and only if, the value in
the Minimum Hardware Version field of the FOTA header is equal to or less than the value obtained by
querying %C on the device.
Sub-elements and tags
All data after the OTA header is organized into sub-elements. Most OTA files will contain a single sub-
element: the upgrade image. Sub-elements are arranged as tag-length-value sets, as shown in the
table below.
Bytes Fieldname Description
2 Sub-
element
Tag
The tag for the sub-element, in little-endian format. This is usually 0x0000 for
'upgrade image' (this is the case for both firmware upgrades and file system
updates).