What do I need for software updates (DFU) via BLE?

Hello,

we would like to update our application software. There is plenty documentation from Nordic all over the place, some relevant, some outdated, with boot loader, without, a BLE DFU service a.s.o. but we could not find any top level documentation what you really need. I do not want examples because our software is pretty much finished.

So what I would like to know is:

1. what do I need on the BLE peripheral side to do over the air application software update (we don't care about softdevice update and if it's possible without bootloader the better).

2. What do I need on the phone / desktop side? The nrfTollbox seems to have a DFU function but I could not get that to work; the file select leads to some obscure file manager download which eventually fails. I downloaded the nrf-connect (great name btw., same as you sdk now) for desktop and it works fine with an pca10056 DK but the desktop software does not seem to have any DFU built in. Have I missed that or is there an nrf-Toolbox for desktop available?

I have the feeling it's very easy and it's all there but I just cannot see it.

Kind Regards,

  • Hello all,

    so DFU from application works, mronos answer (or more the question) regarding the bonding was the solution. I am using the unbonded boot loader version now and that works and stays like this.

    It seems I am not able to mark mronos post as the correct answer, there is no button on this (and some other answers). Any ideas how I do that?

    Kind Regards,

  • there is no button on this (and some other answers). Any ideas how I do that?

    The randomly disappearing buttons is a feature of this forum... Click on the time of the post below the username, ie click on  '3 minutes ago' or whatever the line says. The buttons will reappear.

    I am using the unbonded boot loader version now and that works and stays like this.

    I am doing that as well, but I made one modification. I changed the permission to write to the DFU service so that entering  the bootloader wirelessly requires bonding. But the bootloader itself doesn't. This allows me to restrict the wireless update to bonded peers only, but keeps a failsafe. In my case holding a button during powerup gets you to the bootloader so the unit can be updated even if the application is nonfunctional.

Related