2. Dialog’s Software Update Over-The-Air (SUOTA) Service

2.1. Over-The-Air Update

Even when a product has been fully developed and tested, and the device has reached the market or has been deployed in the field, there may still be reasons that deem the update of its software necessary. These reasons may be bug fixes, security vulnerabilities, or new features that the manufacturer wants to provide. Sometimes, as it is especially the case for Internet of Things applications, these devices may be located somewhere very remote or unapproachable by humans, and in other instances it would be too costly or simply not feasible for the manufacturer to collect these devices and update their software.

An over-the-air update serves the purpose of delivering the upgraded software through a wireless link without the need of any physical intervention. In this way, the update process could be fully automated and cost significantly less. In addition, processes such as the software development or quality assurance can be made simpler, and as a result the production time can be reduced and the final product can reach the market sooner. Of course, care must be taken so that a malicious third-party won’t be able to upgrade the device with their own code and put the integrity of the product at risk.

2.2. Dialog’s SUOTA Service

To enable manufacturers for easy OTA updates, Dialog has implemented the Dialog Software Update Over-The-Air (SUOTA) proprietary service. In this way, DA14531 and DA1458x devices can be easily updated using a Bluetooth Low Energy link with minimal effort.

Dialog SUOTA is instantiated as a GATT Primary Service. The service defines a control point by which it enables a peer device to initiate a software update and it defines two roles:

  • The SUOTA Initiator, which is the device that transmits the firmware image. It holds the role of the GATT Client for the SUOTA service and also the Central’s role for GAP.
  • The SUOTA Receiver, which receives the new software image, stores the image into the external SPI Flash/EEPROM device and runs the new image. It is the GATT Server for the SUOTA service and also holds the GAP Peripheral Role.

2.3. Bootloader schemes

There are two bootloader schemes that Dialog SUOTA supports: boot from an external non-volatile memory (SPI Flash/EEPROM), or boot from the internal OTP. The main advantages and disadvantages are listed below:

  External non-volatile memory Internal OTP memory
Advantages OTP can stay blank. Useful for development purposes and/or when very low power consumption is not a requirement for the final product. Fastest boot-up time. Guarantee to boot up anytime.
Disadvantages In case the external memory is in power down mode and a software reset (e.g. watchdog) is triggered, the device will not boot up properly. In that case, the battery has to be removed and replaced. OTP must be burned.