An example showing the use of the Matter OTA Requestor functionality on the Silicon Labs EFR32 MG12.
The EFR32 OTA Requestor example provides a baseline demonstration the Matter OTA Requestor functionality built with the Silicon Labs gecko SDK. It can be controlled by a Chip controller over OpenThread network.
For initial setup steps please see the CHIP EFR32 Lighting Example README at examples/lighting-app/efr32/README.md
Supported hardware:
MG12 boards:
MG21 boards: Currently not supported due to RAM limitation.
MG24 boards :
Build the example application:
cd ~/connectedhomeip ./scripts/examples/gn_efr32_example.sh ./examples/ota-requestor-app/efr32/ ./out/ota-requestor-app BRD4161A
To delete generated executable, libraries and object files use:
$ cd ~/connectedhomeip $ rm -rf ./out/
On the command line:
$ cd ~/connectedhomeip/out/ota-requestor-app/BRD4161A $ python3 chip-efr32-ota-requestor-example.flash.py
Or with the Ozone debugger, just load the .out file.
See examples/lighting-app/efr32/README.md
Bring up the OpenThread Border Router as discussed in examples/lighting-app/efr32/README.md and get its operational dataset.
On a Linux or Darwin platform build the chip-tool and the ota-provider-app as follows:
scripts/examples/gn_build_example.sh examples/chip-tool out/ scripts/examples/gn_build_example.sh examples/ota-provider-app/linux out/debug chip_config_network_layer_ble=false
Build or download the Gecko Bootloader binary. Bootloader should be built with the Gecko SDK version 3.2.1 or earlier, type “external SPI” configured with a single slot of at least 1000 KB. Pre-built binaries should be available in
third_party/efr32_sdk/repo/platform/bootloader/sample-apps/bootloader-storage-spiflash-single
Using the commander tool upload the bootloader to the device running the requestor application.
Create a bootable image file:
commander gbl create chip-efr32-ota-requestor-example.gbl --app chip-efr32-ota-requestor-example.s37
In a terminal start the provider app passing to it the path to the bootable image file created in the previous step:
./out/debug/chip-ota-provider-app -f chip-efr32-ota-requestor-example.gbl
In a separate terminal run the chip-tool commands to provision the Provider:
rm -r /tmp/chip_* ./out/chip-tool pairing onnetwork 1 20202021
If the Requestor had been previously commissioned hold Button 0 for six seconds to factory-reset the device.
In the chip-tool terminal enter:
./out/chip-tool pairing ble-thread 2 hex:<operationalDataset> 20202021 3840
where operationalDataset is obtained from the OpenThread Border Router.
Once the commissioning process completes enter:
./out/chip-tool otasoftwareupdaterequestor announce-ota-provider 1 0 0 0 2 0
The Requestor will connect to the Provider and start the image download. Once the image is downloaded the Requestor will reboot into the downloaded image.