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

How to perform a DFU without bonding

Hello,

In our application we don't allow bonding. Therefore I'm not allowing the application to send peer data to the bootloader using dfu_app_peer_data_set()...Therefore in the bootloader when the dfu_ble_peer_data_get() is called, the outcome will be false and the there can be no directed advertising to the peer as shown in this flow chart: infocenter.nordicsemi.com/index.jsp

At the moment when I use the Nordic Toolbox app to perform a DFU, we jump to the bootloader and then timeout with code 6. How can this be resolved?

Can the bootloader connect to the Nordic app without directed/whitelist advertising?

  • No, I do not think so. The nRF Toolbox app expects the device to have the same MAC when running the application as when running in bootloader mode. Since you’re not sharing bond information, the bootloader will increment the MAC address with one to avoid issues with Android caching the services of the application and not performing a new service discovery, i.e. not finding the DFU service.

    The nRF Toolbox app will not automatically reconnect to a device unless it has the bonding information and can reconnect using directed advertisement or whitelist advertising.

    You will have to close and re-open the nRF Toolbox app and scan for devices again. It should then show up as DFUTarg.

Related