This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Can I update the SoftDevice without touching the application?

I'm working on an OTA firmware update process, using my own bootloader and application. To understand the process' limitations, I need to know to what extent one can update the SoftDevice without invalidating the application.

The chart on the nrfutil GitHub seems to imply that I can update a SoftDevice without updating the app as long as both SDs are of the same Major Version, e.g. s132 v3.0 to v3.1, presumably because Nordic preserves APIs (and the locations they reference in the SD) across these. Updating from v3.0 to 4.0, though, would require a new application. Correct?

Furthermore, can I safely assume that the Master Boot Record will remain compatible with all future SoftDevice versions? I understand that I need to leave it alone across any update, since without it, there is nothing to decide whether to jump to a bootloader or application.

  • MBR is typically not changing between any version of given SD and you are also not updating it OTA (that would be pretty dangerous if not impossible) so you should not worry. When it comes to Soft Device update only you can do it indeed (OTA DFU is in the end just erasing and rewriting some flash memory so you can do anything you want until you don't overwrite memory from which you are currently running the code - that's what makes MBR update difficult;) but you should test all combinations of your application code/binary versions and SD versions which you want to support before releasing it to the field. You will then find out if any API or SD size changed (which would break compatibility with your app).

  • Telling me to test the combination is beside the point of my question. Of course I would test it, but there is only so much confidence I can gain from that as an application developer. I want to hear, from the perspective of someone who knows the machinations of the SoftDevice and its development process, how easy and flexible Nordic intends to make development after deployment of a product.

  • Oh, so your main question is to get strong statement from Nordic that Soft Device API will never change between minor version numbers? I suggest to do another question because your original "Can I update the SoftDevice without touching the application?" seems to be answered above.

  • When you update your softdevice, the application will be erase to give space for the new image of the softdevice. You will have to update the application back after you done with the softdevice.

    Between minor versions of the softdevice, the application doesn't need to be modified to work with the new softdevice (with same major version).

    We will try to keep the MBR unchanged alongside same softdevice in different major versions.

Related