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

Unable to establish BLE connection after porting SDK version from 11.0.0 to 12.1.0

I carried out following steps:

  1. Application was using SDK 11.0.0 for nRF51 SoC
  2. Ported SDK version 12.1.0
  3. Using secure DFU boot-loader from SDK 12.1.0 (followed all steps mentioned under blog https://devzone.nordicsemi.com/nordic/short-range-guides/b/software-development-kit/posts/getting-started-with-nordics-secure-dfu-bootloader)
  4. Erased flash and updated with secure boot-loader + soft device s130_nrf51_2.0.1
  5. Generated signed DFU .zip package with --sd-req set to 0x87 and with the private key
  6. Able to flash signed DFU package successfully through nrfConnect App
  7. Device BLE scan/broadcast data has correct name of device as defined.
  8. Power reset the device to confirm that the application is running as expected.
  9. On sending BLE command/attempting to DFU, unable to establish BLE connection.
  10. Below error is reported on nrfConnect while attempting to perform DFU operation.

                 

Need support in addressing this issue.

Thanks,

Rahul

Parents
  • Hi Rahul, 

    Could you clarify: 
    - At step 6 "Able to flash signed DFU package successfully through nrfConnect App " was it DFU update or you just flashed the application via the SWD inteface ? 

    - At step 9 "On sending BLE command/attempting to DFU, unable to establish BLE connection." At this moment did you connect to the application or it was the bootloader advertising ? 

    Please try to add screen shot for each step of 6 7 8 9. 

    Please try to test the softdevice + bootloader and to update an SDK's example first and try to switch to DFU mode and update another one. Just to make sure the bootloader work properly. After that you can start testing with the buttonless example we have. 

    I assume the process here doesn't involve the application in SDK v11. You don't plan to do DFU from SDK v11 to SDK v12, correct ? 

  • Hi,

    Please see my responses to your queries inline below:

    Could you clarify: 
    - At step 6 "Able to flash signed DFU package successfully through nrfConnect App " was it DFU update or you just flashed the application via the SWD inteface ? 

    => I flashed secure boot-loader and soft device through SWD interface using nrfConnect Programmer

    Device was broadcasting as "DfuTarg"

    I downloaded DFU .zip package through bluetooth using nrfConnect App. I could see updated broadcast message according to application code as expected.

    - At step 9 "On sending BLE command/attempting to DFU, unable to establish BLE connection." At this moment did you connect to the application or it was the boot-loader advertising ? 

    => At this step, application was running and broadcasting, not the boot-loader

    If you still want screen shots for each step I will add.

    Thanks,

    Rahul

  • Hi Rahul, 
    Yes please upload the screenshot at step 9. 

    In your OP you posted the screenshot when you have the error before you can connect. But in the screenshot in your comment , it seems that it can connect. 

    Please also check if you get any assert in your application when getting connected. 

  • Hi Hung Bui,

    You can ignore first post and refer this as the latest.

    Device has Application + SoftDevice + Bootloader running. Device is broadcasting correct name.

    On this setup I am getting below failure response during firmware upgrade.

  • Hi RahulR,

    I'm sorry for late response I was on vacation last week. 

    The error showed that it couldn't connect after trying to switch from application to the bootloader. This mean either the bootloader didn't work or if the bootloader works but the phone for some reason couldn't connect. We need to figure out which of the two are the reason of the error. 


    I assume that you have implemented buttonless service in the application and the application can jump to the bootloader ? 
    Could you check and verify that ? You can test by try writing 0x0104 to the DFU control point characteristic. You need to enable indication before that. 

    After you do that the application should switch to the bootloader and you should see the bootloader advertising with name DFUTarg (by default) . 


    If you test with the stock example in the SDK (bootloader and application) do you see the same issue ?

  • This is my observation:

    1. On starting DFU, device starts boot-loader with "DfuTarg" as broadcast name.
    2. Message is shown as "Updating device firmware" on nrfConnect
    3. But again start connecting with application.

    Why it is trying to connect to application again?

Reply Children
Related