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.

  • I'm not too familiar with IAR, but it seems you can add the define in the .ewp file

        <option>
          <name>CCDefines</name>
          <state>BLE_DFU_APP_SUPPORT</state>
          <state>BLE_STACK_SUPPORT_REQD</state>
          <state>S132</state>
          <state>BOARD_PCA10040</state>
          ...
          <state>CONFIG_GPIO_AS_PINRESET</state>
          <state>NRF_LOG_USES_UART=1</state>
          <state>SWI_DISABLE0</state>
          <state>SOFTDEVICE_PRESENT</state>
          <state>NRF52</state>
        </option>
    
Reply
  • I'm not too familiar with IAR, but it seems you can add the define in the .ewp file

        <option>
          <name>CCDefines</name>
          <state>BLE_DFU_APP_SUPPORT</state>
          <state>BLE_STACK_SUPPORT_REQD</state>
          <state>S132</state>
          <state>BOARD_PCA10040</state>
          ...
          <state>CONFIG_GPIO_AS_PINRESET</state>
          <state>NRF_LOG_USES_UART=1</state>
          <state>SWI_DISABLE0</state>
          <state>SOFTDEVICE_PRESENT</state>
          <state>NRF52</state>
        </option>
    
Children
No Data
Related