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,

Parents
  • Hello Amanda,

    no, I did not have this definition. Adding it makes no difference, same error message.

    Or do I have to remove the NRF_DFU_SVCI_ENABLED and NRF_DFU_TRANSPORT_BLE=1 then?

    Why don't you have Makefiles (as in proper Makefiles, not those useless IDE generated ones) for your example software (since you decided example software instead of proper documentation is the way to go)? Then a user could at least compare the Makefiles of the two projects and see what the differences are. With this IDE (that you decided to use for your sdk and which imho is the most inefficient and time wasting way to work) you have to click through hundreds of dialog boxes and even better: in two projects which you cannot even open simultaneously with this segger IDE.

    Kind Regards,

    p.s.: the SVC_INTERFACE_CALL_AS_NORMAL_FUNCTION is not defined in the ble_app_buttonless_dfu example that I used to copy the relevant parts (and where I probably missed half of the stuff that is required).

Reply
  • Hello Amanda,

    no, I did not have this definition. Adding it makes no difference, same error message.

    Or do I have to remove the NRF_DFU_SVCI_ENABLED and NRF_DFU_TRANSPORT_BLE=1 then?

    Why don't you have Makefiles (as in proper Makefiles, not those useless IDE generated ones) for your example software (since you decided example software instead of proper documentation is the way to go)? Then a user could at least compare the Makefiles of the two projects and see what the differences are. With this IDE (that you decided to use for your sdk and which imho is the most inefficient and time wasting way to work) you have to click through hundreds of dialog boxes and even better: in two projects which you cannot even open simultaneously with this segger IDE.

    Kind Regards,

    p.s.: the SVC_INTERFACE_CALL_AS_NORMAL_FUNCTION is not defined in the ble_app_buttonless_dfu example that I used to copy the relevant parts (and where I probably missed half of the stuff that is required).

Children
No Data
Related