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

DFU_UPDATE_ERROR

Hello,

I'm working on nrf52832 dfu secure bootloader example.I implemented button less example to update my firmware and it works fine.

Now i switch off the power supply and Switch ON after some time and send a message to enable the DFU bootloader to the DK and  enters in to DFU mode. Now,here i'm getting GATT err(0x85) while updating the firmware. any one please help me to resolve this issue.  

  • Hello,

    I have a few questions about the steps you do to get the error:

    1: Have you done any changes to the bootloader project, other than changing the public key?

    2: Does the error come while the application is in DFU mode, or in the application?

    3: Do you have bonding enabled in your bootloader? (It is not on by default, so unless you have changed that, it is not enabled).

    4: Have you tried the debug bootloader? If not, can you try? What does the log in the debug say? You need to use the project file found in secure_bootloader\pca10040_ble_debug.

    5: What SDK version do you use?

    Best regards,

    Edvin

  • Hi Edvin,

    here your answers:

    1. No,i'm not done any changes in the bootloader.

    2. The error come in DFU mode.I uploaded the DFU bootloader to my DK and updated my application zip file which is successfully loaded. Now, i again entered to DFU mode through my application using GPREGRET register and again updated the zip file also updated succesfully. But, now i used to run the DK with battery for that i removed data cable and done the same process.From application mode it entered in to DFU mode and connected to nrfconnect after CRC verification,i'm getting GATT error.On RESET condition it is working fine but when in power ON/OFF state this error is appearing.Does is forget the start address when power off the module?

    3. Bonding is enabled.(when i tried with nrftoolbox)

    4. No,

    5. SDK version:15.2. 

  • In your bootloader project, what is the following define from sdk_config.h:

    NRF_DFU_BLE_REQUIRES_BONDS?

    Is it possible to provide a sniffer trace? The nRF Sniffer would be sufficient.

    Does the same happen if you take an unmodified SDK (download a new unzipped version) and do it without changing anything. You can test with the ble_app_buttonless_dfu example together with the bootloader. Perhaps you have changed something in some files outside the example files?

    Best regards,

    Edvin

  • Hi Edvin,

    NRF_DFU_BLE_REQUIRES_BONDS is 0 in sdk_config.h file.

    I tried to change the NRF_DFU_BLE_REQUIRES_BONDS to 1 but it's not even advertising.Later i changed back to 0 and sniff the on air data.I got some data in normal condition and error condition.

    for normal condition ,check screenshot 1,2,3.

    for error condition ,check screenshot 4,5.

    I fount some difference in packet counter,from that i didn't understand how to analyse that.please help to clear that.           

     Snifferdata.rar

  • You should leave NRF_DFU_BLE_REQUIRES_BONDS 0. I just wanted to check since you said that bonding was enabled. But it isn't. Good. 

    I just looked at the sniffer traces using the pcapng files. None of them ever connect, while your screenshot from the phone suggests that you were connected.

    I don't know if you are familiar with how the bootloader works, but I'll try:

    The screenshot, is that from when you are connected to the bootloader or the application? Please note that the nRF will pretend to be two different devices with different BLE addresses during this procedure. 

    Can you please try to unzip an unmodified version of the SDK and try to run the bootloader from there without changing anything but the public and private keyset? You can use the ble_app_buttonless_dfu example as you application to test with.

    Does the same issue happen? I just want to try to find out whether the issue is related to the phone or the application, or the bootloader project.

    If it doesn't happen in the unmodified SDK and bootloader project, is there any way that I can replicate it here in the office?

Related