Documentation Index

Fetch the complete documentation index at: https://learn.servitly.com/llms.txt

Use this file to discover all available pages before exploring further.

Firmware Management

Prev Next

Keeping the firmware of connected products up to date is one of the most effective ways to mitigate product obsolescence, fix after-sales defects, and roll out new features without touching the hardware.
Traditionally, a firmware update required a technician to be on-site during maintenance. Thanks to the DPS and the IoT connection, the same operation can be triggered remotely, on a single product or across an entire fleet, avoiding unnecessary truck rolls and making sure every machine runs a known, secure, and supported version.

In the DPS, a firmware update is a self-service operation available to authorized users directly from the product pages: the DPS user selects the product, reviews the proposed firmware version, and triggers the update, while the DPS takes care of delivering the update command to the remote device.

How a firmware update works

It is important to understand that the DPS is not responsible for installing the firmware on the device. When an update is triggered, the DPS sends a firmware update command to the remote product, including the version to install and the location from which to download the package.

Here is an example of an update message when using the MQTT connector.

TOPIC <username>/<asset-id>(/<thing-path>)?/update
PAYLOAD
{
 data: {
   "command" : "UPDATE_FIRMWARE",
   "name": "wifi",
   "size": 1572864,
   "md5": "b95b38725d3d341ca13e6187530d2821",
   "version": "1.2.3",
   "downloadUrl": "https://api.servitly.com/123456y7uhgbnht5r6"
 }
}

The remote product/machine must subscribe to a specific topic in order to receive update messages.
When the message is received, the connected product is responsible for downloading the package, verifying it, applying the update, and reporting back the newly installed version.

An update is considered complete only when the product publishes the metric that identifies the currently installed firmware version. This closes the loop and lets the DPS confirm to the user that the operation succeeded.
Two conditions must be met for a firmware update to be available:

  • The connected product must be online at the time of the update, since the update command is delivered to devices that are currently connected.

  • The DPS user must have the Update Firmware permission, which enables the firmware update actions in the DPS.

Updating a single product

To update the firmware of an individual product, the DPS user relies on the Thing Firmware widget, typically placed in a Control (or Settings) tab of the product page.
The widget automatically detects whether a newer firmware version is available and proposes the update.

By clicking on the firmware row, the user can review the content of the new version (description and release notes) and start the operation by pressing the Update Firmware button.
The widget then waits until the device reports the new version through its Version Metric, showing the outcome of the update.

Updating multiple products in bulk

When the same firmware has to be rolled out to hundreds or thousands of products, the DPS user can trigger the update as a bulk operation rather than product by product.
Firmware updates in bulk can be launched from the Thing List or Map widgets by selecting the target products and then the firmware update operation.

Because a fleet-wide rollout can take time, the bulk update can be executed immediately or scheduled for a later moment (for example, overnight).
The progress of the rollout can then be followed through the Bulk Update Status widget.

External API invocation throttling

In case of external API invocation (e.g., AWS IoT Core, HTTP Connector), firmware update messages are sent with a maximum of 2 parallel requests at a time.
This means that if 1000 devices are to be updated, and each API request takes 1 second to complete, the entire update process will take 500 seconds.

Configuring firmware in the Console

Before DPS users can perform any update, the firmware versions must be made available by the Console User.
For more details about firmware configuration, you can refer to the Remote Control article.

Supported IoT Connectors

The firmware update also works with other bidirectional IoT Connectors, for instance:

  • AWS IoT Core: if configured in the plugin, a request is made to AWS IoT Jobs to schedule the firmware update

  • Azure Service Bus: the message is published on the remote queue.

  • HTTP Connector: the message is sent to the remote control endpoint configured in the plugin.