How do I roll out a new firmware release on the Golioth Cloud?

What do I need to do in order to upload a new firmware release to the Golioth cloud?

The first thing you will want to do is to ensure the firmware you have built has a “build version attached”. If you’re following the directions from the nRF9160 OTA video / blog, you would add the following to your west build command:

west build -b <your_board_name> <target_app_directory> -p -- -DCONFIG_MCUBOOT_IMAGE_VERSION=\"1.0.0\"

(note that the double dash at the beginning helps to escape the west build command and instead send a compiler message to create an image version. This will update the reported firmware version on the Golioth console:

Next, you will want to upload a binary to the Golioth Artifact page. If you upload that same image (v1.0.0), the DFU sample will not do anything because versions match on the device and on the cloud.

Look for the filed (app_update.bin) in the build/zephyr directory. This is the file that MCUboot is expecting and what we need to upload as an artifact.

Finally, you need to create a “Release” that references the previously created artifact.

Once you click “Rollout”, any devices that are eligible for upgrade will be alerted to the newly available firmware image and will start trying to download that image to install on the eligible device.

After the device has a firmware version that matches the latest available version on the Golioth servers, you will see a similar notice on the UART output: