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

[SOLVED] DFU: Failed to reopen transport backend

There have been a number of other older topics with this same error message symptom, but I've tried all the solutions proposed and none have worked to solve this specific problem for me so far. I'm simply following the official DFU Tutorial using "Option A: Packs structure" with Master Control Panel and the DFU fails. After it fails, the nRF51-DK becomes unresponsive and must be flashed via USB again before it can be connected to or discovered again.

  • OS: Windows 10 MCP ver 3.10.0.14
  • Project: ble_app_hrs_s110_with_dfu_pca10028 (Keil Pack)
  • Update File: "dfu_test_app_hrm.zip"
  • Master Control Panel Log File

image description

Additionally, the iOS nRF Toolbox app does not enable the button to perform the update after selecting all necessary items so I haven't been able to attempt DFU over iOS. image description

Is anyone able to follow the same steps in the tutorial with success? I'm hoping it's simply a configuration issue with Keil and not a deeper problem. Thanks!

  • Hi, did you remember to program the bootloader first? This is a separate program loaded above the application (memory layout). The application will "jump" to the bootlaoder application when you send the "DFU start" command.

  • You're right! I missed that part! However, after successfully building dfu_dual_bank_ble_s110_pca10028.uvprojx, programming fails with the following errors:

    nrfjprog.exe --reset --program "C:\Development\nordicExamples\dfu\bootloader\pca10028\dual_bank_ble_s110\arm5\_build\nrf51422_xxac.HEX"
    ERROR: Two arguments were provided that cannot be combined. Use --help to read
    ERROR: about the valid argument combinations.
    

    I was able to program the board ONCE by removing the --reset argument, but it prevents the board from entering bootloader mode afterwards. Our final hardware won't have buttons to manually reset and boot into this mode so this could be problematic. But I still tried to resume following the tutorial after burning the bootloader. This unfortunately resulted in the exact same behavior and error message in MCP for the original post.

  • Following up with the nRF Toolbox iOS app, I WAS able to upload the hrs_s110_8_0_sdk_8_0.zip application package successfully! So it appears the issue preventing me from doing the DFU on the iOS side was that I failed to follow instructions closely enough. I'm not sure why Master Control Panel is still exhibiting the same error message and failing though. Also the --reset --program argument combination error concerns me. If you have any ideas regarding those issues, let me know. Otherwise, since I was able to perform a DFU on iOS after following your suggestion, I'm going to mark this problem as solved. Thanks so much, Vidar! :)

  • Happy to help:) the newer releases of nrfjprog (program used to program the bootloader) does not support multiple command arguments which is why --program and --reset didn't work. The reset argument was thus removed in SDK 9.0.0. To make the program run after programming you can manually press the reset pin on the kit, or call nrfjprog --reset in a separately after programming.

    Also, recommend to use the bootloader form SDK 8 or later due to the issue mentioned here.

  • Hi Vidar. After attempting to use the SDK 8 bootloader, I same errors were reported by nrfjprog.exe. Since it's a separate issue, I've created a new topic here. Thanks again for the help!

Related