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

Implementing DFU OTA for beacon

Hi Nordic,

I am trying to extend DFU feature to my beacon application. Please help me with how to go about it. I went through the given tutorials on DFU/OTA, but I haven't got a clear idea on how to implement it for beacon.

Also I have a doubt..

Is DFU code snippet alone, enough for the beacon application, or is it to necessary to add the device manager snippets too, as given in of the peripheral examples?

Parents
  • I did a quick test, seems to be working without Device Manager. I just skipped calling dfu_app_dm_appl_instance_set() after removing Device Manager.

    Here is my main.c, can be used with the ble_app_hrs dfu example.

    The first step is to see add the DFU service and get it to appear in nRF Connect.

    You need a trigger. You need a way to tell the application that it should go into bootloader mode. This is typically done by a button, or you can go buttonless by using DFU service. The DFU service can only be accessed in a connection.

    You can implement buttonless DFU in a beacon application, but then it must be connectable. A beacon is typically not connectable, only advertises.

  • Hi Petter, I tried as you suggested. Its working fine without the device manager. However I don't understand, why in the tutorial, it is mentioned that device manager must be used.

    I have one more doubt.. I am able to get DFU icon in nRF Connect. But I am not able to implement conditional compilation as in hrs example. When I am directly including dfu headers and code snippets, its working and I am able to see the DFU icon in nRF Connect, but when I put it inside ifdef/endif as in hrs example, its not working.

Reply
  • Hi Petter, I tried as you suggested. Its working fine without the device manager. However I don't understand, why in the tutorial, it is mentioned that device manager must be used.

    I have one more doubt.. I am able to get DFU icon in nRF Connect. But I am not able to implement conditional compilation as in hrs example. When I am directly including dfu headers and code snippets, its working and I am able to see the DFU icon in nRF Connect, but when I put it inside ifdef/endif as in hrs example, its not working.

Children
No Data
Related