Update IoT Devices – Explained And Best Practices

The IoT (Internet of Things) concept is swarming the world’s tech industry and it is expected to have 41 billion connected devices across the globe by the year 2025. With this much of connected devices that have access to the internet through various means such as WiFi, Ethernet, 4G and even LoRa gateways, it is rather obvious that these connected devices must be able to perform shoulder-to-shoulder with their newer siblings. 

Since it’s not practical anymore to replace an existing IoT device whenever a new version comes into the market, the best possible way to add features and perform maintenance tasks is to update the software(s) and file(s) on the IoT devices. This can not only improve the existing functionality of the devices such as bug fixes, but also can add certain new softwares features as well.

What’s IoT device Updating/Upgrading?

As Wikipedia states it, “Upgrading is the process of replacing a product with a newer version of the same product. In computing and consumer electronics an upgrade is generally a replacement of hardware, software or firmware with a newer or better version, in order to bring the system up to date or to improve its characteristics.”

As far as IoT devices are concerned, there are two major ways to perform updates:

  1. Physical Update
  2. Remote/OTA(Over-The-Air) Update

Physically updating IoT devices

The most traditional way of updating devices, as we are used to it is to physically access the device and perform the update/upgrade. For a small embedded IoT system, this can be as small as plugging the device to a computer and executing the update (i.e. Arduino or other similar microcontroller based devices) or updating through specialized programmers such as JTAG programmers. This can scale itself all the way up to accessing an embedded computer such as a Raspberry Pi or a Nvidia Jetson single board computer through the local network, establishing an SSH or a remote desktop connection and performing the update.

Where physical updates meet their limits..

Updating an IoT device using physical access can only get you so far. This is especially a viable solution if you only have one or two devices to deal with; however, when there are hundreds or thousands of devices of the same type out there in the world, far from you, physical updates prove itself to be rather costly and ineffective. Therefore, there are OTA update methods that allow you to update your IoT devices remotely.

OTA updates for IoT devices

Tackling the physical update limitations, OTA updates are used to remotely update IoT devices that can be carried out all by wireless communication mediums such as the Internet, reducing human efforts.

Mainly, there are three major methods of OTA updates:

  1. Edge-to-Cloud OTA updates (E2C)
  2. Gateway-to-Cloud OTA updates (G2C)
  3. Edge-to-Gateway-to-Cloud OTA updates (E2G2C)

Edge-to-Cloud updates (E2C)

E2C updates use the internet connectivity of the IoT device to directly communicate with a remote server and receive the updates directly from the server. IoT devices that are mostly consumer-ended fall into this category, and the deployment is also simple mainly due to ease of access to the internet through WiFi and LAN connections.

Google Home, Apple Siri and the Nest thermostat are some of the examples that use the E2C update method. Raspberry Pi and other single board computer-based systems are also capable of receiving updates in the same way using specialized services such as JFrog Connect. (more on that later)

Gateway-to-Cloud updates (G2C)

A bit more complex, but more secure method when compared with the E2C method mentioned above, the gateway-to-cloud update method involves a middle-man IoT gateway such as LoRaWAN gateway device to receive, process and distribute the firmware updates to the connected IoT ‘nodes’.

This method is mostly used where the connected IoT devices cannot process the update all by themselves and do not have direct internet connectivity.

Some of the devices that use G2C OTA update methods are ATMs, remote energy monitoring systems and other banking and financial services such as kiosks. This OTA update method improves the security of the system as the devices are protected from outside attacks and vulnerabilities.

Edge-to-Gateway-to-Cloud OTA updates (E2G2C)

In the edge-to-gateway-to-cloud OTA updates method, the IoT devices can establish an internet connection through a central gateway and request updates through it. The gateway is the only device that’s connected to the internet and request updates. In this case, the IoT devices should be able to execute the update by themselves. This method is used by devices such as field-based sensors such as temperature, humidity sensors, weather sensors and other industrial management sensor systems.

Things to consider when choosing an IoT device update method

Industry experts recommend considering multiple aspects of possibilities when selecting a suitable update method for any application:

  1. Secure communication

Establishing a secure, uninterrupted communication is key to protect the edge devices from phishing and other types of attacks.

  1. Automatic recovery of failed updates

If an update process goes wrong such as a corrupted binary flash attempt, the update method should be able to revert the changes and fallback into the last-known working condition.

  1. Update integrity

All the updates should be checked for their integrity to verify that the update packages have not been altered during the transmission. This should be a fundamentally implemented security feature for any IoT device update system.

JFrog Connect for all your embedded Linux IoT management needs

From deploying updates to dozens or thousands IoT devices to remotely accessing them individually at any given time with utmost convenience, we offer you our flagship IoT device management platform, JFrog Connect. Sign up for the free trial to have a first hand experience on our platform and start managing your IoT devices today!

JFrog Connect is a modern Linux-first IoT platform designed to efficiently update, control and monitor edge and IoT devices at scale.