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

bootloader problem on example from SDK11

Hi all,

I have a board with old code, it has a bootloader + sofdevice 110 + application all from SDK7 and I want to upgrade it via serial single bank DFU, to the SDK11 using SD130.

I already made the changes on the app and bootloader. And if i load them using the nRFgo Studio it works fine. But when I try to load via serial dfu it doesn't work.

My steps are:

1- merge the BL130 + SD130

2- merge the result of 1 step with app130

3- load the merged file using serial dfu

The problem is that it doesn't let me load any of the merged files. My hint is that is something on the bootloader that I am missing, since every combination that contains the bootloader doesn't download. But the ones without the bootloader are successfully downloaded.

Is it not possible to upgrade the bootloader from an old SDK to a new one?

I was also lookign to the differences on the code from the two Bootloaders and they don't seem too different, so I am not sure what can be causing this.

If someone has some idea It would be appreciated.

Edit #1

I have made some tests and found that this was a problem with the bootloader example of SDK11.

I can download the bootloader image that is already on the "hci_dfu_send_hex" folder, but if I compile the bootloader example I am not able to load it to the board?

Should they be different? I need to do some customization on the bootloader code so I cannot use the one that works.

  • Hi Jorge,

    Of course the old bootloader won't accept the new bootloader because the new bootloader requires different softdevice. You need to update the bootloader + softdevice. It's not merging but generating the .zip file with these 2 hex files.

    After you flash the bootloader and the softdevice using nRFGo Studio, why do you want to flash the bootloader again ? What kind of error you have ?

    Please, list your step, what exactly you do. My suggestion is as follow.

    • First, try to test bootloader in SDK v11 just to get familiar with it.
    • Test updating the same bootloader SDK v11, using the image you generate in _build folder. Generate the .zip file from that bootloader, and try to do DFU with that .zip file
    • Then try to update the bootloader + softdevice, generate the .zip file with the 2 hex files (not merging them)
    • After that, try to update the same zip file, but this time using the board with old bootloader and softdevice.

    If you have issue, let me know where the issue happens, and what exactly you do ( list the script you use to generate zip file and to do DFU )

  • As I said before, I have done the things you are sugesting. I am now only using SDK 11.

    I load the softdevice and the bootloader from SDK11 using nRFgo. I can then use this bootloader to load the same softdevice or application via serial DFU. But I cannot load the bootloader!

    I tried using the code directly on the nrfutil.exe and using the "DFU using serial bootloader" option from the nRFgo Studio. neither of them work for this bootloader.

    I know that I need to merge the two files (bootloader + softdevice) to make the board work when coming from an old SDK, but my point is that I cannot load via serial DFU the unmodified project of the bootloader on any constelation.

  • The command I use to create the zip is : nrfutil.exe dfu genpkg [path of the zip] --sd-req 0xFFFE --application-version 0 --dev-type 0 --dev-revision 0 --bootloader [path of the bootloader]

    For DFU : nrfutil.exe dfu serial --package=[path of zip] --port=COM6 --baudrate=38400 --flowcontrol

Related