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

Upgrading legacy bootloader

Hello guys!

We have a new project were will have to use dfu ota for a custom made application on a nrf51 beacon. Since the beacons use legacy dfu we want a way around this. Our beacons are rather old (v1.1.0) and instead of ruining them(with the small smoldering pins and all) in our development, we decided to try this on the nrf51 dongle first and here is were we ran into problems.

What we have done so far is to download the very old SDK 7.2.0 with sd 110 in order to make the dongle exactly like the beacons are. Our thought was then to "upgrade" the old SDK with a newer sd in order to make the legacy bootloader compatible with newer stuff. (from this article https://devzone.nordicsemi.com/f/nordic-q-a/22745/dfu-update-from-sdk-11-to-sdk-12---app-and-bootloader).

Question1 : is this idea even remotely plausible? or are we creating a lot of extra work trying to do this on the dongle first and then redo everything for the beacons.

Question2 : We have experienced some problems getting the example codes from the old SDKs to work:

 SDK 7.2.0 is using sd 110, and is made for boad pca10028. This should work for the nrf51 dongle but it does not.

SDK 12.3 is using sd 130 and has an option for board pca10028. This should also work but it does not.

(By "does not work" i mean that i can build and flash them but i cannot find a beacon).

By using Zephyr and the latest SDK 14.2.0 we can build the example beacon without any problem.

If anyone could guide us in our struggles that would be very appreciated.

Best Regards, Willie

  • Hi Willie,

     

    Your approach is correct, you should better test DFU on the dongle first before you try with the beacons. It's easier to debug.

    We need more information when "it doesn't work" , more debugging information needed. Was there any error thrown from any function? You may want to check if app_error_handler is called or not. We have a debugging guide here

    You can start with just blinking an LED , just to make sure you can get to main() function. 

     

Related