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

which version of nrfutil for legacy DFU

Hi everybody,

I'm trying to update a device (a PineTime device with a nrf52832). The firmware is using legacy DFU.
I already have a DFU package, so, I only need to perform the DFU, not to generate package.

I installed nrfutil with pip3:

$ nrfutil version
nrfutil version 6.1.0

$ nrfjprog --version
nrfjprog version: 9.7.3
JLinkARM.dll version: 6.80c

A PCA10056 is connected to my computer.

I try to perform DFU with the following command

nrfutil dfu ble -ic NRF52 -pkg ~/dev/pinetime/dfu-0.12.1.zip -p /dev/ttyACM0 -n XX:XX:XX:XX:XX:XX -f


$ nrfutil dfu ble -ic NRF52 -pkg ~/dev/pinetime/dfu-0.12.1.zip -p /dev/ttyACM0 -n FF:AE:EC:DE:38:D3 -f
Flashing connectivity firmware...
Connectivity firmware flashed.
Traceback (most recent call last):
File "/home/vbelloir/.local/bin/nrfutil", line 8, in <module>
sys.exit(cli())
File "/home/vbelloir/.local/lib/python3.8/site-packages/click/core.py", line 829, in __call__
return self.main(*args, **kwargs)
File "/home/vbelloir/.local/lib/python3.8/site-packages/click/core.py", line 782, in main
rv = self.invoke(ctx)
File "/home/vbelloir/.local/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/vbelloir/.local/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/vbelloir/.local/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/vbelloir/.local/lib/python3.8/site-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "/home/vbelloir/.local/lib/python3.8/site-packages/nordicsemi/__main__.py", line 1191, in ble
dfu = Dfu(zip_file_path=package, dfu_transport=ble_backend, connect_delay=connect_delay)
File "/home/vbelloir/.local/lib/python3.8/site-packages/nordicsemi/dfu/dfu.py", line 69, in __init__
self.manifest = Package.unpack_package(zip_file_path, self.unpacked_zip_path)
File "/home/vbelloir/.local/lib/python3.8/site-packages/nordicsemi/dfu/package.py", line 654, in unpack_package
return Manifest.from_json(_json)
File "/home/vbelloir/.local/lib/python3.8/site-packages/nordicsemi/dfu/manifest.py", line 200, in from_json
return Manifest(**kwargs['manifest'])
TypeError: __init__() got an unexpected keyword argument 'dfu_version'

I saw in nrfutil documentation, that to generate a legacy dfu package nrfutil 0.5.2 is needed. Is also true to only perform a dfu?

Thanks for your help.

Vincent

Related