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

SDK12 DFU service not found

I am developing software for a custom hardware based on NRF52. Previously I was tasked on updating the old NRF51 based software (used on older version of the device) for NRF52 using SDK11. Once that was done my next task was updating the software for SDK12. The software is otherwise working fine but I am having problems with DFU. I tried creating a zip of the application and flashed the combined softdevice/bootloader from SDK12 examples folder (dfu/ble_dfu_send_hex) to the device. The device shows as DfuTest on the mobile DFU app but when I try to upload the zip all I get is "DFU service not found". I also tried compiling the secure DFU bootloader example and using that instead but the result is the same.

Do I need to also have DFU support in the application for that to work ? Currently the application has some kind of DFU functionality from the earlier SDK 11 implementation but I'm guessing that wont work. Any examples to study so that I can implement the functionality ?

  • It says "starting advertising" do you see the device advertises ?

    Have you tested with the example with no modification ? (except for adding write property)

  • No, the device is not shown at all. I tried it with the demo and it worked without problems. It would appear that the problem lies with advertising initialisation method used in the application. It is done in completely nonstandard way that probably has trouble with DFU usage. The advertising initialisation used in the application is pretty much unchanged from the original implementation (originally from SDK 8, AFAIK). Basically the initialisation just sets the advertising data using ble_advdata_set (custom data, the device is a multisensor IoT device). I guess I should try to modify that next.

  • @jpolvi: We need to make sure the bootloader and the buttonless part work properly first. Could you state which set-up works, and which doesn't work ?

  • Bootloader and buttonless demo work fine. If I erase the device and flash softdevice and bootloader to it I can then DFU the demo to it without a hitch. At this stage the application works fine as well, no problems there. I can DFU the application to the device and it starts and works fine.

    I only run into problems if I try to update the application (with the application already present) using NRF connect and setting the specified characteristic as specified earlier. In this case the device locks up. If I use the demo instead - no problems at all. It seems I have probably missed some message handling (got to check it). I even changed the advertising initialisation to match that of demo but it didn't help.

    Is the BSP needed ? In the application it is left out but it may be that it is necessary.

Related