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

nrfutil "image not found error"

Hi there,
I'm using nrfutil (nrfutil version 6.0.1) to dfu via ble (dongle),

Mac (10.15.2), windows (10), linux (raspbian) have been tried out to update the firmware
none has successfully updated the firmware

the command line used to update firmware is </nrfutil dfu ble -pkg <FilePath> -ic NRF52 -n "<DeviceName>" -f>

for windows extra </-p COM1> was added which was the dongle com port,

for raspbian, it was a deadend since the beginning of installation as the latest version available for module (pc-ble-driver-py) was 0.11.4, while requirements was 0.14.1, so I assumed to have it working first on the other 2 platforms,


so, I got for Mac the following error:

Traceback (most recent call last):
  File "/usr/local/bin/nrfutil", line 8, in <module>
    sys.exit(cli())
  File "/Users/ramyezzat/Library/Python/3.7/lib/python/site-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/Users/ramyezzat/Library/Python/3.7/lib/python/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/Users/ramyezzat/Library/Python/3.7/lib/python/site-packages/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/Users/ramyezzat/Library/Python/3.7/lib/python/site-packages/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/Users/ramyezzat/Library/Python/3.7/lib/python/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/Users/ramyezzat/Library/Python/3.7/lib/python/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/nordicsemi/__main__.py", line 1099, in ble
    ble_driver_init(conn_ic_id)
  File "/usr/local/lib/python3.7/site-packages/nordicsemi/__main__.py", line 68, in ble_driver_init
    from pc_ble_driver_py.ble_driver    import BLEDriver, Flasher
  File "/usr/local/lib/python3.7/site-packages/pc_ble_driver_py/ble_driver.py", line 77, in <module>
    import pc_ble_driver_py.lib.nrf_ble_driver_sd_api_v5 as driver
  File "/usr/local/lib/python3.7/site-packages/pc_ble_driver_py/lib/nrf_ble_driver_sd_api_v5.py", line 13, in <module>
    from . import _nrf_ble_driver_sd_api_v5
ImportError: dlopen(/usr/local/lib/python3.7/site-packages/pc_ble_driver_py/lib/_nrf_ble_driver_sd_api_v5.so, 2): Library not loaded: /Library/Frameworks/Python.framework/Versions/3.7/Python
  Referenced from: /usr/local/lib/python3.7/site-packages/pc_ble_driver_py/lib/_nrf_ble_driver_sd_api_v5.so
  Reason: image not found

and for windows I got the following error:

Traceback (most recent call last):
  File "c:\users\developer\python3\lib\site-packages\pc_ble_driver_py\ble_driver.py", line 2731, in __init__
    snr = [d.serial_number for d in serial_ports if d.port == serial_port][0]
IndexError: list index out of range
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "C:\Users\developer\PYTHON3\Scripts\nrfutil-script.py", line 11, in <module>
    load_entry_point('nrfutil==6.0.1', 'console_scripts', 'nrfutil')()
  File "c:\users\developer\python3\lib\site-packages\click\core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "c:\users\developer\python3\lib\site-packages\click\core.py", line 717, in main
    rv = self.invoke(ctx)
  File "c:\users\developer\python3\lib\site-packages\click\core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "c:\users\developer\python3\lib\site-packages\click\core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "c:\users\developer\python3\lib\site-packages\click\core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "c:\users\developer\python3\lib\site-packages\click\core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "c:\users\developer\python3\lib\site-packages\nrfutil-6.0.1-py3.8.egg\nordicsemi\__main__.py", line 1120, in ble
    flasher = Flasher(serial_port=port, snr = jlink_snr)
  File "c:\users\developer\python3\lib\site-packages\pc_ble_driver_py\ble_driver.py", line 2733, in __init__
    raise NordicSemiException("Board not found: {}".format(serial_port or snr))
pc_ble_driver_py.exceptions.NordicSemiException: Board not found: COM1


eventually I'd like to wrap the code into another python module,

any idea what could possibly be wrong or missing?

Parents
  • Hi,

    For the window case, you cannot use ASUS USB-BT400. The example you refer to is based on HCI, but nrfutil is based on serialized SoftDevice API's via pc-ble-driver. This is completely different. Therefore, you can only use nrfutil with nRF5 devices.

    For the Mac case, the error indicates that you are using the python version that is shipped with Mac OS, and that will not work. We only test with the python distribution from python.org, and there is a hard requirement that the path is what is used by it (/Library/Frameworks/Python.framework/Versions/3.7/Python).

Reply
  • Hi,

    For the window case, you cannot use ASUS USB-BT400. The example you refer to is based on HCI, but nrfutil is based on serialized SoftDevice API's via pc-ble-driver. This is completely different. Therefore, you can only use nrfutil with nRF5 devices.

    For the Mac case, the error indicates that you are using the python version that is shipped with Mac OS, and that will not work. We only test with the python distribution from python.org, and there is a hard requirement that the path is what is used by it (/Library/Frameworks/Python.framework/Versions/3.7/Python).

Children
Related