Device firmware update mechanism
Updating the device firmware is one of the crucial stages of vendor support for the product. Using updates, the manufacturer can add new functionality, fix bugs in previous firmware versions, and optimize the performance of the devices.
The 2Smart Cloud platform provides mechanisms for delivering updates to devices to implement this functionality. The primary delivery method is over-the-air updates when the device automatically checks for updates, downloads a new firmware version when available, and installs it. Over–the-air updates are the built-in functionality of the device when using the platform’s SDK.
2Smart Cloud firmware update delivery mechanism
2Smart Cloud devices with firmware written using the SDK automatically check for firmware updates once a day by default. The device user can control the delivery of updates in the mobile application:
- enable and disable automatic check for updates,
- configure the time of day for automatic check for updates,
- start checking for updates manually.
The 2Smart Cloud uses two routes to deliver new firmware versions:
route to check the current published version
https://cloud.2smart.com/firmwares/v1/products/<product_id>/firmware-version
route hosting the current stable firmware version
https://cloud.2smart.com/firmwares/v1/<product_id>.bin
When updating automatically or manually, the device refers to the first route to compare the number of the current stable firmware version on the server with the number of the already installed version. If the current version number matches the installed firmware version number or is less than it, no update is required, and the process ends.
If the device detects that firmware is available on the server with a higher number than the one already installed, the update process starts. The device accesses the second route, downloads the firmware file, and installs it.
Updating device firmware
If vendors need to release a firmware update for their device, they should follow the instructions for major product updates. To publish a stable firmware version, the vendor needs to publish the changes.
If staging is used and updates need to be pre-tested on a limited number of devices, publishing the changes is unnecessary. Testing takes place within the draft version.