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

Update app+bootloader without bonds to with bond by dfu in single shoot.

Hello,

we have working both dfu with and without bonds on SDK 15.3.

We started without bond and now we implemented with bonds and would like to update some boards we have distributed to other locations by dfu to the new app and new bootloader with bonds.

The problem is we must update both bootloader and app by dfu, when we try to update both (generate package with all boot+sd+app) it makes the first step 1/2 and disconnect and cannot connect again.

I guess this is due to the new bootloader is flashed (and before 2/2 there is a reset and restart just flashed bootloader) but it cannot proceed to step 2/2 due to there is not bonded device... after a while it resets and then app (old one without bond) starts and hangs up at the starting (due bootlader has bond and app not I guess).

So the issue is I would like to flash both (app+bootloader) at the same time by single hex by dfu or modify the bootloader to do not reset and continue to write app or modify the bootloader to skip some checking in order I can proceed to step 2/2, after that I would re-dfu the bootloader to have the final one.

Is there any way to do it?

If I flash the bootloader+sd+app+settings by external programmer it is working fine, however the other people don't have programmers so I would like to update them by dfu. When I have the new software on the board writting by the programmer I can do dfu with all packages (same as it is already flashed by programmer) using same file and can see steps 1/2 and 2/2, I mean I am sure package for dfu is fine and can flash correctly but when starting point is already a board with bonds in both app and bootloader.

Thks

Carlos

Parents
  • Hi Carlos, 

    The problem is we must update both bootloader and app by dfu, when we try to update both (generate package with all boot+sd+app) it makes the first step 1/2 and disconnect and cannot connect again.

    The bootloader will not start advertising if it doesn't have the bonding information so the central will not be able to re-connect for the second part of the update in this case. A possible solution, as you said, is to modify the bootloader to allow update of BL+APP in one go. Or maybe find a way to make the bond requirement dynamic and disable it for just this update. E.g., allow connection without bonding if current app_version stored in bootloader settings is an older version.

     Best regards,

    Vidar

      

Reply
  • Hi Carlos, 

    The problem is we must update both bootloader and app by dfu, when we try to update both (generate package with all boot+sd+app) it makes the first step 1/2 and disconnect and cannot connect again.

    The bootloader will not start advertising if it doesn't have the bonding information so the central will not be able to re-connect for the second part of the update in this case. A possible solution, as you said, is to modify the bootloader to allow update of BL+APP in one go. Or maybe find a way to make the bond requirement dynamic and disable it for just this update. E.g., allow connection without bonding if current app_version stored in bootloader settings is an older version.

     Best regards,

    Vidar

      

Children
Related