\section{Implementation}

Implementing \textit{OTA} updates under the given requirements involves three different components, which interact closely.

The first component implements the update mechanism in the firmware running on the embedded device.
It is responsible for checking and downloading the updates and installing them.
Second, the build system is in charge of building the firmware from source and publishing the built binary images.
Finally, the deployment provides infrastructure for downloading the binary firmware images and triggering the update on all devices.

\input{5-1-update_mechanism}
\input{5-2-multidevice_build_structure}
\input{5-3-automatic-deployment}