Upgrade Guide
Overview
Software includes system software and application software. The system software provides the basic device functions, such as the compilation tool and system file management. The application software provides functions such as data collection, analysis, and processing, depending on the features the device provides.
Software upgrade, also called software over the air (SOTA), allows users to upgrade the software of LwM2M or MQTT devices in OTA mode. For an LwM2M product model, the software upgrade complies with PCP. For details, see PCP Introduction. You must comply with PCP during device adaptation development of software upgrades. For details on the adaptation method, see Adaptation Development on the Device Side. For an MQTT product model, the software upgrade protocol is not verified.
Software Upgrade for Devices Using LwM2M over CoAP

The software upgrade process for a device using LwM2M over CoAP is as follows:
1-2. A user uploads a software package on the IoTDA console and creates a software 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 software version is the same as the target version, no upgrade is required.
- If the returned software version is different from the target version, the platform continues the upgrade.
6. The platform subscribes to the software upgrade status from the device.
- 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 10.
- 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 9.
- If the query is successful, 10 devices in the cell can be upgraded simultaneously.
- If the query fails, the upgrade fails.
10-12. The platform notifies the device of a new software package version. The device starts to download the software package. After the download is complete, the device notifies the platform. (Software packages can be downloaded in segments, and resumable download is supported. The versionCheckCode field carried in a segment determines the software package to which the segment belongs.)
13-14. 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.
15. The platform notifies the IoTDA console or application of the upgrade result.
Software Upgrade for Devices Using MQTT

The software upgrade process for a device using MQTT is as follows:
1-2. A user uploads a software package on the IoTDA console and creates a software 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 software version is the same as the target version, no upgrade is required. The upgrade task is marked successful.
- If the returned software 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 software. 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 Software Package
- Log in to the IoTDA console.
- In the navigation pane, choose .
- On the Software List tab page, click Upload.
- On the page displayed, set the parameters and click OK to upload a software package.
Fill in the parameters as follows:- Software File: Upload a software package. The package name cannot contain Chinese characters.
- Software Version: Specify the version of the software 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.
- Software Package Segment Size: Set the size of each segment in the software package downloaded by the device, in bytes. The value ranges from 32 to 500. The default value is 500.
Currently, you can upload signed software packages to the platform, but cannot modify public keys. If you attempt to upload a signed software 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 software packages will be removed soon. To ensure proper use of software upgrades, directly upload the files to be delivered to the device.
Upgrading the Software for a Batch of Devices
There are two ways to upgrade the software for a batch of devices:
- Call the API Creating a Batch Task.
- Create a software upgrade task on the IoTDA console.
The following describes how to create a software upgrade task for a batch of devices on the console.
- Log in to the IoTDA console.
- In the navigation pane, choose . On the Software List tab page, click Create Upgrade Task in the upper right corner. On the Software 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 software package.

- Select the device or 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.
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: Software Upgrades
Next Article: Adaptation Development on the Device Side
Did this article solve your problem?
Thank you for your score!Your feedback would help us improve the website.