OTA updates are essential for deploying security updates, new functionality, and updating models. There are two different techniques for OTA updates. The first is building a custom program that, ideally, runs on its own program or thread that is different than the main program you are trying to update. This software downloads the new firmware to the flash memory and registers and starts the new firmware. If the new firmware fails to start, the custom software can then start up the working version of the software. This usually involves saving half of the flash memory available for OTA updates.
The second way is to use a system such as Azure IoT Edge to update the Docker containers on the device. This requires a device that is running a full operating system, such as Raspbian, Ubuntu, or Windows. The majority of IoT devices do not have the compute needed to support IoT Edge. In this recipe, we will talk about OTA updates on MCUs, while in the next, we will discuss...