Selecting IoT Platform for Agricultural Machinery (Part 3 OTA Updates)
February 24, 2019
In the previous article of this case study, I drew a general overview of the IoT platforms included in this study, along with the main features supported by each platform. In this article, I focus on the Over-The-Air (OTA) software updates, and it’s availability in each IoT Platform. OTA Updates is defined as the possibility to deliver software updates using wireless carriers. This feature is of extreme importance to the customer of this case study. Therefore, it must be supported by a given IoT platform, in order to be a suitable choice to the customer (see the project specifications in the introductory article).
1. AWS IoT Platform
AWS IoT Platform supports OTA updates through Greengrass’s OTA Agent. OTA Agent is a software component stored on Edge devices and running as a root binary. After starting the Edge device, the Greengrass OTA Agent update the jobs that have been scheduled on the Cloud side and run them sequentially.
Another way to perform OTA updates is via CreateSoftwareUpdateJob API. This API can be used to support the OTA Agent and the Greengrass Core software update. The following example shows how to create a Greengrass Core software update job with the CLI:
aws greengrass create-software-update-job \ --update-targets-architecture x86_64 \ --update-targets arn:aws:iot:us-east-1:123456789012:thing/myDevice \ --update-targets-operating-system ubuntu \ --software-to-update core
4. Google Cloud IoT
Android Things OS enables OTA software updates via Device Updates API. This service is available through Android Things Console. The updates are pushed through a predefined channel, and the Update APIs allow users to apply, control, and monitor software updates on Edge devices.
5. GE Predix Platform
Predix Machine (the Edge component of GE Predix Platform) is loaded to Edge devices as docker container. This docker container is updated over the air by using Predix Edge Manager service and Predix Machine Technician Console. Beside OTA updates, the container can be also scheduled for time-based upgrades.
Using both Predix Edge Manager service and Predix Machine Technician Console, users can deploy the configuration package firstly on Edge devices, and afterwards application deployment/update can be applied.
6. Bosch IoT Suite
Bosch IoT Suite supports OTA updates via Bosch IoT Rollouts Cloud Service. This service enable operating systems updates and software updates for IoT gateways (usually under Linux), as well as firmware updates for embedded systems.
Bosch Rollouts is fully compatible with Eclipse HawkBit APIs, which is an open-source backend solution for deploying Software updates on Edge devices.
HawkBit can be run as Java .jar file, containing a created Device simulator:
java -jar examples/hawkbit-device-simulator/target/hawkbit-device-simulator-*- SNAPSHOT.jar
and can then be deployed on the Cloud.
7. Eclipse IoT
Eclipse IoT supports OTA updates through Eclipse HawkBit APIs using the same technique of Bosch IoT platform.
8. Kaa IoT Platform
The early version of Kaa IoT Platform (Kaa 0.8) has no native support to OTA Updates. However, OTA updates will be supported in the new version (Kaa 1.0 Banana Beach).
9. Ayla IoT Platform
Ayla IoT platform support OTA updates of Edge devices’ firmwares. The mechanism and conditions of applying OTA updates on Edge devices are not publicly listed. A specific use case published before 2 years also confirms the availability of OTA updates within Ayla platform.
10. ThingsBoard IoT
ThingsBoard IoT platform does not explicitly support OTA updates on Edge devices. However, it supports applying procedure calls remotely from the server to Edge devices. This feature is called Remote Procedure Calls (RPC). These remote calls from the server to Edge devices takes two forms; either with or without response from the Edge devices. Accordingly, some updates installed on local web server can be executed on Edge devices with or without a confirmation response from the Edge side.
11. Mbed IoT Platform
Mbed IoT platform has integrated a new service for Firmware Over The Air (FOTA) Updates on Edge devices. The current version of this service supports Edge devices with Nordic’s nRF51822 Bluetooth system. This type of Edge devices usually supports Bluetooth Low Energy (BLE) local networks. BLE is supported by different operating systems, including iOS, Android, Linux, and Windows (8 and 10).
FOTA process is depending basically on a bluetooth stack called SoftDevice. When the Edge device boots, SoftDevice checks the User Information Configuration Register (UICR), which in turn points to either the boot loader or an app. If the UICR points to an app, FOTA service starts to update this app. If UICR points to the boot loader, it updates the device firmware.
12. ARTIK IoT Platform
ARTIK IoT platform enables OTA Updates on Edge devices. This process is managed by an API called Developer Dashboard. Each new firmware image must be associated with an update type and version. The platform supports OTA updates for OS, applications/software, and gateway software that bind the Edge devices to the cloud. A good tutorial for applying OTA updates using ARTIK IoT platform is here.
13. ThingWorx IoT Platform
PTC (the producer of ThingWorx IoT platform) introduced a new service called Axeda. Using Axeda Machine Management Apps, users can apply OTA updates and provisioning. It supports also firmware automatic OTA updates using Parameter Administration (PA). The connectivity services and data models provided by Axeda enable users to remotely admin, monitor, and configure the Edge devices. The mechanism and conditions of applying OTA updates on Edge devices are not available online.