Over-the-air update, or OTA update, as it is commonly referred to, is a feature implemented by coders and other experts, to remotely apply software updates to a bunch of networked devices. This article is for business owners and product owners who command a fleet of devices that are in some manner laborious to update.
So, should you care about this engineers’ arcane talk, OTA’s and whatnot? Imagine the worst-case scenario: all the devices you have sold become unresponsive and stop communicating with your datacenter overnight. “How much money and time would it cost if tomorrow all the devices I’ve sold become unresponsive?” “How much would it hurt the company’s reputation?”
There are some broad terms used here, so let’s define them. What is a “fleet of devices?” Here, we assume it’s a bunch of gadgets that have been shipped to and used by your customers. What does “laborious” mean? It’s something that cannot be accomplished by simply pressing a few buttons. “Laborious” is something that requires work and in a business context it translates to time and money. But how do we then define and measure this work? We can’t always be very specific about it, so in this context it's an idea of a measure that’s roughly the average effort to update a device multiplied by the number of devices. This seems straightforward, if we think just of the average distance between the devices, but consider this: the devices might be difficult to access, so the effort involved doesn’t just measure the kilometers between to travel, but also the overall effort. For example, the service person might need to dismantle a lot of machinery before reaching the device. The device might be risky to interact with or located in a hazardous environment. The device’s integrity might also be at risk, with its water or dust seal needing to remain intact. All of these factors contribute to the overall effort and, thus, to the work in the formula mentioned above.
True story
One of our customers had deployed devices to over 100 countries. After a few months of successful operation a bug in the firmware triggered and forced the devices into a continuous restart loop. The system was unable to recover from this loop on its own. We were invited to help the customer to locate the issue in the firmware and to create an update to fix it. However, due to the company’s lack of investment in OTA capability, the service personnel had to physically visit all the devices in over 100 countries. It’s easy to imagine the amount of money burned in the effort.
So why to bother?
When discussing the benefits of an OTA update, there are numerous advantages beyond avoiding impending disasters. To list some of these:
- Having your devices online enables to collect data from them
- Deploy new features faster
- Quickly fix bugs and patch security vulnerabilities
- Ship earlier
Having online data from the devices is a tremendous advantage. Without an online catalogue you’ll need a manually updated list of devices deployed around the world. With online tracking, this becomes unnecessary. This contributes to reduced complexity, minimizes the chance of human error and reduces brain overload. When the list of devices isn’t up to date anymore, it will lead to wasted work. Additionally, customer support benefits from having real-time data from the devices, like logs and version information.
Has it ever happened to you that you have shipped a “completed” device, only to receive a call from a customer to request a new feature or usability change? Having an OTA update capability reduces the time from planning to deployment, resulting in happier customers. Not only does it shorten the time to ship, but it also increases the quality of your product because you can start applying the principles of agile development. You’ll be able to ship new features as test versions, gathering early feedback from customers and enabling a feedback loop from customers to development. Needless to say, the key to customer satisfaction is to communicate what they will and will not get with each patch.
You’ll be able to fix and patch usability issues and vulnerabilities faster. Online device security is never “done”, because malicious actors target all devices on the Internet for fun and profit. The more your company stands out globally, the bigger dollar-shaped target you carry on your back. Keeping your fleet of devices patched and secured reduces the number of attack vectors open for your business.
As much as your developers may lament, shipping before reaching 100% completion is a possibility with OTA updates. As an engineer, I personally dislike this approach because it adds complexity during the development phase. However, I understand its value from a business perspective. If the hardware has got its seal of approval and the OTA update feature has been thoroughly tested, you can begin selling before every feature is in place. As mentioned earlier, the benefits also include getting early customer feedback.
What’s the catch?
Talking solely about benefits paints a rosy and unrealistic picture. Reading this might make the whole remote update business seem like rainbows and unicorns, but we’re also here to consider the stingy part, the drawbacks, the unpleasant stuff that costs you time and money. The burdens of OTA update include:
- Internet connection required
- Requires more careful planning than any other feature
- Testing is very, very crucial
- Optimally should be considered in an early stage of the project
- Might need more beefy hardware
If your device does not otherwise need an online connection, you might be in for a world of hurt. Managing the mobile data plans in multiple countries is not a trivial task. Implementing a cellular connection (4g/5g at the time of writing) is also not a simple endeavour. The hardware is not cheap and you can’t just slap it in the box, connect the wires, and hope it will work seamlessly. There are design considerations to account for, such as RF interference. They will raise the design challenge to the next level.
Similar challenges arise in firmware design. Implementing the OTA update feature is not something you can do with one arm tied behind your back. Ensuring that the update works flawlessly 100% of the time is neither easy nor quick. If the update process goes south, somebody will need to hop behind the driving wheel (see True story).
Properly testing the update procedure is absolutely critical. Factors such as power outages, running out of space, poor network connection, and a myriad of other scenarios must be taken into account and tested again and again and again. So many variables come into play from the environment, like timing, power, network delays, sunspots (no, really, sunspots affect computers), that their effects can never be completely ruled out. Planning a proper regression testing instils greater confidence towards the system.
While testing might be considered the last big effort in implementing OTA updates, factoring it into the hardware planning step should be the first one. If your device has a hefty CPU and tons of memory running Linux, this might not be an issue. However, for devices like small-scale microcontrollers, it can be challenging to implement the update capability once the hardware is set to stone. The device needs extra space to store another firmware image before overwriting the current one. The hardware and operating system affect a great deal how the OTA update feature can be designed. In extreme cases the selected hardware may simply be incapable of meeting these requirements, and changing the hardware at a later stage would undoubtedly be expensive, or often too unrealistic.
Conclusion
So, should you go for an OTA update capability? As we’ve come to understand, it highly depends on the business case. If your devices are already somehow connected, then the answer is probably “yes”. If you have absolutely not ruled out your customers wanting some kind of change in the future, whether it be to fix a bug or just to have something done differently, then the answer is probably “yes”. However, if your devices are relatively easy to access and you don’t mind the associated costs, then the answer is probably “no”.
In most of the cases this is one of those where it’s beneficial to invest money to save money. As the article has made clear, the road to getting OTA updates done also has many pitfalls. Investing in a great team of experts with solid skills and experience is a good starting point.
Sami Sorell,
Sami is a software engineer with a long career in the electronics industry. His fuel is a nice cup of tea and passion lies in everything embedded, from Linux to small controllers. Sami enjoys the company of great colleagues and an amazing culture that enables good professionals become excellent ones.