\section{Implementation}

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

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

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