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

DFU not working

Few issues I'm facing -

1. I have gone through the related blogs, tutorial, documentation for DFU. nRFConnect cannot connect to the Fanstel BM832 chip. It gives me an error BLE_HCI_CONN_FAILED_TO_BE_ESTABLISHED

2. Can another controller flash the application firmware to BLE chip over UART or does it still need the nrfutil?

3. Can nrfjprog.dll be used to flash code over BLE? Is nrfjprog.dll only used to flash code over UART or USB?

4. If I were to update application firmware over BLE, what are my options besides using nRFConnect & Nordic DK? How do I create my own tool to update the firmware?

5. What all changes are required to use NRF_BL_DFU_ENTER_METHOD_GPREGRET? Should I only enable it in sdk_config.h? Which is a simpler way to automate the process of entering DFU mode - NRF_BL_DFU_ENTER_METHOD_GPREGRET or NRF_BL_DFU_ENTER_METHOD_BUTTONLESS? Which examples should I use for buttonless DFU? Is the ble_app_buttonless_dfu used as application firmware?

6. Could you explain the purpose of 2 separate files - one says with bonds & other no bonds?

7. Where can I find a single or dual bank application update examples?

8. Dual bootloader - DFU (BLE) + UART

9. Does the DFU bootloader have a timeout?

10. How can I remove the dependency of nrf kit/dongle + nRFConnect + Mobile to flash firmware on BLE chip?

11. How is firmware.zip sent over BLE? Is it broken into packets?

12. Relation between WDT & DFU

Parents Reply
  • Hi Sonal, 

    - The .zip file is just a file package to encapsulate the image and the init packet into one file. It's not used to send over the air. What is sent over the air is the .dat file (the init packet) and the .bin file(s) (the binary image(s) ) . To find how the image is transferred over the air, you can use a sniffer trace to track a DFU update and see how exactly the DFU update happens. This is also described in the documentation here

    - I'm not sure why you mention nrfjprog.dll here. nrfjprog has nothing to do with DFU. it's the tool to flash the chip via SWD wires. Not DFU update. 

    - We provide you the library source code to do DFU from the phone (Android and iOS libraries. ) and on PC (nrfutil and nrf Connect for BLE on PC) . The nRF Connect on PC or nrfutil library requires a nRF5 connected to the PC to be able to do DFU. But this is just the reference library. It's possible to just follow the documentation of the protocol to write your own library to use the PC's native BLE to do DFU. It's just a normal BLE communication. 

    To put the device to bootloader mode (DFU buttonless service need to be implemented on the device) you enable indication and then write 0x0104 (to do DFU of application) to the characteristic, it will switch to bootloader mode. 

Children
Related