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

SDK 15.3 DFU with Bonds

need help on multiple things

All work is on the DK 840 board using sdk15.3

Started with this link

https://rigado.zendesk.com/hc/en-us/articles/360025376053-Add-Nordic-DFU-to-a-SDK-Example

I use this for the 15.3 problem and can get things working using the following in the make file

devzone.nordicsemi.com/.../178253

flash_bootloader: default
    @echo Flashing: $(OUTPUT_DIRECTORY)/nrf52840_xxaa_s140.hex
    nrfjprog -f nrf52 --recover
    nrfjprog -f nrf52 --program $(SDK_ROOT)/components/softdevice/s140/hex/s140_nrf52_6.1.1_softdevice.hex --chiperase
    nrfjprog -f nrf52 --program $(OUTPUT_DIRECTORY)/nrf52840_xxaa_s140.hex -r

I get DfuTarg to work with and without bonds

I can DFU the application only zip file to the DK and all works. After done start scan the the app is working

I move on to buttonless dfu using the rigardo URL above

I create the settings hex files using the rigardo URL above

The following commands do not work in that nothing is advertised.

nrfjprog --recover
nrfjprog --program bl_set_s140_app.hex

issues here:
I figure it is due to the SDK15.3 issue in the second URL used

So I go back to DfuTarg with or without bonds as both work the same.
I then DFU load the zip file that includes the app with the bond/lesc using the ble_app_hrs product.

It again comes up and I bond the device, I then start the DFU action.
The DK tries a couple of times but always disconnects
look at line 70: It shows the DFU starts the firmware file is opened:
line 83 it jumps to the bootloader
line 106 it connects to the dfu target

This is where it always seems to disconnect: This is both using bonded and unbonded BL and app

Question:
How can I get the RTT JLink to post info after the unit disconnects and reconnects when it enters the DFU service started from the app

Also I need to be able to get the settings.hex files to work under sdk15.3

Also I need to understand as to what can cause the DISCONNECTED state when entering the DFU service

Line 107 in the log shows false for autoconnect. I will try setting that to true.

Any help would be appreciated.

Thanks in advance

Parents Reply Children
  • Hi,

    The bootloader will not advertise unless it has received the bonding information from the app first. So in order to test DFU with bond forwarding you need to 1. program the softdevice+bootloader+app+settings page 2. connect to the app perform bonding. 3. initiate DFU through the buttonless service. Or did you follow these steps already?

    Also, you may know this, but I just want to point out that the app will still support bonding if you disable the NRF_DFU_BLE_REQUIRES_BONDS config option. This flag is only to enable bond forwarding to the bootloader.

    From the SDK documentation: Testing Buttonless Secure DFU with bonds

Related