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

nrfutil dfu ble failed to open Win 10

I try to load my nRF52 with app via ble from windows 10 laptop.

nRF52 dev kit is loaded with the Softdevice and Bootloader from nRF5_SDK_12.1.0\examples\dfu\ble_dfu_send_hex\test_images_update_nrf52.

I have no problems to load nRF52 dfu_test_app_hrm_s132.zip from Mobile nRF Toolbox.

I try to do as admin:

"nrfutil dfu ble -ic NRF52 -n "DfuTest" -p COM5 -pkg dfu_test_app_hrm_s132.zip"

from windows 10 python2.7.12(nrfutil2.0.0/pc_ble_driver_py0.8.0) only version installed.

but get open failed exception (access denied):

"C:\Python27\lib\site-packages\pc_ble_driver_py\ble_driver.py", line 126, in wrapper raise NordicSemiException('Failed to {}. Error code: {}'.format(wrapped.name, err_code)) pc_ble_driver_py.exceptions.NordicSemiException: Failed to open. Error code: 13

I can see nRF52 device "DfuTest" in win bluetooth device list.

Any ideas?

  • Hi Kent, you edited the comment before I managed to answer. You wrote

    "... in order to use it to perform DFU over BLE on another nRF5x device." Do I need two separate units? I only have one nRF52DK that I laborate with.

    Yes, you need two separate units if you want to use the pc-ble-driver to perform DFU. One that is used as a BLE dongle flashed with the connectivity firmware that communicates with the pc-ble-driver on your computer. The second unit is the nRF52 device that runs your application, bootloader and SoftDevice. Since you only have one unit, then I recommend that you use our nRF Connect or nRF Toolbox apps for Android/iOS to perform DFU instead.

  • Aha I see. Yes I already tried "nRF Toolbox apps for Android/iOS to perform DFU" and it works fine. Im trying to do the same from a production station "linux/pc" with DFU. So I need one "BLE dongle flashed with the connectivity firmware" connected to the production station, and then use nrfutil to do dfu to the manufactured nrf5 unit. In this case the dongle may be adverticed with "DfuTest" and the other with company name. So I need to create a custum bootloader with another advertice name to test this I guess?.

  • Yes, you need a nRF51 dongle or another nRF51/52 DK connected to the production station. You can configure nrfutil to connect to a device with a specific name or address, see the screenshot below. image description

  • Hi guys, I encountered the same issue today while doing dfu update via nrfutil. I was just sending the zip file provided in the SDK12.2 examples\dfu\ble_dfu_send_hex\test_images_update_nrf52 The bootloader and the SoftDevice on the targeted device are programed with the provided Hex files. I was able to do a dfu via the nRF Connector app on a PC and smartphones. However, when using nrfutil, I encountered this error:

    File "c:\python27\lib\site-packages\pc_ble_driver_py\ble_driver.py", line 126, in wrapper
        raise NordicSemiException('Failed to {}. Error code: {}'.format(wrapped.__name__, err_code))
    pc_ble_driver_py.exceptions.NordicSemiException: Failed to open. Error code: 13
    

    At the end of the day, I resolved my issue - I need to run the command prompt as an administrator. This step should be mentioned or even highlighted in the chapter 5 of the nrfutil v2.0.0 User Guide.

  • Hi Rocky, thanks for letting us know. I will report this internally.

Related