OTA Image Creation#

Silicon Labs has created a tool for generating OTA images called image-builder. The image-builder generates a '.ota' (over-the-air) file from a .gbl (Gecko Bootloader) file.

Generating a .gbl file#

Simplicity Commander is required to generate a GBL image. Once all changes are made and the client's firmware version has been bumped in the OTA Bootloader Cluster Client Policy component, use the following syntax to generate the GBL image:

# commander gbl create <gblfile>.gbl --app <filename>.s37

For bootloader projects, use the --bootloader argument instead of --app. A more complete list of arguments can be found by using the help argument (i.e. commander --help). More information can be found by visiting GBL Commands in the Simplicity Commander User Guide.

GBL images can be created using --encrypt and --sign options for users looking for secure the firmware. This is covered in the Security section of Advanced Topics.

Generating a .ota File#

Once the GBL has been created, the Zigbee over-the-air (OTA) file can be created by using image builder:

$ image-builder-windows.exe --create <ota_name>.ota --string "ZNet_OTA_Client" --version 3 --manuf-id 0x1002 --image-type 0 --tag-id 0x0000 --tag-file <gblfile>.gbl

The resulting ota file can be loaded onto a server's host to begin the OTA process.

More information on this tool, including the --help output for all options, can be found in Instructions for Using Image Builder.

Series 3 Image Creation#

Series 3 only supports GBL File format v4. This format has significant differences as compared to version 3. For more information, see Gecko Bootloader File Format v4.

To create a Series 3 GBL image use the following command:

# commander gbl create <gblfile>.gbl --app <filename>.s37

The Image Builder legacy tool was deprecated starting with release 2025.12.0. Use Simplicity Commander to generate OTA images. Use the following command to generate an OTA image:

# commander ota create --upgrade-image <output>.gbl --manufacturer-id 0x1002 --image-type 0x5678 --firmware-version 0x00000005 --string "Example" -o example.ota