AWS IoT Device SDK C  202108.00
SDK for connecting to AWS IoT from a device using embedded C.
AWS IoT Over-the-air Update

These demos demonstrate usage of the AWS IoT Over-the-air Update library.

OTA over MQTT Demo

A demo of OTA library to perform a firmware update using coreMQTT for data operations.

This example demonstrates the use of OTA library to perform a device firmware update. The Linux application acts as an OTA client and AWS Services(AWS IoT, S3, Jobs etc.) are used to send an update to the client. The demo uses the coreMQTT library to establish a connection to AWS IoT , then subscribes to OTA specific MQTT topics to receive a job. After a user schedules a job, the client begins the download using coreMQTT to request, ingest, and store the data blocks, with the help of tinyCBOR to encode the data stream. Once the image is downloaded, the file key signature, version, and image is verified to reset and display a successful update. Workflow for the demo is as follows:

  • User builds initial application with version 0.9.2.
  • User runs the application, establishes a connection to AWS IoT, and awaits a job.
  • User increases the application version to 0.9.3, and rebuilds the executable.
  • User schedules an OTA Update Job with the newer executable.
  • OTA client receives the job document and verifies all the parameters.
  • The new firmware is downloaded using coreMQTT and tinyCBOR. This is then verified by the OTA client.
  • User runs the downloaded executable to notify AWS IoT of a successful update and display it on the console and device logs.
OTA over coreMQTT Demo Workflow

OTA over HTTP Demo

A demo of OTA library to perform a firmware update using coreHTTP for data operations.

This example is a modification of the above demo to securely send a firmware image to the device by using coreHTTP for data plane operations. While it still uses MQTT for control operations like pending job notifications and updating job status, this demo uses HTTP instead of MQTT to download the file.

OTA over coreHTTP Demo Workflow