When designing your product, it’s crucial that you choose a memory technology that lets you update your firmware easily. Otherwise, you may have to scrap a lot of products if you find errors. If this happens after they've been shipped to end customers, the negative impacts will be severe.
Firmware is held in non-volatile memory such as ROM, EPROM or flash memory. Let’s take a closer look at one of them: flash memory, which enables device firmware updates (DFU) and the advantages that this gives.
In the past, firmware was hard-coded into the ROM and not intended to be changed after manufacture. Before Internet access became commonplace, faulty products would either have to be returned to the manufacturer to be upgraded, or simply become obsolete. Having to rebuild the product from scratch could lead to serious economic problems, perhaps even bankruptcy. Thanks to updatable firmware this situation can be avoided. At the same time, you are operating in a high-speed industry where competitors will constantly improve their product on the fly in order to beat yours.
Even if you consider your product 100% complete, secure, and bug-free, product updates will always be necessary. Problems will appear sooner or later. And you also have to prepare for potential third-party issues, such as the annual update of Bluetooth specifications, updates to IOS and Android.
The Bluetooth Smart chips from Nordic Semiconductor support Over The Air – Device Firmware Update (OTA-DFU) in a way that uses less memory than other solutions. This allows you to run OTA-DFU on smaller memory devices, to update the entire program memory if you want to. But you don't have to update the entire memory in one go; you may update only parts at a time.
If a smartphone operating system makes changes that require you to update your product, your customers won’t care who caused the problem, they will just want and expect your product to work as promised. Even when working with third-party technology, keeping your product functional may be seen as your responsibility.
If Apple or Android say that your product is not safe for the end user, you will have an obsolete product. Unless you have built in the capability to make updates.
To stay competitive in your market, keep a close eye on current trends and take quick action on opportunities that arise. If you spend all your time planning and making everything perfect before launch, your competitors might already be far ahead of you. When taking advantage of OTA-DFU, you will be able to launch your product into the market before it is 100% finished, then polish your product out in the field.
No software is perfect. Before we had OTA firmware upgrades as an option, long periods of testing were required in order to establish that a product was launch-ready. Today, you can launch your product early and still keep your customers happy, by quickly taking care of security holes and bugs on the fly. The beauty of OTA–DFU is that you are able to release bug fixes and other patches for your product, without retracting it from the market.
Do not consider your product finished, even if your customers seem happy with it and the software seems to run smoothly. Competitors will add new and exciting features to their products, and your customers will notice. By using OTA-DFU, you can apply new features to your product instantly. Listen to the market and make sure that you keep your product competitive.
Read also: Internet of Things: Beyond the hype
One key point with flexible and updateable solutions, is to take care of actually performing the update. There are several ways to do this.
One method is to program the product to poll your servers itself, to periodically check for firmware updates. This requires a direct internet connection for the product, which may not be feasible or interesting.
Another option is to have the product connect to a mobile app instead of directly to the internet. The app, in turn, checks if there are updates available. This has the advantage to ensure that compatible software versions are installed on the product and the mobile app.
If the end-user registers the product, you can use email, SMS or other messaging services to distribute update notifications. The user takes the necessary action to update the product. A semi-automatic approach that leaves the user in charge, but should be designed to require a minimum of manual effort.
If your product is popular, consider releasing your OTA updates in staged roll-outs. Divide your subscribers into batches, and notify them group by group over the course of a few days or weeks. This relieves server strain as downloads are distributed over time instead of happening all at the same time.
This article was first published in May 2016