I've been developing firmware for my PCA10059.
I load the package with nrfutil dfu usb-serial --package=_build/t.zip --serial-number=`cat /tmp/serials.txt` --connect-delay=0
This usually works OK. But one time I realized halfway through the upload that I was loading the wrong firmware, and I terminated with control-C (SIGINT). Since that event, I can no longer upload code to the dongle.
Instead, I get this error:
nrfutil dfu usb-serial --package=_build/t.zip --serial-number=`cat /tmp/serials.txt` --connect-delay=0
Traceback (most recent call last):
File "/home/markrages/.local/bin/nrfutil", line 11, in <module>
sys.exit(cli())
File "/home/markrages/.local/lib/python2.7/site-packages/click/core.py", line 764, in __call__
return self.main(*args, **kwargs)
File "/home/markrages/.local/lib/python2.7/site-packages/click/core.py", line 717, in main
rv = self.invoke(ctx)
File "/home/markrages/.local/lib/python2.7/site-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/markrages/.local/lib/python2.7/site-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/markrages/.local/lib/python2.7/site-packages/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/markrages/.local/lib/python2.7/site-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/home/markrages/.local/lib/python2.7/site-packages/nordicsemi/__main__.py", line 1001, in usb_serial
timeout)
File "/home/markrages/.local/lib/python2.7/site-packages/nordicsemi/__main__.py", line 956, in do_serial
dfu.dfu_send_images()
File "/home/markrages/.local/lib/python2.7/site-packages/nordicsemi/dfu/dfu.py", line 121, in dfu_send_images
self._dfu_send_image(self.manifest.softdevice)
File "/home/markrages/.local/lib/python2.7/site-packages/nordicsemi/dfu/dfu.py", line 102, in _dfu_send_image
self.dfu_transport.send_firmware(data)
File "/home/markrages/.local/lib/python2.7/site-packages/nordicsemi/dfu/dfu_transport_serial.py", line 296, in send_firmware
try_to_recover()
File "/home/markrages/.local/lib/python2.7/site-packages/nordicsemi/dfu/dfu_transport_serial.py", line 292, in try_to_recover
self.__execute()
File "/home/markrages/.local/lib/python2.7/site-packages/nordicsemi/dfu/dfu_transport_serial.py", line 421, in __execute
self.__get_response(DfuTransportSerial.OP_CODE['Execute'])
File "/home/markrages/.local/lib/python2.7/site-packages/nordicsemi/dfu/dfu_transport_serial.py", line 505, in __get_response
get_dict_key(DfuTransport.RES_CODE, resp[2])))
pc_ble_driver_py.exceptions.NordicSemiException: Response Code OperationNotPermitted
Makefile:384: recipe for target 'usbdfu' failed
make: *** [usbdfu] Error 1
So what does
OperationNotPermitted
mean? Is it possible to recover this without JTAG? Or is it bricked?
Regards,
Mark
nrfutil version 5.2.0 on Ubuntu 18.04.