Updating the modem firmware using AWS IoT jobs – Quectel module
At any time the AWS IoT Core Device Management service may instruct the module to install an OTA update by publishing a job document to the jobs/next topic.
When the module receives a valid JSON job document, it retrieves the firmware package from the Amazon S3 instance using a pre-signed URL within the job document.
Throughout the update process, the module publishes status information to AWS IoT Core. After the update completes, a SUCCEEDED
status is published, and the AWS IoT Core Device Management service marks the job as complete.
For information about jobs, see https://docs.aws.amazon.com/iot/latest/developerguide/iot-jobs.html.
Before you begin
Obtain the firmware image file from Eseye. Contact Support for more information: support@eseye.com.
Creating a JSON job description file
-
Create a UTF-8 encoded JSON job description file for the firmware update.
The job description must contain
operation
andlocation
parameters that specify which update to apply, and where to find it.For more information, see Example job document.
-
Upload the JSON job description file and firmware image file to the S3 bucket in the same root account as the IoT things.
For more information, see https://docs.aws.amazon.com/AmazonS3/latest/user-guide/upload-objects.html
The Job process does not permit cross-region operation. You must upload the S3 bucket in the same region as the things you are updating. If you are operating across multiple regions, upload the .zip file into an S3 bucket for each region.
Example job document
Possible operations include:
Operation | Description |
---|---|
firmware_update
|
Updates AnyNet SMARTconnect™ application on the module. The The image file must exist in Eseye This operation can optionally include |
fota
|
Updates the module firmware. The |
config_update
|
Updates the AnyNet SMARTconnect™ configuration file. The |
host_firmware
|
Downloads a software image for the host MCU. When the download completes, the host is not notified by URC. To see details of the downloaded image, send: |
For example:
{
"operation":"firmware_update",
"location": "${aws:iot:s3-presigned-url:https://s3.amazonaws.com/BucketName/ImageFileName.
}
Creating an AWS IoT custom job
The AWS IoT Console is regularly updated. The procedure below may differ from the Console version you are using. Refer to the AWS documentation for more information.
-
In the left-hand AWS IoT menu, select Manage > Jobs.
-
On the Start a job for your devices page, select Create a job.
The Select a job page appears.
-
Select Create custom job.
The Create a job page appears.
- Type in a Job ID and optional Description.
- Under Select devices to Update, click or tap Select to view a list of Thingsthat exist in the selected region.
- Select one or more checkboxes alongside the things that require the firmware update.
- Under Add a job file, select the JSON job description you created from the S3 bucket.
- Under Pre-sign resource URLs select I want to pre-sign my URLs and have configured my job file.
-
Select the pre-signing role from the drop down list.
Alternatively, create a pre-signing role if required.
- Under URL will expire at this time, select the URL expiry time from the drop-down list.
- Leave all other settings as the default settings.
- Select Next.
- On the Advanced configurations page, leave all settings as the default settings.
- Select Create to create the job and start the update process.