Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs
This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

What's the official stance regard S110 vs S130 OTA?

If I'm not mistaken, both S110 and S130 support OTA DFU right?

I understand that nordic semi most likely recommend S130 over S110, but please understand that

my current project works on S110, migrating to S130 could be a bit of a drag. Is there any more compelling reason

that I should use S130 over S110 for OTA? I've successfully tested the OTA on S130, but got cold feet when

thinking about the potention trouble of migration.

  • "I understand that nordic semi most likely recommend S130 over S110"

    We don't really recommend either over the other. The S130 has an extended feature set to support running as a BLE central device. If you do not need to run a central role the S110 is just as good as the S130, and it even requires less RAM/ROM. Do not be afraid to use the S110 SoftDevice, it's just as thoroughly tested and qualified for use in BLE products.

    You should use the OTA BLE S110 DFU bootloader found in "nRF51_SDK_10.0.0_dc26b5e/examples/dfu/bootloader/pca10028/dual_bank_ble_s110" (or equivalent from whatever SDK you are basing your project on).

    Best regards,
    Rune Holmgren

  • Hi, to use S110 bootloader, do I have to go through the same procedure as mentioned in this tutorial, only change it for S110? Or do I simply need to compile the example and run, and S110 doesn't really support security verification whatnot?

    Also, another question:

    Ideally, one would use all 3 components, the bootloader, the SD and the app built and compiled from the same SDK, but as my current situation stands, is there potentially a problem if I use the following combination?

    bootloader: from SDK10

    softdevice s110: Also from SDK10, same as above

    Software: from a different SDK, but with iRAM, iROM settings configured for s110

    Also... if it's not too much of a trouble, is there any tutorials for S110 DFU, like the one I mentioned above? That tutorial is pretty good.

    Last but not least... which version Android nrfToolBox should I use? All of them? What about the security verification pub-key, private-key issue, since S110 dfu example doesn't appear to support that?

  • Hi,

    In the top of the tutorial you linked there is a statment which sums up the situation a bit: "The Secure DFU is the new DFU bootloader provided from nRF5 SDK v12. The old bootloader in SDKv11 and earlier is now called Legacy DFU. Secure DFU is not backward compatible with Legacy DFU." This means that this tutorial and many of the concepts discussed in it does not apply to your implementation. With SDK12 we introduced the rewritten Secure DFU, but the legacy DFU is still the correct choice for projects running on older SDKs and/or SoftDevices. As long as an attacker is not able to connect to the device, there is no security risk. If the device uses a unique passkey, a connect button, or some similar scheme which requires physical access the security offered by BLE holds up.

    The combination you are describing is not a problem. I did a quick test and took some screenshots showing me adding a SoftDevice and bootloader to the device and the adding an application though DFU and connecting to it:


    Step 1: Flash the S110 SoftDevice to a blank device.


    Step 2: Compile and flash the bootloader


    Step 3: Add an application over the air using the most recent nRF Toolbox for Android.

    Our Android application support both the legacy DFU and the Secure DFU. The two implementations use different UUIDs, so the Android application can determine which protocol to use.

Related