Device Update for IoT Hub agent overview

The Device Update agent consists of two conceptual layers:

  • The interface layer builds on top of Azure IoT Plug and Play (PnP) to allow messages to flow between the Device Update agent and the Device Update service.
  • The platform layer does the high-level update download, install, and apply actions, which can be platform- or device-specific.

The following diagram lists Device Update agent capabilities and actions.

Diagram that shows agent implementations.

Interface layer

The interface layer is made up of the following components:

These interfaces use a configuration file for the device specific values to report to Device Update services. For more information, see Device Update configuration file.

Device Update core interface

The Device Update core interface is the primary communication channel between the Device Update agent and Device Update services.

Device information interface

The device information interface implements the Azure IoT PnP DeviceInformation interface.

Diagnostic information interface

The diagnostic information interface enables remote log collection for diagnostics.

Platform layer

All clients that run on Linux systems, such as the Device Update Raspberry Pi reference image, use the Linux platform layer. The Linux platform layer integrates with the Delivery Optimization client for downloads.

The Linux platform layer implementation that integrates with Delivery Optimization for downloads is in src/platform_layers/linux_platform_layer. This layer can integrate with update handlers such as SWUpdate, Apt, and Script to implement the installers.

If you choose to implement your own downloader instead of Delivery Optimization, be sure to review the requirements for large file downloads.

Update handlers

Update handlers invoke installers or commands to do over-the-air updates. You can either use existing update content handlers, or implement a custom content handler that can invoke any installer to execute the over-the-air updates you need for your use case.

Check and upgrade agent version

You can check the installed versions of the Device Update agent and the Delivery Optimization agent in the properties section of your IoT device twin.

If you use the Device Update agent, make sure you're on the version 1.0.0 general availability (GA) version. For more information, see Migrate devices and groups to the latest Device Update release.