Efficient over-the-air software and firmware updates for the Internet of Things
April 01, 2014
With the Internet of Things (IoT) boom, the number and types of smart devices is growing, and so is the amount of software in these devices. Competiti...
With the Internet of Things (IoT) boom, the number and types of smart devices is growing, and so is the amount of software in these devices. Competitive markets lead to shorter time to market and hence half-baked products, requiring fixes to core software even soon after release. Subsequently, there is a growing need for a comprehensive way to remotely manage these devices. Firmware Over The Air (FOTA) is a cost-effective, reliable, and secure method for updating connected devices.
As more and more updates are performed successfully every year on more and more device types, the volume of Firmware Over The Air (FOTA) usage is increasing significantly. Since consumers expect their devices to stay up to date with the latest features and performance improvements, FOTA is now a standard feature of mobile phones, tablets, and other connected devices. In fact, consumers eagerly anticipate new firmware releases and become frustrated if their device doesn’t receive timely updates. News about new software updates delivered over the air are published daily in telecom media channels, and, when it comes to major versions of Android or iOS, even in the mainstream media.
Currently, most FOTA updates are provided through two sources:
· Mobile operators – They use FOTA to keep devices up to date in order to reduce customer care costs. Operators typically use their own delivery infrastructure, mostly based on the Open Mobile Alliance-Device Management (OMA-DM) standard. They require manufacturers to include a FOTA client in their devices so that the operator can push software updates over the air to all devices in the network.
· Device OEMs – In countries where control of the operators is not strict, most OEMs prefer to take responsibility for FOTA to ensure their customers get updates in a timely manner. The OEMs build their own delivery infrastructure, integrate a FOTA client, and push updates over the air to their devices.
While FOTA is needed to ensure that connected devices, cars, and appliances operate properly, there are significant challenges that arise. These challenges can be broken down into three main parts:
· Creating the smallest delta file to send a reliable and cost-effective update
· Managing version control on hundreds of thousands of devices simultaneously
· Updating “resource-constrained” devices
Increasingly, more comprehensive software management solutions are needed for manufacturers to establish high-value, one-to-one customer relationships, build differentiated products, and create ongoing revenue streams.
Shrinking the delta file
It’s not surprising that the size of the code base and the complexity of the underlying software are growing at a similar pace as the connected devices that contain them. This complexity creates a significant maintenance challenge. The operator will inevitably have to deal with network congestion problems when deploying the latest software and OS versions to waiting consumers. With an increasingly large number of devices to update, the size of the delta package is a critical factor in how long the rollout of the update will take and how much of the core network bandwidth will be used for FOTA as opposed to, say, a revenue-generating service such as video streaming. This problem is creeping into the world of the OEM, as many OEMs share in the FOTA delivery responsibility.
Thankfully, this pain point is being addressed. Companies specializing in FOTA updates can generate significantly smaller delta files, which effectively encapsulates the difference (or delta) between what is currently on the end device (source version) and the new software build (target version). In some cases, the delta based update file can be less than 5 percent of the size of the new software build by analyzing the changes in code between the source and target versions. In essence, the differences between the two versions are defined either as completely new content such as a new application or graphic or as changes that have resulted from the new code being inserted into the target image, such as references and pointers.
Efficient delta technology is integral to a successful FOTA solution, and if the smallest possible delta can be achieved, the update package/file size that must be distributed over the network is at a minimum, taking less download time and causing the least amount of network congestion.
Version control management
The amount of devices and sophistication of software in them is increasing, and has reached the point where the cost of software in some devices exceeds the cost of hardware. The IoT is driving the need for more advanced software management of connected devices. As devices become always connected to the cloud, manufacturers are seeking a comprehensive solution for managing the software OTA. They also are looking for a solution that would leverage industry standards for OTA software management and device configuration. This is where the OMA-DM standard comes in and, in particular, the OMA-DM Software Component Management Object (SCOMO) standard. SCOMO is specifically intended for managing multiple software elements on a single device.
The SCOMO standard is sophisticated and proven in to solving the needs of OEMs, as the amounts of software and connectivity increase inside cars, for example. SCOMO supports multiple management and communication elements required by device OEMs. These include inventory retrieval, software asset versioning (implying supremacy of one version over another), and deploying multiple software updates in the same package. SCOMO also enables managing dependencies between the managed software elements, so that updating one software element mandates the updates of other dependent software. In addition, SCOMO includes the concept of “Environment Type” (EnvType) associated with each managed software element. This can be used to identify and handle software types that require different methods of installation, such as updating the firmware image or installing or updating an application.
Resource-constrained device updates
SCOMO is confined to the management and communication protocol and leaves the implementation of the actual operations (such as application updating and device reflashing) to the device manufacturers. It is therefore flexible enough to accommodate diverse software management needs while still enabling potential server-client interoperability between different vendors, preventing lock-in.
As more and more resource-constrained devices become wirelessly connected, there is a growing need to specifically manage software across the Internet of (Small) Things such as automotive Electronic Control Units (ECUs), embedded modules, and Machine-to-Machine (M2M) devices used in utilities, manufacturing and logistics. These environments are characterized by limited bandwidth to distribute updates, insufficient flash resources to integrate a regular firmware update client, and not enough RAM to store the software update package and perform the firmware update. Consequently, such devices either could not be remotely updated, or the process to perform updates was time consuming, error prone, and expensive.
Modern cars and trucks, for example, can contain more than 100 ECUs that are responsible for the vehicle’s operation, from controlling the engine to braking and managing the air conditioning. Finding a cost-effective way to maintain the increasing amount of software inside cars is a growing challenge for automotive OEMs and tier one suppliers.
Thankfully, this is another issue that has been recently addressed, and there are methods available that allow manufacturers to remotely update embedded devices in resource-constrained environments in half the time, providing significant savings in manufacturer warranty costs and maintenance. Together, with the regular firmware update clients, these solutions add the ability to simultaneously update the device while the delta update file is being streamed from the SCOMO management client. These solutions eliminate the network and flash resource bottlenecks, and therefore remove a manufacturer’s dependency on dealers to perform routine software maintenance, and ultimately save manufacturers and consumers both time and money.
FOTA in action
Tesla’s software management system is utilized for both repair and performance enhancement updates. Tesla recently sent out an update in January, which wasn’t the first (or last) time Tesla has issued one OTA. In lieu of a traditional recall, where consumers have to physically bring their vehicles in to a dealership or service center, a significant amount of time, money, and hassle were saved, and we can expect to see more of these as the number of connected cars continues to grow.
Red Bend Software