Hi,
As a part of settings up an automatic BLE DFU testing environment, we're trying to update a single NRF52 board using a PC connected to a NRF51 dongle.
The dongle is programmed using the hex file: connectivity_2.0.1_115k2_with_s130_2.0.1
TheNRF52 board is discoverable and connectable with nRF Connect on Android and on the PC. DFU works on Android with nrf Connect.
When we try to initiate DFU using nrfutil (3.5.0) with the command line: nrfutil.exe dfu ble -ic NRF51 -pkg "<some-long-package-path>" -p COM9 -n "<our device's name>"
we get the message:
2018-04-09 19:33:53,576 Exception: UUID not found
2018-04-09 19:33:53,582 ('c:\\python27\\lib\\site-packages\\pc_ble_driver_py\\ble_driver.py', 1483, 'sync_ble_evt_handler', 'data = util.uint8_array_to_list(hvx_evt.data, hvx_evt.len))')
2018-04-09 19:33:53,584 ('c:\\python27\\lib\\site-packages\\wrapt\\wrappers.py', 562, '__call__', 'args, kwargs)')
2018-04-09 19:33:53,584 ('c:\\python27\\lib\\site-packages\\wrapt\\decorators.py', 440, '_synchronized', 'return wrapped(*args, **kwargs)')
2018-04-09 19:33:53,585 ('c:\\python27\\lib\\site-packages\\pc_ble_driver_py\\ble_adapter.py', 486, 'on_gattc_evt_hvx', "raise NordicSemiException('UUID not found')")
Traceback (most recent call last):
File "c:\python27\lib\runpy.py", line 174, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "c:\python27\lib\runpy.py", line 72, in _run_code
exec code in run_globals
File "C:\Python27\Scripts\nrfutil.exe\__main__.py", line 9, in <module>
File "c:\python27\lib\site-packages\click\core.py", line 722, in __call__
return self.main(*args, **kwargs)
File "c:\python27\lib\site-packages\click\core.py", line 697, in main
rv = self.invoke(ctx)
File "c:\python27\lib\site-packages\click\core.py", line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "c:\python27\lib\site-packages\click\core.py", line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "c:\python27\lib\site-packages\click\core.py", line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "c:\python27\lib\site-packages\click\core.py", line 535, in invoke
return callback(*args, **kwargs)
File "c:\python27\lib\site-packages\nordicsemi\__main__.py", line 834, in ble
dfu.dfu_send_images()
File "c:\python27\lib\site-packages\nordicsemi\dfu\dfu.py", line 129, in dfu_send_images
self._dfu_send_image(self.manifest.application)
File "c:\python27\lib\site-packages\nordicsemi\dfu\dfu.py", line 90, in _dfu_send_image
self.dfu_transport.open()
File "c:\python27\lib\site-packages\nordicsemi\dfu\dfu_transport_ble.py", line 453, in open
target_device_addr = self.target_device_addr)
File "c:\python27\lib\site-packages\nordicsemi\dfu\dfu_transport_ble.py", line 153, in connect
self.jump_from_buttonless_mode_to_bootloader(DFUAdapter.BLE_DFU_BUTTONLESS_BONDED_CHAR_UUID)
File "c:\python27\lib\site-packages\nordicsemi\dfu\dfu_transport_ble.py", line 196, in jump_from_buttonless_mode_to_bootloader
response = self.indication_q.get(timeout=DfuTransportBle.DEFAULT_TIMEOUT)
File "c:\python27\lib\Queue.py", line 176, in get
raise Empty
Queue.Empty
And of course the DFU fails. The strange thing is that it sometimes (rarely) works, so perhaps we're missing some parameters?
Would appreciate help,
Thanks