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

How to use only DFU and DFU_TRANSPORT without bootloader?

Hi,

I am using nRF52832 SOC along with SDK v15.2.0 with custom hardware, currently I have requirement to use DFU protocol in BLE application to get a FW of another sub system . I am trying to evaluate example codes provided in SDK, but most of the examples uses bootloader but actually I need only DFU and DFU_TRANSPORT, I want use DFU services within my ble application and use nrf DFU app to send subsystem FW. Is there is any possibility to use DFU and DFU_TRANSPORT without bootloader modules if there is any example code available in that use case. If any links or examples for that use case scenario would be appreciated.

Regards

Pradeep

  • Hi  

    We don't enough space to store entire image it's a huge file of 300KB. So NRF_DFU_EVT_DFU_COMPLETED will not be that helpful but page by page callback  by nrf_transport would be useful so that I can store in RAM buffer and transfer over UART. 

    Is it possible with current nrf_transport module to achieve this, if not is there other way with minor modifications to  nrf_transport module

  • Hi,

    The default DFU handling is to store the image at bank 1, but it won't fit as you said. Maybe you can create a new nrf_dfu_flash implementation that emulates memory access to your subsystem. So instead of writing the image to bank 1 in internal flash, you write it directly to the external chip. 

    deepu301 said:
    We don't enough space to store entire image it's a huge file of 300KB. So NRF_DFU_EVT_DFU_COMPLETED will not be that helpful but page by page callback  by nrf_transport would be useful so that I can store in RAM buffer and transfer over UART. 

     It will require modification of the transport layer to trigger an event for this. You could monitor when the NRF_DFU_OP_OBJECT_EXECUTE command is sent for a data object.  

Related