To the kind attention of Nordic support team,
I have got a
1. PCA10040 board, with ble secured bootloader installed
2. PCA10056 that I usually work with every day, these days
3. PCA10056 Preview (never used before)
4. PCA10059
I can upload firmware using nrfutil dfu ble and nRFConnect when using PCA10056 Preview and PCA10059.
But when trying with the other PCA10056, I cannot succeed. I'm doing test with same USB cable, same USB port. Terminal opened as administrator. I'm using sdk15.2,
nrfutil version 6.0.1 nRFConnect v3.3.0 with bluetooth low energy option v2.3.2.
What could theoretically be the issue? Why the procedure just fail only when using a particular board? Is it safe to conclude that it is not working the board? Every board I use, I tried doing/not doing an nrfjprog --eraseall before putting it to the dfu test.
This is what happens when using that one particular PCA10056 board:
Board already flashed with connectivity firmware.2020-02-26 11:58:38,860 Using connectivity board at serial port: COM42020-02-26 11:58:38,868 Sending Application image.2020-02-26 11:58:42,288 Successfully opened COM4. Baud rate: 1000000. Flow control: none. Parity: none.2020-02-26 11:58:42,288 evt> severity(20) message(Successfully opened COM4. Baud rate: 1000000. Flow control: none. Parity: none.)2020-02-26 11:58:42,289 RpcAppStatus.resetPerformed: Target Reset performed2020-02-26 11:58:42,289 evt> status code(RpcAppStatus.resetPerformed) message(Target Reset performed)2020-02-26 11:58:43,558 RpcAppStatus.connectionActive: Connection active2020-02-26 11:58:43,558 evt> status code(RpcAppStatus.connectionActive) message(Connection active)2020-02-26 11:58:43,692 BLE: Scanning for DfuTarg2020-02-26 11:58:43,759 evt> adv_report conn(65535) peer_addr(1A:56:74:7B:F3:1B) rssi(-89) adv_type(BLEGapAdvType.non_connectable_undirected)2020-02-26 11:58:43,759 Received advertisement report, address: 0x1A56747BF31B, device_name:2020-02-26 11:58:43,792 evt> adv_report conn(65535) peer_addr(73:E6:0D:90:A6:9F) rssi(-78) adv_type(BLEGapAdvType.non_connectable_undirected)2020-02-26 11:58:43,792 Received advertisement report, address: 0x73E60D90A69F, device_name:2020-02-26 11:58:43,824 evt> adv_report conn(65535) peer_addr(61:B7:74:73:19:F5) rssi(-91) adv_type(BLEGapAdvType.connectable_undirected)2020-02-26 11:58:43,824 Received advertisement report, address: 0x61B7747319F5, device_name:2020-02-26 11:58:43,858 evt> adv_report conn(65535) peer_addr(05:BD:06:00:FC:DB) rssi(-62) adv_type(BLEGapAdvType.non_connectable_undirected)2020-02-26 11:58:43,858 Received advertisement report, address: 0x05BD0600FCDB, device_name:2020-02-26 11:58:43,891 evt> adv_report conn(65535) peer_addr(C0:AD:EE:3C:F1:FD) rssi(-24) adv_type(BLEGapAdvType.connectable_undirected)2020-02-26 11:58:43,891 Received advertisement report, address: 0xC0ADEE3CF1FD, device_name: DfuTarg2020-02-26 11:58:43,892 BLE: Found target advertiser, address: 0xC0ADEE3CF1FD, name: DfuTarg2020-02-26 11:58:43,895 BLE: Connecting to 0xC0ADEE3CF1FD2020-02-26 11:58:43,964 evt> adv_report conn(65535) peer_addr(C0:AD:EE:3C:F1:FD) rssi(-23) adv_type(None)2020-02-26 11:58:43,964 Received advertisement report, address: 0xC0ADEE3CF1FD, device_name:2020-02-26 11:58:43,965 BLE: Found target advertiser, address: 0xC0ADEE3CF1FD, name:2020-02-26 11:58:43,969 BLE: Connecting to 0xC0ADEE3CF1FD2020-02-26 11:58:43,995 evt> adv_report conn(65535) peer_addr(25:55:A2:C1:25:8B) rssi(-68) adv_type(BLEGapAdvType.non_connectable_undirected)2020-02-26 11:58:43,995 Received advertisement report, address: 0x2555A2C1258B, device_name:2020-02-26 11:58:44,028 evt> adv_report conn(65535) peer_addr(7C:3D:79:0D:BE:C1) rssi(-50) adv_type(BLEGapAdvType.non_connectable_undirected)2020-02-26 11:58:44,028 Received advertisement report, address: 0x7C3D790DBEC1, device_name:2020-02-26 11:58:44,061 evt> adv_report conn(65535) peer_addr(C0:AD:EE:3C:F1:FD) rssi(-24) adv_type(BLEGapAdvType.connectable_undirected)2020-02-26 11:58:44,061 Received advertisement report, address: 0xC0ADEE3CF1FD, device_name: DfuTarg2020-02-26 11:58:44,068 BLE: Found target advertiser, address: 0xC0ADEE3CF1FD, name: DfuTarg2020-02-26 11:58:44,068 BLE: Connecting to 0xC0ADEE3CF1FD2020-02-26 11:58:44,093 evt> adv_report conn(65535) peer_addr(C0:AD:EE:3C:F1:FD) rssi(-23) adv_type(None)2020-02-26 11:58:44,093 Received advertisement report, address: 0xC0ADEE3CF1FD, device_name:2020-02-26 11:58:44,098 BLE: Found target advertiser, address: 0xC0ADEE3CF1FD, name:2020-02-26 11:58:44,098 BLE: Connecting to 0xC0ADEE3CF1FD2020-02-26 11:58:44,125 evt> adv_report conn(65535) peer_addr(72:67:91:25:17:33) rssi(-87) adv_type(BLEGapAdvType.connectable_undirected)2020-02-26 11:58:44,125 Received advertisement report, address: 0x726791251733, device_name:2020-02-26 11:58:44,158 evt> adv_report conn(65535) peer_addr(69:D2:8B:50:2F:60) rssi(-41) adv_type(BLEGapAdvType.non_connectable_undirected)2020-02-26 11:58:44,158 Received advertisement report, address: 0x69D28B502F60, device_name:2020-02-26 11:58:44,191 evt> adv_report conn(65535) peer_addr(CC:D2:81:6F:23:3C) rssi(-73) adv_type(BLEGapAdvType.connectable_undirected)2020-02-26 11:58:44,191 Received advertisement report, address: 0xCCD2816F233C, device_name:2020-02-26 11:58:44,223 evt> adv_report conn(65535) peer_addr(CC:D2:81:6F:23:3C) rssi(-72) adv_type(None)2020-02-26 11:58:44,223 Received advertisement report, address: 0xCCD2816F233C, device_name:2020-02-26 11:58:44,256 evt> adv_report conn(65535) peer_addr(35:B2:42:7D:2D:03) rssi(-72) adv_type(BLEGapAdvType.non_connectable_undirected)2020-02-26 11:58:44,256 Received advertisement report, address: 0x35B2427D2D03, device_name:2020-02-26 11:58:44,288 evt> adv_report conn(65535) peer_addr(C0:AD:EE:3C:F1:FD) rssi(-24) adv_type(BLEGapAdvType.connectable_undirected)2020-02-26 11:58:44,288 Received advertisement report, address: 0xC0ADEE3CF1FD, device_name: DfuTarg2020-02-26 11:58:44,291 BLE: Found target advertiser, address: 0xC0ADEE3CF1FD, name: DfuTarg2020-02-26 11:58:44,294 BLE: Connecting to 0xC0ADEE3CF1FD2020-02-26 11:58:44,321 evt> adv_report conn(65535) peer_addr(C0:AD:EE:3C:F1:FD) rssi(-23) adv_type(None)2020-02-26 11:58:44,321 Received advertisement report, address: 0xC0ADEE3CF1FD, device_name:2020-02-26 11:58:44,323 BLE: Found target advertiser, address: 0xC0ADEE3CF1FD, name:2020-02-26 11:58:44,326 BLE: Connecting to 0xC0ADEE3CF1FD2020-02-26 11:58:44,354 evt> adv_report conn(65535) peer_addr(C0:AD:EE:3C:F1:FD) rssi(-24) adv_type(BLEGapAdvType.connectable_undirected)2020-02-26 11:58:44,354 Received advertisement report, address: 0xC0ADEE3CF1FD, device_name: DfuTarg2020-02-26 11:58:44,356 BLE: Found target advertiser, address: 0xC0ADEE3CF1FD, name: DfuTarg2020-02-26 11:58:44,358 BLE: Connecting to 0xC0ADEE3CF1FD2020-02-26 11:58:44,386 BLE: Connected to [192, 173, 238, 60, 241, 253]2020-02-26 11:58:44,419 evt> conn_param_update_request conn(0) conn_params( min_conn_interval_ms(15.0) max_conn_interval_ms(15.0) slave_latency(0))2020-02-26 11:58:44,419 evt> conn_param_update_request conn(0) conn_params( min_conn_interval_ms(15.0) max_conn_interval_ms(15.0) slave_latency(0))2020-02-26 11:58:45,386 Successfully Connected2020-02-26 11:58:45,386 BLE: Service Discovery2020-02-26 11:58:45,483 evt> on_gattc_evt_prim_srvc_disc_rsp status(BLEGattStatusCode.success) conn(0) Service uuid(0x1800) start handle(1) end handle(9) Service uuid(0x1801) start handle(10) end handle(10) Service uuid(0xFE59) start handle(11) end handle(65535)2020-02-26 11:58:45,573 evt> on_gattc_evt_char_disc_rsp status(BLEGattStatusCode.success) conn(0) Characteristic uuid(0x2A00) properties(BLECharProperties(broadcast=0, read=1, write_wo_resp=0, write=1, notify=0, indicate=0, auth_signed_wr=0)) declaration handle(2) value handle(3) Characteristic uuid(0x2A01) properties(BLECharProperties(broadcast=0, read=1, write_wo_resp=0, write=0, notify=0, indicate=0, auth_signed_wr=0)) declaration handle(4) value handle(5) Characteristic uuid(0x2A04) properties(BLECharProperties(broadcast=0, read=1, write_wo_resp=0, write=0, notify=0, indicate=0, auth_signed_wr=0)) declaration handle(6) value handle(7)2020-02-26 11:58:45,662 evt> on_gattc_evt_char_disc_rsp status(BLEGattStatusCode.success) conn(0) Characteristic uuid(0x2AA6) properties(BLECharProperties(broadcast=0, read=1, write_wo_resp=0, write=0, notify=0, indicate=0, auth_signed_wr=0)) declaration handle(8) value handle(9)2020-02-26 11:58:45,753 evt> on_gattc_evt_char_disc_rsp status(BLEGattStatusCode.attribute_not_found) conn(0)
2020-02-26 11:58:45,843 evt> on_gattc_evt_desc_disc_rsp status(BLEGattStatusCode.success) conn(0) Descriptor uuid(0x2A00) handle(3)2020-02-26 11:58:45,932 evt> on_gattc_evt_desc_disc_rsp status(BLEGattStatusCode.success) conn(0) Descriptor uuid(0x2A01) handle(5)2020-02-26 11:58:46,022 evt> on_gattc_evt_desc_disc_rsp status(BLEGattStatusCode.success) conn(0) Descriptor uuid(0x2A04) handle(7)2020-02-26 11:58:46,114 evt> on_gattc_evt_desc_disc_rsp status(BLEGattStatusCode.success) conn(0) Descriptor uuid(0x2AA6) handle(9)2020-02-26 11:58:46,204 evt> on_gattc_evt_char_disc_rsp status(BLEGattStatusCode.attribute_not_found) conn(0)
2020-02-26 11:58:46,293 evt> on_gattc_evt_char_disc_rsp status(BLEGattStatusCode.success) conn(0) Characteristic uuid(0x0002) properties(BLECharProperties(broadcast=0, read=0, write_wo_resp=1, write=0, notify=0, indicate=0, auth_signed_wr=0)) declaration handle(12) value handle(13)2020-02-26 11:58:46,383 evt> on_gattc_evt_char_disc_rsp status(BLEGattStatusCode.success) conn(0) Characteristic uuid(0x0001) properties(BLECharProperties(broadcast=0, read=0, write_wo_resp=0, write=1, notify=1, indicate=0, auth_signed_wr=0)) declaration handle(14) value handle(15)2020-02-26 11:58:46,473 evt> on_gattc_evt_char_disc_rsp status(BLEGattStatusCode.attribute_not_found) conn(0)
2020-02-26 11:58:46,564 evt> on_gattc_evt_desc_disc_rsp status(BLEGattStatusCode.success) conn(0) Descriptor uuid(0x0002) handle(13)2020-02-26 11:58:46,653 evt> on_gattc_evt_desc_disc_rsp status(BLEGattStatusCode.success) conn(0) Descriptor uuid(0x0001) handle(15)2020-02-26 11:58:46,743 evt> on_gattc_evt_desc_disc_rsp status(BLEGattStatusCode.success) conn(0) Descriptor uuid(0x2902 (Standard.cccd)) handle(16)2020-02-26 11:58:46,833 evt> on_gattc_evt_desc_disc_rsp status(BLEGattStatusCode.attribute_not_found) conn(0)
2020-02-26 11:58:46,834 BLE: Enabling longer ATT MTUs2020-02-26 11:58:46,924 ATT MTU exchanged: conn_handle=0 att_mtu=2472020-02-26 11:58:46,924 New ATT MTU is 2472020-02-26 11:58:46,925 BLE: Enabling longer Data Length2020-02-26 11:58:47,072 New Data Length is 2512020-02-26 11:58:47,073 BLE: Enabling Notifications2020-02-26 11:58:47,163 evt> on_gattc_evt_write_rsp conn(0) status(BLEGattStatusCode.success) error_handle(0) attr_handle(16) write_op(BLEGattWriteOperation.write_req) offset(0) data([])2020-02-26 11:58:47,163 BLE: Set Packet Receipt Notification 02020-02-26 11:58:47,253 evt> on_gattc_evt_write_rsp conn(0) status(BLEGattStatusCode.success) error_handle(0) attr_handle(15) write_op(BLEGattWriteOperation.write_req) offset(0) data([])2020-02-26 11:58:47,286 evt> on_gattc_evt_hvx status(BLEGattStatusCode.success) conn(0) error_handle(0) attr_handle(15) hvx_type(BLEGattHVXType.notification) data([96, 2, 1])2020-02-26 11:58:47,286 Sending init packet...2020-02-26 11:58:47,288 BLE: Selecting Object: type:12020-02-26 11:58:47,374 evt> on_gattc_evt_write_rsp conn(0) status(BLEGattStatusCode.success) error_handle(0) attr_handle(15) write_op(BLEGattWriteOperation.write_req) offset(0) data([])2020-02-26 11:58:47,406 evt> on_gattc_evt_hvx status(BLEGattStatusCode.success) conn(0) error_handle(0) attr_handle(15) hvx_type(BLEGattHVXType.notification) data([96, 6, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])2020-02-26 11:58:47,406 BLE: Object selected: max_size:256 offset:0 crc:02020-02-26 11:58:47,494 evt> on_gattc_evt_write_rsp conn(0) status(BLEGattStatusCode.success) error_handle(0) attr_handle(15) write_op(BLEGattWriteOperation.write_req) offset(0) data([])2020-02-26 11:58:47,525 evt> on_gattc_evt_hvx status(BLEGattStatusCode.success) conn(0) error_handle(0) attr_handle(15) hvx_type(BLEGattHVXType.notification) data([96, 1, 1])2020-02-26 11:58:47,525 BLE: Streaming Data: len:140 offset:0 crc:0x000000002020-02-26 11:58:49,331 RpcAppStatus.pktSendError: Error sending packet to target. Code: 0x802aTraceback (most recent call last):2020-02-26 11:58:49,331 evt> status code(RpcAppStatus.pktSendError) message(Error sending packet to target. Code: 0x802a) File "C:\Users\astella\AppData\Local\Programs\Python\Python38\Scripts\nrfutil-script.py", line 11, in <module> load_entry_point('nrfutil==6.0.1', 'console_scripts', 'nrfutil')() File "c:\users\astella\appdata\local\programs\python\python38\lib\site-packages\click\core.py", line 764, in __call__ return self.main(*args, **kwargs) File "c:\users\astella\appdata\local\programs\python\python38\lib\site-packages\click\core.py", line 717, in main rv = self.invoke(ctx) File "c:\users\astella\appdata\local\programs\python\python38\lib\site-packages\click\core.py", line 1137, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "c:\users\astella\appdata\local\programs\python\python38\lib\site-packages\click\core.py", line 1137, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "c:\users\astella\appdata\local\programs\python\python38\lib\site-packages\click\core.py", line 956, in invoke return ctx.invoke(self.callback, **ctx.params) File "c:\users\astella\appdata\local\programs\python\python38\lib\site-packages\click\core.py", line 555, in invoke return callback(*args, **kwargs) File "c:\users\astella\appdata\local\programs\python\python38\lib\site-packages\nordicsemi\__main__.py", line 1144, in ble dfu.dfu_send_images() File "c:\users\astella\appdata\local\programs\python\python38\lib\site-packages\nordicsemi\dfu\dfu.py", line 127, in dfu_send_images self._dfu_send_image(self.manifest.application) File "c:\users\astella\appdata\local\programs\python\python38\lib\site-packages\nordicsemi\dfu\dfu.py", line 95, in _dfu_send_image self.dfu_transport.send_init_packet(data) File "c:\users\astella\appdata\local\programs\python\python38\lib\site-packages\nordicsemi\dfu\dfu_transport_ble.py", line 524, in send_init_packet self.__stream_data(data=init_packet) File "c:\users\astella\appdata\local\programs\python\python38\lib\site-packages\nordicsemi\dfu\dfu_transport_ble.py", line 642, in __stream_data self.dfu_adapter.write_data_point(list(to_transmit)) File "c:\users\astella\appdata\local\programs\python\python38\lib\site-packages\nordicsemi\dfu\dfu_transport_ble.py", line 350, in write_data_point self.adapter.write_cmd(self.conn_handle, DFUAdapter.DP_UUID, data) File "c:\users\astella\appdata\local\programs\python\python38\lib\site-packages\pc_ble_driver_py\ble_adapter.py", line 514, in write_cmd raise e File "c:\users\astella\appdata\local\programs\python\python38\lib\site-packages\pc_ble_driver_py\ble_adapter.py", line 502, in write_cmd response = self.driver.ble_gattc_write(conn_handle, write_params) File "c:\users\astella\appdata\local\programs\python\python38\lib\site-packages\wrapt\wrappers.py", line 606, in __call__ return self._self_wrapper(self.__wrapped__, self._self_instance, File "c:\users\astella\appdata\local\programs\python\python38\lib\site-packages\pc_ble_driver_py\ble_driver.py", line 103, in wrapper raise NordicSemiException(pc_ble_driver_py.exceptions.NordicSemiException: Failed to ble_gattc_write. Error code: NRF_ERROR_SD_RPC_NO_RESPONSE
And this is when trying doing the procedure using the GUI
Thank you for all your kindness
Hi Stella,
We suspect that it's the Jlink USB driver issue. Could you please check which Jlink driver you have on the PCA10056 board the PCA10056 preview board you have ? (You can use Jlink Configuratior…
We suspect that it's the Jlink USB driver issue. Could you please check which Jlink driver you have on the PCA10056 board the PCA10056 preview board you have ? (You can use Jlink Configuratior to read the Jlink version on the boards)Also could you try to disable MSD in the Jlink driver and test again? You can follow this instruction: https://docs.zephyrproject.org/1.12.0/tools/nordic_segger.html#disabling-the-mass-storage-device-functionality
We have a similar case here a month ago that you may want to have a look: https://devzone.nordicsemi.com/f/nordic-q-a/56570/dfu-with-nrf-connect-linux-write-failure-with-unknown-value-0x8005
I did the
MSDDisable
thing for the only board that was not working. And it worked, after that. Thank you Hung Bui, very nice insight