Carrying out software updates on our smartphones is a process we are all familiar with nowadays. On one hand, we expect the manufacturers to keep their operating systems up to date. On the other hand, we expect the same from app developers with regard to their apps. What’s more, the process of updating a software should be easy and, at best, require a simple tap of a button. So, why should this be any different when it comes to IoT devices? Let’s take a look at what over-the-air software updates in the IoT are all about.
The difference between SOTA and FOTA
Olaf Weinmann has been working for Bosch Software Innovations since 2011, where he is responsible for different aspects within the Bosch IoT Ecosystem. Currently, he is product owner for Bosch IoT Rollouts. He studied mathematics and information technology at the University of Konstanz and holds a PhD in mathematics. In his spare time, he enjoys sports and teaching mathematics.
Providing software updates over the air – or SOTA, for short – generally means updates can be received remotely via the internet and the user is not required to take the device back to the vendor or to a support workshop. Although SOTA simplifies the process for the end user, it is a complex process from a manufacturer’s perspective: artifacts need to be provided as a download and software updates must be assigned to eligible devices. When dealing with a large number of devices, campaigns must be set up and managed to orchestrate the associated rollouts. Progress of the software update process must also be monitored from the start. And all the while, a watchful eye must be kept on security and reliability requirements.
While SOTA refers to updating software components in general, FOTA is more specific. It describes the process of updating firmware over the air. In other words, FOTA is all about updating the main system software that controls the underlying hardware.
The IoT needs SOTA
When talking about the IoT, you will sooner or later come across the term “agile development”. It’s a buzzword used not just in software development but also in product development. Agile development means that products, solutions, and services are created as part of a dynamic process. You don’t develop a product just once. In fact, you revise it, continuously improve upon it, and adapt it to frequently changing customer requirements. In short, the IoT is a very dynamic environment, where steady improvement of what you offer is key. This also means that it’s crucial to always keep software and applications up to date.
“The IoT is a very dynamic environment. It’s crucial to always keep software and applications up to date.”
Olaf Weinmann, product owner for Bosch IoT Rollouts
With millions of different connected devices, software updates over the air ensure that the update process is convenient for the customer and runs smoothly. There are two key benefits to using over-the-air software updates in the IoT:
For one, they allow you to react quickly and efficiently. Take, for instance, a security breach or a software bug that needs fixing. With SOTA, you can provision software updates and security patches to your IoT devices without a tremendous amount of effort.
Additionally, software updates over the air allow you to add new functionalities to products. This helps ensure that a product stays attractive to its users which, in turn, extends the product’s life cycle. This can also be seen as a separate business model: when it comes to buying decisions, customers may consider it beneficial to flexibly add or remove features step by step, depending on their use cases. This, of course, leads to new revenue streams: in the past, you had to design, manufacture, and ship a new device to provide new features to your customers. Now, you can simply monetize the new features added via over-the-air updates instead.
A look at some SOTA use cases
From lane-keeping and parking assistants to infotainment offers – cars nowadays are increasingly evolving into computers that cruise the streets. With a variety of different software built into today’s cars, manufacturers have to ensure that their vehicles stay up to date. In many cases, these software updates are provisioned manually at a workshop via a cable.
In the event that a security incident or a software bug is detected, a manufacturer is forced to recall thousands of cars to update the affected software. This is not just inefficient for the manufacturer; it’s also time consuming and frustrating for car owners. Thanks to SOTA, this process can be managed via the cloud, which saves a great deal of time and does not negatively impact customer satisfaction.
But it’s not just about patching out security flaws and mending software errors. SOTA can also be used to maintain functions or provide entirely new features to car owners. A manufacturer could provide updated navigation maps, for example.
Smart metering and smart heating
Smart meters and smart heating is another up-and-coming field of application. Energy solution providers are increasingly turning to software update tools and services. Why is this the case? There are millions of households – especially in Asia – that are connected to smart meter systems. The sheer volume alone makes updating smart meters a very challenging task. And this is where SOTA provides a viable solution.
Software updates as a service
A little less obvious use case is software updates as a service, which offers the opportunity to create an entirely new business model. If you are a software or service provider, you can develop an update as a service solution for your clients. Utilizing a reusable service from the cloud – for example, Bosch IoT Rollouts – can help you create value by providing your customers with tailor-made components best suited to their needs.
A scalable software provisioning service is vital
The use cases mentioned above are just a few examples of how software updates over the air can be applied in the context of the IoT. There are many more domains that have not been mentioned here that can also benefit from SOTA – for example connected buildings and the healthcare sector.
While the concept of providing software updates over the air appears logical in theory, it can be challenging to implement in practice. It may seem like an easy task to keep a few software applications up to date, but how do you handle a software update if there are billions of IoT devices in the field? In such cases, employing a scalable software provisioning service that offers campaign management capabilities and that is usable in any kind of IoT application is inevitable.