OTA update of a specific partition on device

0

Hello,

Is there a way to use AWS's Jobs to update only a partition on my device (ESP32-S3). The partition on my device is a filesystem which can be generated into a separate binary file. In my application I sometimes do not need a full firmware update but will need to change files within the filesystem partition. Is this possible with AWS's jobs? Can it possibly be done with specifying the partition address?

kevinah
asked 10 months ago265 views
1 Answer
0

Hi. The AWS IoT OTA mechanism is essentially responsible for securely and reliabily transporting your binary files to your devices. What they are, where you store them, and how you apply them, is largely up to you. The OTA library requires you to provide implementations for numerous platform-specific operations, including these: https://www.freertos.org/Documentation/api-ref/ota-for-aws-iot-embedded-sdk/docs/doxygen/output/html/ota_pal_interface.html. And this is where you can control what is done with each binary.

You can send multiple files in a single OTA update: https://docs.aws.amazon.com/iot/latest/apireference/API_CreateOTAUpdate.html#iot-CreateOTAUpdate-request-files. And each file can have a file name and type: https://docs.aws.amazon.com/iot/latest/apireference/API_OTAUpdateFile.html#iot-Type-OTAUpdateFile-fileName. You can use these to decide how to handle each file.

More generally, a FreeRTOS OTA is just an AWS IoT Job with a pre-defined job document and some additional features layered on top such as code signing. Instead of OTA, you could use jobs directly and have complete freedom to define whatever you want in the job document. OTA however does do some undifferentiated heavy lifting for you, so I would recommend you use it unless it is too restrictive for your needs.

Embedded C SDK: OTA and Job libraries: https://github.com/aws/aws-iot-device-sdk-embedded-C/tree/main/libraries/aws

Embedded C SDK: Demos: https://github.com/aws/aws-iot-device-sdk-embedded-C/tree/main/demos

ESP32-S3 reference implementation: https://github.com/FreeRTOS/iot-reference-esp32c3

profile pictureAWS
EXPERT
Greg_B
answered 10 months ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions