Firmware Upgrades
Overview
Firmware is like a device driver for the hardware. It is responsible for the underlying work of a system, for example, the basic input/output system (BIOS) on a computer mainboard.
Firmware upgrade, also called firmware over the air (FOTA), allows users to upgrade the firmware of LwM2M or MQTT devices in OTA mode.
Firmware Upgrade for Devices Using LwM2M over CoAP

The firmware upgrade process for a device using LwM2M over CoAP is as follows:
1-2. A user uploads a firmware package on the IoTDA console and creates a firmware upgrade task on the console or an application.
3. A device reports data to the platform. The platform detects that the device is online and triggers the upgrade negotiation process.
- If the returned firmware version is the same as the target version, no upgrade is required.
- If the returned firmware version is different from the target version, the platform continues the upgrade.
- If the query is successful, the platform calculates the number of concurrent upgrade tasks based on the RSRP and SINR ranges described in the figure below, and continues with 9.
- RSRP and SINR in range 0: 50 devices in the cell can be upgraded simultaneously.
- RSRP in range 0 and SINR in range 1: 10 devices in the cell can be upgraded simultaneously.
-
RSRP in range 1 and SINR in range 2: Only one device in the cell can be upgraded at a time.
-
RSRP and SINR can be queried but are not within any of the three ranges: Only one device in the cell can be upgraded at a time.

If only a small number of devices can be upgraded simultaneously, you can contact the local carrier to see if coverage can be improved.
- If the query fails, the process continues with 8.
- If the query is successful, 10 devices in the cell can be upgraded simultaneously.
- If the query fails, the upgrade fails.
9. The platform subscribes to the firmware upgrade status from the device.
10-11. The platform delivers the package download URL. The device downloads the firmware package from the URL. After the download is complete, the device notifies the platform. (Firmware packages can be downloaded in segments, and resumable download is supported.)
12–13. The platform delivers an upgrade command to the device, and the device performs the upgrade. After the upgrade is complete, the device notifies the platform.
14-16. The platform delivers a command to query the firmware upgrade result. After obtaining the result, the platform unsubscribes from the upgrade status and notifies the IoTDA console or application of the upgrade result.
Firmware Upgrade for Devices Using MQTT

The firmware upgrade process for a device using MQTT is as follows:
1-2. A user uploads a firmware package on the IoTDA console and creates a firmware upgrade task on the console or an application.
3. The platform checks whether the device is online and triggers the upgrade negotiation process immediately when the device is online. If the device is offline, the platform waits for the device to go online and subscribes to the upgrade topic. After detecting that the device goes online, the platform triggers the upgrade negotiation process.
- If the returned firmware version is the same as the target version, no upgrade is required. The upgrade task is marked successful.
- If the returned firmware version is different from the target version and this version supports upgrades, the platform continues the upgrade.
6-7. The platform delivers the package download URL, token, and package information. The user downloads the software package using HTTPS based on the package download URL and token. The token is valid for 24 hours.
8. The device upgrades the firmware. After the upgrade is complete, the device returns the upgrade result to the platform.
9. The platform notifies the IoTDA console or application of the upgrade result.
Uploading a Firmware Package
On the IoTDA console, you can upload a firmware package to the Firmware List page for management.
- Log in to the IoTDA console.
- In the navigation pane, choose .
- On the Firmware List tab page, click Upload.
- On the page displayed, set the parameters and click OK to upload a firmware package.
Fill in the parameters as follows:- Firmware File: Upload a firmware package. The package name cannot contain Chinese characters.
- Firmware Version: Specify the version of the firmware package.
- Product: Select the product model of the device.
- Supported Source Versions: Enter the version manually. To add multiple versions, press Enter after inputting one version, and then input the next.
Currently, you can upload signed firmware packages to the platform, but cannot modify public keys. If you attempt to upload a signed firmware package, the platform uses the available public key to verify the signature. If you have not uploaded the public key or the private key of the signature has changed, the signature verification fails. Consequently, uploading the firmware package fails.
The function of uploading signed firmware packages will be removed soon. To ensure proper use of firmware upgrades, directly upload the files to be delivered to the device.
Upgrading the Firmware for a Batch of Devices
There are two ways to upgrade the firmware for a batch of devices:
- Call the API Creating a Batch Task.
- Create a firmware upgrade task on the IoTDA console.
The following describes how to create a firmware upgrade task for a batch of devices on the console.
- Log in to the IoTDA console.
- In the navigation pane, choose . On the Firmware List tab page, click Create Upgrade Task in the upper right corner.
- On the Firmware Upgrades tab page, click Create Task.

- In the Set Basic Information pane, set the task name, execution time, and retry policy.
If Retry is enabled, you can set the number of retry attempts and retry interval. You are advised to set Retry Attempts to 2 and Retry Interval to 5 minutes. If an upgrade fails, the upgrade will be retried 5 minutes later.

- Select a firmware package.

- Select the device group to upgrade and click Create Now.
For details on how to create a group and add devices to the group, see Groups and Tags.

- View the result on the task list. You can click View to view the result for each device on the Execution Details page.
If an upgrade task is being executed, it cannot be deleted. To delete an upgrade task, manually stop the task first.
Firmware Upgrade Failure Cause
Failure causes reported by the platform are described below.
|
Failure Cause |
Description |
Recommendation |
|---|---|---|
|
Device Abnormal is not online |
The device is offline or abnormal. |
Check the device. |
|
Task Conflict |
A task conflict occurs. |
Check whether a software upgrade, firmware upgrade, log collection, or device restart task is in progress. |
|
Waiting for the device online timeout |
The device does not go online within the specified time. |
Check the device. |
|
Wait for the device to report upgrade result timeout |
The device does not report the upgrade result within the specified time. |
Check the device. |
|
Waiting for report device firmware version timeout |
The device does not report the firmware version within the specified time. |
Check the device. |
|
Waiting for report cellId timeout |
The device does not report the cell ID within the specified time. |
Check the device. |
|
Updating timeout and query device version for check timeout |
The device does not report the upgrade result or device version within the specified time. |
Check the device. |
|
Waiting for device downloaded package timeout |
The device does not finish downloading the firmware package within the specified time. |
Check the device. |
|
Waiting for device start to update timeout |
The device does not start the update within the specified time. |
Check the device. |
|
Waiting for device start download package timeout |
The device does not start to download the firmware package within the specified time. |
Check the device. |
Failure causes reported by devices are described below.
|
Failure Cause |
Description |
Recommendation |
|---|---|---|
|
Not enough storage for the new firmware package |
The storage space is insufficient for the firmware package. |
Check the storage space on the device. |
|
Out of memory during downloading process |
The memory is insufficient during the download process. |
Check the device memory. |
|
Connection lost during downloading process |
The connection is interrupted during the download process. |
Check the device connection status. |
|
Integrity check failure for new downloaded package |
The integrity check on the firmware package fails. |
Check whether the firmware package downloaded is complete. |
|
Unsupported package type |
The firmware package type is not supported. |
Check whether the device status and firmware package provided by the manufacturer are correct. |
|
Invalid URI |
The URI is unavailable. |
Check whether the download address of the firmware package is correct. |
|
Firmware update failed |
The firmware fails to update. |
Check the device. |
FAQs
- Can the Target Version Be Earlier Than the Source Version?
- How Do I Obtain Software or Firmware Packages and Their Version Numbers?
- Are Services Interrupted During a Software or Firmware Upgrade?
- What Should I Do If a Software or Firmware Upgrade Task Is Ended Immediately After Being Created?
- What Are Common Software or Firmware Upgrade Errors?
Last Article: Groups and Tags
Next Article: Software Upgrades
Did this article solve your problem?
Thank you for your score!Your feedback would help us improve the website.