AWS IoT Over-the-air Update  v2.0.0 (Release Candidate)
Client library for AWS IoT OTA
AWS IoT Over-the-air Update Documentation

AWS IoT Over-the-air Update Library (Release Candidate).

AWS IoT Over-the-air Update library enables you to manage the notification of a newly available update, download the update, and perform cryptographic verification of the firmware update. Using the Over-the-air (OTA) client library, you can logically separate firmware updates from the application running on your devices. The Over-the-air (OTA) client library can share a network connection with the application, saving memory in resource-constrained devices. In addition, the OTA library lets you define application-specific logic for testing, committing, or rolling back a firmware update. The library supports different application protocols like Message Queuing Telemetry Transport (MQTT) and Hypertext Transfer Protocol (HTTP) and provides various configuration options you can fine tune depending on network type and conditions.

The major functions that this library’s APIs provide are –

  • Register for notifications or poll for new update requests that are available.
  • Receive, parse and validate the update request.
  • Download and verify the file according to the information in the update request.
  • Run a self-test before activating the received update to ensure the functional validity of the update.
  • Update the status of the device.
See also
Functions for more information.

AWS services can be used with this library to manage various cloud related topics such as sending firmware updates, monitoring large numbers of devices across multiple regions, reducing the blast radius of faulty deployments, and verifying the security of updates.

OTA Dependencies

dot_inline_dotgraph_1.png
OTA Dependencies

Currently, the OTA library has the following direct dependencies:

  • coreJSON: To parse the JSON Job document received for the update.
  • tinyCBOR: To decode the encoded data stream which contains the file blocks.

Memory Requirements

Memory requirements of the OTA library.

Code size of OTA library files (sizes generated with GCC for ARM Cortex-M toolchain)
File No Optimization (asserts enabled) With -O1 Optimization (asserts disabled) With -Os Optimization (asserts disabled)
ota.c 19.9k 12.0k 10.2k
ota_interface.c 0.7k 0.1k 0.1k
ota_base64.c 2.7k 1.0k 0.9k
ota_mqtt.c 8.9k 3.7k 3.4k
ota_cbor.c 2.5k 1.1k 1.0k
ota_http.c 1.6k 0.5k 0.5k
Total estimates 36.3k 18.4k 16.1k