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
  • Which app do you run on Windows ? How do you plan to use it with native Windows Bluetooth ? 

    From the sniffer trace what I can see is that Windows actively disconnect the connection, could be due to inactivity. My assumption is that Windows didn't see any Bluetooth SIG service and since there is no app requesting the connection, it will automatically disconnect the connection. 

Children
  • Ohh I was just checking the bluetooth connection first before checking it with my Windows app. But then how come the HID keyboard example holds the bluetooth connection? I was comparing all the files & found that ble_app_buttonless_dfu does not include code for whitelisting, peer manager is disabled & its a central. I tried to change it but had no effect. I found similar behaviour with ble_app_uart & ble_app_hrs. By the time I connect to bluetooth manually & open my Windows app, the connection is gone.

  • HID keyboard is a special case. It's a keyboard. Windows automatically keep the connection and automatically reconnect if the device is in range. 

    If you are doing other service, you would need an app on PC to connect. 

Related