[NCS v2.2.0] - Device Firmware Update (DFU) via OTA using BLE

Hi 

In order to add DFU function to our custom board (integrating nRF52840) over OTA by using BLE, we refer to the guide named "Adding DFU support to your application" and use the same procedure (include the sample) from the "DFU over Bluetooth" section on nRF52840DK. The upload tool we use is nRF Connect Device Manager (Android-verison 1.5.2).

The result is that when we select the "Test and confirm" option on Device Manager to upgrade firmware (whatever app_update.bin or dfu_application.zip), the state will display "Invalid value (3)" after the procedure is completed. We are not sure if the firmware was successfully upgraded.

In view of this, we searched this issue on Nordic Q&A and found someone with the same problem. The case is here. We refered to the solution in this case to upgrade firmware using "Confirm Only" option. But the result was the same. We recorded two logs. One from nRF Logger app and the other from Minicom. They are as follows.

Device Manager, 2023-02-22
Nordic_LBS (Device Manager)
I	10:17:34.488	[e] Connected to FB:C7:5C:DB:A6:D2
I	10:17:34.925	[e] Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms)
I	10:17:35.006	[e] PHY updated (TX: LE 2M, RX: LE 2M)
I	10:17:35.206	[e] Services discovered
I	10:17:35.284	[e] Connection parameters updated (interval: 45.0ms, latency: 0, timeout: 5000ms)
I	10:17:35.311	[e] MTU changed to: 252
I	10:17:35.462	[e] Data written to descr. 00002902-0000-1000-8000-00805f9b34fb
I	10:17:35.484	[e] Notifications enabled
I	10:17:35.513	[e] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I	10:17:35.596	[e] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 01-00-00-06-00-00-FF-06-BF-62-72-63-08-FF
I	10:17:35.620	[e] Wait for value changed complete
I	10:17:35.664	[e] Received Header (Op: 1, Flags: 0, Len: 6, Group: 0, Seq: 255, Command: 6) CBOR {"rc":8}
I	10:17:35.687	[e] PHY read (TX: LE 2M, RX: LE 2M)
I	10:17:35.710	[e] Sending (10 bytes) Header (Op: 0, Flags: 0, Len: 2, Group: 1, Seq: 0, Command: 0) CBOR {}
I	10:17:35.733	[e] Sending (10 bytes) Header (Op: 0, Flags: 0, Len: 2, Group: 0, Seq: 1, Command: 6) CBOR {}
I	10:17:35.756	[e] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I	10:17:35.788	[e] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I	10:17:35.913	[e] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 01-00-00-86-00-01-00-00-BF-66-69-6D-61-67-65-73-9F-BF-64-73-6C-6F-74-00-67-76-65-72-73-69-6F-6E-65-30-2E-30-2E-30-64-68-61-73-68-58-20-74-BE-73-50-F1-1B-50-18-09-1B-27-01-AA-83-E0-36-10-AC-C3-40-E8-19-90-C0-1C-D4-59-CF-6E-60-09-F3-68-62-6F-6F-74-61-62-6C-65-F5-67-70-65-6E-64-69-6E-67-F4-69-63-6F-6E-66-69-72-6D-65-64-F5-66-61-63-74-69-76-65-F5-69-70-65-72-6D-61-6E-65-6E-74-F4-FF-FF-6B-73-70-6C-69-74-53-74-61-74-75-73-00-FF
I	10:17:35.942	[e] Received Header (Op: 1, Flags: 0, Len: 134, Group: 1, Seq: 0, Command: 0) CBOR {"images":[{"slot":0,"version":"0.0.0","hash":"dL5zUPEbUBgJGycBqoPgNhCsw0DoGZDAHNRZz25gCfM=","bootable":true,"pending":false,"confirmed":true,"active":true,"permanent":false}],"splitStatus":0}
I	10:17:36.002	[e] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 01-00-00-06-00-00-01-06-BF-62-72-63-08-FF
I	10:17:36.026	[e] Received Header (Op: 1, Flags: 0, Len: 6, Group: 0, Seq: 1, Command: 6) CBOR {"rc":8}
I	10:17:39.612	[e] Connection parameters updated (interval: 45.0ms, latency: 0, timeout: 420ms)
V	10:18:33.530	[j] Starting DFU, mode: CONFIRM_ONLY
I	10:18:33.726	[e] Sending (10 bytes) Header (Op: 0, Flags: 0, Len: 2, Group: 1, Seq: 2, Command: 0) CBOR {}
I	10:18:33.757	[e] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I	10:18:33.828	[e] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 01-00-00-86-00-01-02-00-BF-66-69-6D-61-67-65-73-9F-BF-64-73-6C-6F-74-00-67-76-65-72-73-69-6F-6E-65-30-2E-30-2E-30-64-68-61-73-68-58-20-74-BE-73-50-F1-1B-50-18-09-1B-27-01-AA-83-E0-36-10-AC-C3-40-E8-19-90-C0-1C-D4-59-CF-6E-60-09-F3-68-62-6F-6F-74-61-62-6C-65-F5-67-70-65-6E-64-69-6E-67-F4-69-63-6F-6E-66-69-72-6D-65-64-F5-66-61-63-74-69-76-65-F5-69-70-65-72-6D-61-6E-65-6E-74-F4-FF-FF-6B-73-70-6C-69-74-53-74-61-74-75-73-00-FF
I	10:18:33.860	[e] Received Header (Op: 1, Flags: 0, Len: 134, Group: 1, Seq: 2, Command: 0) CBOR {"images":[{"slot":0,"version":"0.0.0","hash":"dL5zUPEbUBgJGycBqoPgNhCsw0DoGZDAHNRZz25gCfM=","bootable":true,"pending":false,"confirmed":true,"active":true,"permanent":false}],"splitStatus":0}
V	10:18:33.908	[k] Validation response: {"images":[{"slot":0,"version":"0.0.0","hash":"dL5zUPEbUBgJGycBqoPgNhCsw0DoGZDAHNRZz25gCfM=","bootable":true,"pending":false,"confirmed":true,"active":true,"permanent":false}],"splitStatus":0}
V	10:18:33.932	[j] Moving from state VALIDATE to state UPLOAD
I	10:18:33.954	Uploading firmware...
I	10:18:53.679	Image (207602 bytes) sent in 19535 ms (avg speed: 10.627182 kB/s)
I	10:18:53.757	[Uploader] Upload completed. 207602 bytes sent in 19717 ms with avg speed: 10.528553 kBytes/s
V	10:18:53.795	[j] Moving from state UPLOAD to state CONFIRM
I	10:18:53.847	[e] Sending (58 bytes) Header (Op: 2, Flags: 0, Len: 50, Group: 1, Seq: 174, Command: 0) CBOR {"confirm":true,"hash":"aE2RAoBs7ypcoRjLGCGGB6S1sIRxdLiS4U/bHBbhUxg="}
I	10:18:53.878	[e] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I	10:18:53.911	[e] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 03-00-00-06-00-01-AE-00-BF-62-72-63-03-FF
I	10:18:53.938	[e] Received Header (Op: 3, Flags: 0, Len: 6, Group: 1, Seq: 174, Command: 0) CBOR {"rc":3}
E	10:18:53.977	Upgrade failed
Mcu Mgr Error: IN_VALUE (3)
	at j2.e$b.c(Unknown Source:24)
	at k2.f.j(Unknown Source:10)
	at k2.f.c(Unknown Source:0)
	at k2.e.run(Unknown Source:4)
	at android.os.Handler.handleCallback(Handler.java:883)
	at android.os.Handler.dispatchMessage(Handler.java:100)
	at android.os.Looper.loop(Looper.java:214)
	at android.os.HandlerThread.run(HandlerThread.java:67)

I	10:19:01.875	[e] Sending (10 bytes) Header (Op: 0, Flags: 0, Len: 2, Group: 1, Seq: 175, Command: 0) CBOR {}
I	10:19:01.909	[e] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I	10:19:01.941	[e] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 01-00-00-F4-00-01-AF-00-BF-66-69-6D-61-67-65-73-9F-BF-64-73-6C-6F-74-00-67-76-65-72-73-69-6F-6E-65-30-2E-30-2E-30-64-68-61-73-68-58-20-74-BE-73-50-F1-1B-50-18-09-1B-27-01-AA-83-E0-36-10-AC-C3-40-E8-19-90-C0-1C-D4-59-CF-6E-60-09-F3-68-62-6F-6F-74-61-62-6C-65-F5-67-70-65-6E-64-69-6E-67-F4-69-63-6F-6E-66-69-72-6D-65-64-F5-66-61-63-74-69-76-65-F5-69-70-65-72-6D-61-6E-65-6E-74-F4-FF-BF-64-73-6C-6F-74-01-67-76-65-72-73-69-6F-6E-65-30-2E-30-2E-30-64-68-61-73-68-58-20-68-4D-91-02-80-6C-EF-2A-5C-A1-18-CB-18-21-86-07-A4-B5-B0-84-71-74-B8-92-E1-4F-DB-1C-16-E1-53-18-68-62-6F-6F-74-61-62-6C-65-F5-67-70-65-6E-64-69-6E-67-F4-69-63-6F-6E-66-69-72-6D-65-64-F4-66-61-63-74-69-76-65-F4-69-70-65-72-6D-61-6E-65-6E-74-F4-FF-FF-6B-73-70-6C-69-74-53-74-61-74-75
I	10:19:01.975	[e] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 73-00-FF
I	10:19:02.005	[e] Received Header (Op: 1, Flags: 0, Len: 244, Group: 1, Seq: 175, Command: 0) CBOR {"images":[{"slot":0,"version":"0.0.0","hash":"dL5zUPEbUBgJGycBqoPgNhCsw0DoGZDAHNRZz25gCfM=","bootable":true,"pending":false,"confirmed":true,"active":true,"permanent":false},{"slot":1,"version":"0.0.0","hash":"aE2RAoBs7ypcoRjLGCGGB6S1sIRxdLiS4U/bHBbhUxg=","bootable":true,"pending":false,"confirmed":false,"active":false,"permanent":false}],"splitStatus":0}
V	10:19:25.226	[j] Starting DFU, mode: TEST_AND_CONFIRM
I	10:19:25.377	[e] Connection parameters updated (interval: 15.0ms, latency: 0, timeout: 5000ms)
I	10:19:25.403	[e] Sending (10 bytes) Header (Op: 0, Flags: 0, Len: 2, Group: 1, Seq: 176, Command: 0) CBOR {}
I	10:19:25.440	[e] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I	10:19:25.478	[e] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 01-00-00-F4-00-01-B0-00-BF-66-69-6D-61-67-65-73-9F-BF-64-73-6C-6F-74-00-67-76-65-72-73-69-6F-6E-65-30-2E-30-2E-30-64-68-61-73-68-58-20-74-BE-73-50-F1-1B-50-18-09-1B-27-01-AA-83-E0-36-10-AC-C3-40-E8-19-90-C0-1C-D4-59-CF-6E-60-09-F3-68-62-6F-6F-74-61-62-6C-65-F5-67-70-65-6E-64-69-6E-67-F4-69-63-6F-6E-66-69-72-6D-65-64-F5-66-61-63-74-69-76-65-F5-69-70-65-72-6D-61-6E-65-6E-74-F4-FF-BF-64-73-6C-6F-74-01-67-76-65-72-73-69-6F-6E-65-30-2E-30-2E-30-64-68-61-73-68-58-20-68-4D-91-02-80-6C-EF-2A-5C-A1-18-CB-18-21-86-07-A4-B5-B0-84-71-74-B8-92-E1-4F-DB-1C-16-E1-53-18-68-62-6F-6F-74-61-62-6C-65-F5-67-70-65-6E-64-69-6E-67-F4-69-63-6F-6E-66-69-72-6D-65-64-F4-66-61-63-74-69-76-65-F4-69-70-65-72-6D-61-6E-65-6E-74-F4-FF-FF-6B-73-70-6C-69-74-53-74-61-74-75
I	10:19:25.497	[e] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 73-00-FF
I	10:19:25.523	[e] Received Header (Op: 1, Flags: 0, Len: 244, Group: 1, Seq: 176, Command: 0) CBOR {"images":[{"slot":0,"version":"0.0.0","hash":"dL5zUPEbUBgJGycBqoPgNhCsw0DoGZDAHNRZz25gCfM=","bootable":true,"pending":false,"confirmed":true,"active":true,"permanent":false},{"slot":1,"version":"0.0.0","hash":"aE2RAoBs7ypcoRjLGCGGB6S1sIRxdLiS4U/bHBbhUxg=","bootable":true,"pending":false,"confirmed":false,"active":false,"permanent":false}],"splitStatus":0}
V	10:19:25.551	[k] Validation response: {"images":[{"slot":0,"version":"0.0.0","hash":"dL5zUPEbUBgJGycBqoPgNhCsw0DoGZDAHNRZz25gCfM=","bootable":true,"pending":false,"confirmed":true,"active":true,"permanent":false},{"slot":1,"version":"0.0.0","hash":"aE2RAoBs7ypcoRjLGCGGB6S1sIRxdLiS4U/bHBbhUxg=","bootable":true,"pending":false,"confirmed":false,"active":false,"permanent":false}],"splitStatus":0}
V	10:19:25.578	[j] Moving from state VALIDATE to state TEST
I	10:19:25.611	[e] Sending (58 bytes) Header (Op: 2, Flags: 0, Len: 50, Group: 1, Seq: 177, Command: 0) CBOR {"confirm":false,"hash":"aE2RAoBs7ypcoRjLGCGGB6S1sIRxdLiS4U/bHBbhUxg="}
I	10:19:25.632	[e] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I	10:19:25.673	[e] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 03-00-00-F4-00-01-B1-00-BF-66-69-6D-61-67-65-73-9F-BF-64-73-6C-6F-74-00-67-76-65-72-73-69-6F-6E-65-30-2E-30-2E-30-64-68-61-73-68-58-20-74-BE-73-50-F1-1B-50-18-09-1B-27-01-AA-83-E0-36-10-AC-C3-40-E8-19-90-C0-1C-D4-59-CF-6E-60-09-F3-68-62-6F-6F-74-61-62-6C-65-F5-67-70-65-6E-64-69-6E-67-F4-69-63-6F-6E-66-69-72-6D-65-64-F5-66-61-63-74-69-76-65-F5-69-70-65-72-6D-61-6E-65-6E-74-F4-FF-BF-64-73-6C-6F-74-01-67-76-65-72-73-69-6F-6E-65-30-2E-30-2E-30-64-68-61-73-68-58-20-68-4D-91-02-80-6C-EF-2A-5C-A1-18-CB-18-21-86-07-A4-B5-B0-84-71-74-B8-92-E1-4F-DB-1C-16-E1-53-18-68-62-6F-6F-74-61-62-6C-65-F5-67-70-65-6E-64-69-6E-67-F5-69-63-6F-6E-66-69-72-6D-65-64-F4-66-61-63-74-69-76-65-F4-69-70-65-72-6D-61-6E-65-6E-74-F4-FF-FF-6B-73-70-6C-69-74-53-74-61-74-75
I	10:19:25.701	[e] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 73-00-FF
I	10:19:25.723	[e] Received Header (Op: 3, Flags: 0, Len: 244, Group: 1, Seq: 177, Command: 0) CBOR {"images":[{"slot":0,"version":"0.0.0","hash":"dL5zUPEbUBgJGycBqoPgNhCsw0DoGZDAHNRZz25gCfM=","bootable":true,"pending":false,"confirmed":true,"active":true,"permanent":false},{"slot":1,"version":"0.0.0","hash":"aE2RAoBs7ypcoRjLGCGGB6S1sIRxdLiS4U/bHBbhUxg=","bootable":true,"pending":true,"confirmed":false,"active":false,"permanent":false}],"splitStatus":0}
V	10:19:25.747	[i] Test response: {"images":[{"slot":0,"version":"0.0.0","hash":"dL5zUPEbUBgJGycBqoPgNhCsw0DoGZDAHNRZz25gCfM=","bootable":true,"pending":false,"confirmed":true,"active":true,"permanent":false},{"slot":1,"version":"0.0.0","hash":"aE2RAoBs7ypcoRjLGCGGB6S1sIRxdLiS4U/bHBbhUxg=","bootable":true,"pending":true,"confirmed":false,"active":false,"permanent":false}],"splitStatus":0}
V	10:19:25.770	[j] Moving from state TEST to state RESET
I	10:19:25.807	[e] Sending (10 bytes) Header (Op: 2, Flags: 0, Len: 2, Group: 0, Seq: 178, Command: 5) CBOR {}
I	10:19:25.847	[e] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I	10:19:25.876	[e] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 03-00-00-02-00-00-B2-05-BF-FF
I	10:19:25.896	[e] Received Header (Op: 3, Flags: 0, Len: 2, Group: 0, Seq: 178, Command: 5) CBOR {}
V	10:19:25.917	[g] Reset request success. Waiting for disconnect...
W	10:19:33.614	[e] Error: (0x8): GATT CONN TIMEOUT
I	10:19:33.666	[e] Disconnected
I	10:19:33.701	[g] Device disconnected
V	10:19:33.727	[g] Waiting remaining 2192 ms for the swap operation to complete
V	10:19:35.957	[j] Moving from state RESET to state CONFIRM
I	10:19:47.473	[e] Connected to FB:C7:5C:DB:A6:D2
I	10:19:47.896	[e] Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms)
I	10:19:47.974	[e] PHY updated (TX: LE 2M, RX: LE 2M)
I	10:19:48.210	[e] Services discovered
I	10:19:48.262	[e] MTU changed to: 252
I	10:19:48.300	[e] Connection parameters updated (interval: 45.0ms, latency: 0, timeout: 5000ms)
I	10:19:48.529	[e] Data written to descr. 00002902-0000-1000-8000-00805f9b34fb
I	10:19:48.572	[e] Notifications enabled
I	10:19:48.606	[e] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I	10:19:48.661	[e] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 01-00-00-06-00-00-FF-06-BF-62-72-63-08-FF
I	10:19:48.690	[e] Wait for value changed complete
I	10:19:48.717	[e] Received Header (Op: 1, Flags: 0, Len: 6, Group: 0, Seq: 255, Command: 6) CBOR {"rc":8}
I	10:19:48.744	[e] PHY read (TX: LE 2M, RX: LE 2M)
I	10:19:48.774	[e] Sending (58 bytes) Header (Op: 2, Flags: 0, Len: 50, Group: 1, Seq: 0, Command: 0) CBOR {"confirm":true,"hash":"aE2RAoBs7ypcoRjLGCGGB6S1sIRxdLiS4U/bHBbhUxg="}
I	10:19:48.802	[e] Sending (10 bytes) Header (Op: 0, Flags: 0, Len: 2, Group: 0, Seq: 1, Command: 6) CBOR {}
I	10:19:48.826	[e] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I	10:19:48.861	[e] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I	10:19:48.891	[e] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 03-00-00-06-00-01-00-00-BF-62-72-63-03-FF
I	10:19:48.921	[e] Received Header (Op: 3, Flags: 0, Len: 6, Group: 1, Seq: 0, Command: 0) CBOR {"rc":3}
E	10:19:48.968	Upgrade failed
Mcu Mgr Error: IN_VALUE (3)
	at j2.e$b.c(Unknown Source:24)
	at k2.f.j(Unknown Source:10)
	at k2.f.c(Unknown Source:0)
	at k2.e.run(Unknown Source:4)
	at android.os.Handler.handleCallback(Handler.java:883)
	at android.os.Handler.dispatchMessage(Handler.java:100)
	at android.os.Looper.loop(Looper.java:214)
	at android.os.HandlerThread.run(HandlerThread.java:67)

I	10:19:49.002	[e] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 01-00-00-06-00-00-01-06-BF-62-72-63-08-FF
I	10:19:49.036	[e] Received Header (Op: 1, Flags: 0, Len: 6, Group: 0, Seq: 1, Command: 6) CBOR {"rc":8}
I	10:19:52.590	[e] Connection parameters updated (interval: 45.0ms, latency: 0, timeout: 420ms)
I	10:20:01.416	[e] Sending (10 bytes) Header (Op: 0, Flags: 0, Len: 2, Group: 1, Seq: 2, Command: 0) CBOR {}
I	10:20:01.458	[e] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I	10:20:01.582	[e] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 01-00-00-F4-00-01-02-00-BF-66-69-6D-61-67-65-73-9F-BF-64-73-6C-6F-74-00-67-76-65-72-73-69-6F-6E-65-30-2E-30-2E-30-64-68-61-73-68-58-20-68-4D-91-02-80-6C-EF-2A-5C-A1-18-CB-18-21-86-07-A4-B5-B0-84-71-74-B8-92-E1-4F-DB-1C-16-E1-53-18-68-62-6F-6F-74-61-62-6C-65-F5-67-70-65-6E-64-69-6E-67-F4-69-63-6F-6E-66-69-72-6D-65-64-F4-66-61-63-74-69-76-65-F5-69-70-65-72-6D-61-6E-65-6E-74-F4-FF-BF-64-73-6C-6F-74-01-67-76-65-72-73-69-6F-6E-65-30-2E-30-2E-30-64-68-61-73-68-58-20-74-BE-73-50-F1-1B-50-18-09-1B-27-01-AA-83-E0-36-10-AC-C3-40-E8-19-90-C0-1C-D4-59-CF-6E-60-09-F3-68-62-6F-6F-74-61-62-6C-65-F5-67-70-65-6E-64-69-6E-67-F4-69-63-6F-6E-66-69-72-6D-65-64-F5-66-61-63-74-69-76-65-F4-69-70-65-72-6D-61-6E-65-6E-74-F4-FF-FF-6B-73-70-6C-69-74-53-74-61-74-75
I	10:20:01.667	[e] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 73-00-FF
I	10:20:01.697	[e] Received Header (Op: 1, Flags: 0, Len: 244, Group: 1, Seq: 2, Command: 0) CBOR {"images":[{"slot":0,"version":"0.0.0","hash":"aE2RAoBs7ypcoRjLGCGGB6S1sIRxdLiS4U/bHBbhUxg=","bootable":true,"pending":false,"confirmed":false,"active":true,"permanent":false},{"slot":1,"version":"0.0.0","hash":"dL5zUPEbUBgJGycBqoPgNhCsw0DoGZDAHNRZz25gCfM=","bootable":true,"pending":false,"confirmed":true,"active":false,"permanent":false}],"splitStatus":0}
I	10:20:26.721	[e] Sending (10 bytes) Header (Op: 2, Flags: 0, Len: 2, Group: 0, Seq: 3, Command: 5) CBOR {}
I	10:20:26.809	[e] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I	10:20:26.865	[e] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 03-00-00-02-00-00-03-05-BF-FF
I	10:20:26.894	[e] Received Header (Op: 3, Flags: 0, Len: 2, Group: 0, Seq: 3, Command: 5) CBOR {}
W	10:20:27.683	[e] Error: (0x8): GATT CONN TIMEOUT
I	10:20:27.725	[e] Disconnected
I	10:20:48.442	[e] Connected to FB:C7:5C:DB:A6:D2
I	10:20:48.872	[e] Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms)
I	10:20:48.956	[e] PHY updated (TX: LE 2M, RX: LE 2M)
I	10:20:49.167	[e] Services discovered
I	10:20:49.223	[e] MTU changed to: 252
I	10:20:49.278	[e] Connection parameters updated (interval: 45.0ms, latency: 0, timeout: 5000ms)
I	10:20:49.322	[e] Data written to descr. 00002902-0000-1000-8000-00805f9b34fb
I	10:20:49.353	[e] Notifications enabled
I	10:20:49.389	[e] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I	10:20:49.461	[e] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 01-00-00-06-00-00-FF-06-BF-62-72-63-08-FF
I	10:20:49.491	[e] Wait for value changed complete
I	10:20:49.528	[e] Received Header (Op: 1, Flags: 0, Len: 6, Group: 0, Seq: 255, Command: 6) CBOR {"rc":8}
I	10:20:49.563	[e] PHY read (TX: LE 2M, RX: LE 2M)
I	10:20:49.601	[e] Sending (10 bytes) Header (Op: 0, Flags: 0, Len: 2, Group: 1, Seq: 0, Command: 0) CBOR {}
I	10:20:49.647	[e] Sending (10 bytes) Header (Op: 0, Flags: 0, Len: 2, Group: 0, Seq: 1, Command: 6) CBOR {}
I	10:20:49.674	[e] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I	10:20:49.701	[e] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I	10:20:49.748	[e] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 01-00-00-F4-00-01-00-00-BF-66-69-6D-61-67-65-73-9F-BF-64-73-6C-6F-74-00-67-76-65-72-73-69-6F-6E-65-30-2E-30-2E-30-64-68-61-73-68-58-20-74-BE-73-50-F1-1B-50-18-09-1B-27-01-AA-83-E0-36-10-AC-C3-40-E8-19-90-C0-1C-D4-59-CF-6E-60-09-F3-68-62-6F-6F-74-61-62-6C-65-F5-67-70-65-6E-64-69-6E-67-F4-69-63-6F-6E-66-69-72-6D-65-64-F5-66-61-63-74-69-76-65-F5-69-70-65-72-6D-61-6E-65-6E-74-F4-FF-BF-64-73-6C-6F-74-01-67-76-65-72-73-69-6F-6E-65-30-2E-30-2E-30-64-68-61-73-68-58-20-68-4D-91-02-80-6C-EF-2A-5C-A1-18-CB-18-21-86-07-A4-B5-B0-84-71-74-B8-92-E1-4F-DB-1C-16-E1-53-18-68-62-6F-6F-74-61-62-6C-65-F5-67-70-65-6E-64-69-6E-67-F4-69-63-6F-6E-66-69-72-6D-65-64-F4-66-61-63-74-69-76-65-F4-69-70-65-72-6D-61-6E-65-6E-74-F4-FF-FF-6B-73-70-6C-69-74-53-74-61-74-75
I	10:20:49.822	[e] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 73-00-FF
I	10:20:49.859	[e] Received Header (Op: 1, Flags: 0, Len: 244, Group: 1, Seq: 0, Command: 0) CBOR {"images":[{"slot":0,"version":"0.0.0","hash":"dL5zUPEbUBgJGycBqoPgNhCsw0DoGZDAHNRZz25gCfM=","bootable":true,"pending":false,"confirmed":true,"active":true,"permanent":false},{"slot":1,"version":"0.0.0","hash":"aE2RAoBs7ypcoRjLGCGGB6S1sIRxdLiS4U/bHBbhUxg=","bootable":true,"pending":false,"confirmed":false,"active":false,"permanent":false}],"splitStatus":0}
I	10:20:49.913	[e] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 01-00-00-06-00-00-01-06-BF-62-72-63-08-FF
I	10:20:49.953	[e] Received Header (Op: 1, Flags: 0, Len: 6, Group: 0, Seq: 1, Command: 6) CBOR {"rc":8}
I	10:20:53.566	[e] Connection parameters updated (interval: 45.0ms, latency: 0, timeout: 420ms)

In the minicom log, there is a test log "########## Test Log - Another Image ##########". It means that the current image is using the new image. In addition, you can also confirm the "build time" log to check if the active image is changed.

*** Booting Zephyr OS build v3.2.99-ncs1 ***
I: Starting bootloader
I: Primary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
I: Secondary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
I: Boot source: none
I: Swap type: none
I: Bootloader chainload address offset: 0xc000
I: Jumping to the first image slot*** Booting Zephyr OS build v3.2.99-ncs1 ***
Starting Bluetooth Peripheral LBS example
build time: Feb 21 2023 16:50:30
I: 2 Sectors of 4096 bytes
I: alloc wra: 0, fe8
I: data wra: 0, 0
I: SoftDevice Controller build revision: 
I: 6d 90 41 2a 38 e8 ad 17 |m.A*8...
I: 29 a5 03 38 39 27 d7 85 |)..89'..
I: 1f 85 d8 e1             |....    
I: No ID address. App must call settings_load()
Bluetooth initialized
Advertising successfully started
Connected
I: Swap type: none
I: Swap type: none
I: Swap type: none
I: Swap type: none
I: Swap type: none
I: Swap type: none
I: Swap type: none
I: Swap type: none
I: Swap type: none
I: Swap type: test
I: Swap type: test
*** Booting Zephyr OS build v3.2.99-ncs1 ***
I: Starting bootloader
I: Primary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
I: Secondary image: magic=good, swap_type=0x2, copy_done=0x3, image_ok=0x3
I: Boot source: none
I: Swap type: test
I: Starting swap using move algorithm.
I: Bootloader chainload address offset: 0xc000
I: Jumping to the first image slot*** Booting Zephyr OS build v3.2.99-ncs1 ***
Starting Bluetooth Peripheral LBS example
########## Test Log - Another Image ##########
build time: Feb 21 2023 16:49:34
I: 2 Sectors of 4096 bytes
I: alloc wra: 0, fd0
I: data wra: 0, 1c
I: SoftDevice Controller build revision: 
I: 6d 90 41 2a 38 e8 ad 17 |m.A*8...
I: 29 a5 03 38 39 27 d7 85 |)..89'..
I: 1f 85 d8 e1             |....    
I: No ID address. App must call settings_load()
Bluetooth initialized
Advertising successfully started
Connected
I: Swap type: revert
I: Swap type: revert
*** Booting Zephyr OS build v3.2.99-ncs1 ***
I: Starting bootloader
I: Primary image: magic=good, swap_type=0x2, copy_done=0x1, image_ok=0x3
I: Secondary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
I: Boot source: none
I: Swap type: revert
I: Starting swap using move algorithm.
I: Secondary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
I: Bootloader chainload address offset: 0xc000
I: Jumping to the first image slot*** Booting Zephyr OS build v3.2.99-ncs1 ***
Starting Bluetooth Peripheral LBS example
build time: Feb 21 2023 16:50:30
I: 2 Sectors of 4096 bytes
I: alloc wra: 0, fd0
I: data wra: 0, 1c
I: SoftDevice Controller build revision: 
I: 6d 90 41 2a 38 e8 ad 17 |m.A*8...
I: 29 a5 03 38 39 27 d7 85 |)..89'..
I: 1f 85 d8 e1             |....    
I: No ID address. App must call settings_load()
Bluetooth initialized
Advertising successfully started
Connected
I: Swap type: none
I: Swap type: none

The following steps show the process we did.

1. After connect to the nRF52840DK, click "Image" section and choose "ADVANED". Then "READ" the image. It will send the current image information.

2. Choose "BASIC" and select a image file (binary or zip file). After click "START", it will ask you to select mode. Here we choose "Confirm only" and click "START".

3. After the process is completed, the "State" will change. The message is "Invalid value (3)".

4. Check the image information as the same as the first step and you will see that there are two images in nRF52840DK. But the active image is not the new one but the original one.

5. Next, test the "Test and confirm" option as the same as the second step.

6. The result is also the same as the "Confirm only" method.

7. "READ" image again and you will see the active image is changed to the new one and their locations have also changed.

8. Send a "RESET" command to nRF52840DK to test if it will use the new image after reset.

9. "READ" image again and you will see the active is changed to the original one but not the new one, since the image was not successfully confirmed.

Can anyone help with this?

Please feel free to let me know if you need more information.

Thanks.

Best Regards,

Kevin

  • Hi Abhijith,

    I just tried the file you shared, but the result is still the same.

    The screenshot of the build configuration.

    The log of the build result.

     *  Executing task: nRF Connect: Build [pristine]: peripheral_lbs_DFU_support_OTA/build (active) 
    
    Building peripheral_lbs_DFU_support_OTA
    west build --build-dir /mnt/hdd/nordic/code/peripheral_lbs_DFU_support_OTA/build /mnt/hdd/nordic/code/peripheral_lbs_DFU_support_OTA --pristine --board nrf52840dk_nrf52840 -- -DNCS_TOOLCHAIN_VERSION:STRING="NONE" -DBOARD_ROOT:STRING="/mnt/hdd/nordic/code/ble_dfu_peripheral_lbs;/mnt/hdd/nordic/code/smp_svr;/mnt/hdd/nordic/code/vasco;/mnt/hdd/nordic/code/peripheral_lbs_DFU_support_OTA" -DCONF_FILE:STRING="/mnt/hdd/nordic/code/peripheral_lbs_DFU_support_OTA/prj.conf"
    
    -- west build: generating a build system
    Loading Zephyr default modules (Zephyr base).
    -- Application: /mnt/hdd/nordic/code/peripheral_lbs_DFU_support_OTA
    -- Found Python3: /mnt/hdd/nordic/toolchains/v2.2.0/usr/local/bin/python3.8 (found suitable exact version "3.8.2") found components: Interpreter 
    -- Cache files will be written to: /home/kevin/.cache/zephyr
    -- Zephyr version: 3.2.99 (/mnt/hdd/nordic/v2.2.0/zephyr)
    -- Found west (found suitable version "0.14.0", minimum required is "0.7.1")
    -- Board: nrf52840dk_nrf52840
    -- Found host-tools: zephyr 0.15.1 (/mnt/hdd/nordic/toolchains/v2.2.0/opt/zephyr-sdk)
    -- Found toolchain: zephyr 0.15.1 (/mnt/hdd/nordic/toolchains/v2.2.0/opt/zephyr-sdk)
    -- Found Dtc: /mnt/hdd/nordic/toolchains/v2.2.0/usr/bin/dtc (found suitable version "1.4.7", minimum required is "1.4.6") 
    -- Found BOARD.dts: /mnt/hdd/nordic/code/ble_dfu_peripheral_lbs/boards/arm/nrf52840dk_nrf52840/nrf52840dk_nrf52840.dts
    -- Generated zephyr.dts: /mnt/hdd/nordic/code/peripheral_lbs_DFU_support_OTA/build/zephyr/zephyr.dts
    -- Generated devicetree_generated.h: /mnt/hdd/nordic/code/peripheral_lbs_DFU_support_OTA/build/zephyr/include/generated/devicetree_generated.h
    -- Including generated dts.cmake file: /mnt/hdd/nordic/code/peripheral_lbs_DFU_support_OTA/build/zephyr/dts.cmake
    Parsing /mnt/hdd/nordic/code/peripheral_lbs_DFU_support_OTA/Kconfig
    Loaded configuration '/mnt/hdd/nordic/code/ble_dfu_peripheral_lbs/boards/arm/nrf52840dk_nrf52840/nrf52840dk_nrf52840_defconfig'
    Merged configuration '/mnt/hdd/nordic/code/peripheral_lbs_DFU_support_OTA/prj.conf'
    Configuration saved to '/mnt/hdd/nordic/code/peripheral_lbs_DFU_support_OTA/build/zephyr/.config'
    Kconfig header saved to '/mnt/hdd/nordic/code/peripheral_lbs_DFU_support_OTA/build/zephyr/include/generated/autoconf.h'
    -- The C compiler identification is GNU 12.1.0
    -- The CXX compiler identification is GNU 12.1.0
    -- The ASM compiler identification is GNU
    -- Found assembler: /mnt/hdd/nordic/toolchains/v2.2.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc
    -- Found Python3: /mnt/hdd/nordic/toolchains/v2.2.0/usr/local/bin/python3.8 (found version "3.8.2") found components: Interpreter 
    
    === child image mcuboot -  begin ===
    loading initial cache file /mnt/hdd/nordic/code/peripheral_lbs_DFU_support_OTA/build/mcuboot/child_image_preload.cmake
    Loading Zephyr default modules (Zephyr base).
    -- Application: /mnt/hdd/nordic/v2.2.0/bootloader/mcuboot/boot/zephyr
    -- Found Python3: /mnt/hdd/nordic/toolchains/v2.2.0/usr/local/bin/python3.8 (found suitable exact version "3.8.2") found components: Interpreter 
    -- Cache files will be written to: /home/kevin/.cache/zephyr
    -- Zephyr version: 3.2.99 (/mnt/hdd/nordic/v2.2.0/zephyr)
    -- Found west (found suitable version "0.14.0", minimum required is "0.7.1")
    -- Board: nrf52840dk_nrf52840
    -- Found host-tools: zephyr 0.15.1 (/mnt/hdd/nordic/toolchains/v2.2.0/opt/zephyr-sdk)
    -- Found toolchain: zephyr 0.15.1 (/mnt/hdd/nordic/toolchains/v2.2.0/opt/zephyr-sdk)
    -- Found Dtc: /mnt/hdd/nordic/toolchains/v2.2.0/usr/bin/dtc (found suitable version "1.4.7", minimum required is "1.4.6") 
    -- Found BOARD.dts: /mnt/hdd/nordic/code/ble_dfu_peripheral_lbs/boards/arm/nrf52840dk_nrf52840/nrf52840dk_nrf52840.dts
    -- Found devicetree overlay: /mnt/hdd/nordic/v2.2.0/nrf/modules/mcuboot/usb.overlay
    -- Found devicetree overlay: /mnt/hdd/nordic/v2.2.0/bootloader/mcuboot/boot/zephyr/dts.overlay
    -- Generated zephyr.dts: /mnt/hdd/nordic/code/peripheral_lbs_DFU_support_OTA/build/mcuboot/zephyr/zephyr.dts
    -- Generated devicetree_generated.h: /mnt/hdd/nordic/code/peripheral_lbs_DFU_support_OTA/build/mcuboot/zephyr/include/generated/devicetree_generated.h
    -- Including generated dts.cmake file: /mnt/hdd/nordic/code/peripheral_lbs_DFU_support_OTA/build/mcuboot/zephyr/dts.cmake
    Parsing /mnt/hdd/nordic/v2.2.0/bootloader/mcuboot/boot/zephyr/Kconfig
    Loaded configuration '/mnt/hdd/nordic/code/ble_dfu_peripheral_lbs/boards/arm/nrf52840dk_nrf52840/nrf52840dk_nrf52840_defconfig'
    Merged configuration '/mnt/hdd/nordic/v2.2.0/bootloader/mcuboot/boot/zephyr/prj.conf'
    Merged configuration '/mnt/hdd/nordic/v2.2.0/bootloader/mcuboot/boot/zephyr/boards/nrf52840dk_nrf52840.conf'
    Merged configuration '/mnt/hdd/nordic/v2.2.0/nrf/subsys/partition_manager/partition_manager_enabled.conf'
    Merged configuration '/mnt/hdd/nordic/code/peripheral_lbs_DFU_support_OTA/build/mcuboot/zephyr/misc/generated/extra_kconfig_options.conf'
    Configuration saved to '/mnt/hdd/nordic/code/peripheral_lbs_DFU_support_OTA/build/mcuboot/zephyr/.config'
    Kconfig header saved to '/mnt/hdd/nordic/code/peripheral_lbs_DFU_support_OTA/build/mcuboot/zephyr/include/generated/autoconf.h'
    -- The C compiler identification is GNU 12.1.0
    -- The CXX compiler identification is GNU 12.1.0
    -- The ASM compiler identification is GNU
    -- Found assembler: /mnt/hdd/nordic/toolchains/v2.2.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc
    CMake Warning at /mnt/hdd/nordic/v2.2.0/nrf/lib/flash_patch/CMakeLists.txt:8 (message):
      
    
            ----------------------------------------------------------
            --- WARNING: To maintain the integrity of secure boot, ---
            --- enable CONFIG_DISABLE_FLASH_PATCH in production.   ---
            ----------------------------------------------------------
    
    
    MCUBoot bootloader key file: /mnt/hdd/nordic/v2.2.0/bootloader/mcuboot/root-ec-p256.pem
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /mnt/hdd/nordic/code/peripheral_lbs_DFU_support_OTA/build/mcuboot
    === child image mcuboot -  end ===
    
    CMake Warning at /mnt/hdd/nordic/v2.2.0/nrf/modules/mcuboot/CMakeLists.txt:286 (message):
      
    
              ---------------------------------------------------------
              --- WARNING: Using default MCUBoot key, it should not ---
              --- be used for production.                           ---
              ---------------------------------------------------------
              
    
    
    
    CMake Warning at /mnt/hdd/nordic/v2.2.0/zephyr/CMakeLists.txt:1833 (message):
      __ASSERT() statements are globally ENABLED
    
    
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /mnt/hdd/nordic/code/peripheral_lbs_DFU_support_OTA/build
    -- west build: building application
    [1/280] Preparing syscall dependency handling
    
    [2/280] Generating include/generated/version.h
    -- Zephyr version: 3.2.99 (/mnt/hdd/nordic/v2.2.0/zephyr), build: v3.2.99-ncs1
    [3/280] Creating directories for 'mcuboot_subimage'
    [4/280] No download step for 'mcuboot_subimage'
    [5/280] No update step for 'mcuboot_subimage'
    [6/280] No patch step for 'mcuboot_subimage'
    [7/280] No configure step for 'mcuboot_subimage'
    [7/280] Performing build step for 'mcuboot_subimage'
    [1/190] Preparing syscall dependency handling
    
    [2/190] Generating include/generated/version.h
    -- Zephyr version: 3.2.99 (/mnt/hdd/nordic/v2.2.0/zephyr), build: v3.2.99-ncs1
    [3/190] Generating misc/generated/syscalls_subdirs.trigger
    [4/190] Generating misc/generated/syscalls.json, misc/generated/struct_tags.json
    [5/190] Generating include/generated/driver-validation.h
    [6/190] Generating include/generated/syscall_dispatch.c, include/generated/syscall_list.h
    [7/190] Generating include/generated/kobj-types-enum.h, include/generated/otype-to-str.h, include/generated/otype-to-size.h
    [8/190] Building C object zephyr/CMakeFiles/offsets.dir/arch/arm/core/offsets/offsets.c.obj
    [9/190] Generating include/generated/offsets.h
    [10/190] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/onoff.c.obj
    [11/190] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/crc32c_sw.c.obj
    [12/190] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/crc32_sw.c.obj
    [13/190] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/crc16_sw.c.obj
    [14/190] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/crc8_sw.c.obj
    [15/190] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/crc7_sw.c.obj
    [16/190] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/dec.c.obj
    [17/190] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/cbprintf_packaged.c.obj
    [18/190] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/fdtable.c.obj
    [19/190] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/hex.c.obj
    [20/190] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/printk.c.obj
    [21/190] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/rb.c.obj
    [22/190] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/sem.c.obj
    [23/190] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/thread_entry.c.obj
    [24/190] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/timeutil.c.obj
    [25/190] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/heap.c.obj
    [26/190] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/heap-validate.c.obj
    [27/190] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/bitarray.c.obj
    [28/190] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/multi_heap.c.obj
    [29/190] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/notify.c.obj
    [30/190] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/cbprintf_nano.c.obj
    [31/190] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/cbprintf.c.obj
    [32/190] Generating zephyr/autogen-pubkey.c
    [33/190] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/assert.c.obj
    [34/190] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/reboot.c.obj
    [35/190] Building C object zephyr/CMakeFiles/zephyr.dir/misc/generated/configs.c.obj
    [36/190] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/logging/log_minimal.c.obj
    [37/190] Building C object zephyr/CMakeFiles/zephyr.dir/soc/arm/nordic_nrf/validate_enabled_instances.c.obj
    [38/190] Building ASM object zephyr/CMakeFiles/zephyr.dir/soc/arm/nordic_nrf/common/soc_nrf_common.S.obj
    [39/190] Building C object zephyr/CMakeFiles/zephyr.dir/soc/arm/nordic_nrf/validate_base_addresses.c.obj
    [40/190] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/tracing/tracing_none.c.obj
    [41/190] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/storage/flash_map/flash_map.c.obj
    [42/190] Building C object CMakeFiles/app.dir/main.c.obj
    [43/190] Building C object CMakeFiles/app.dir/os.c.obj
    [44/190] Building C object CMakeFiles/app.dir/flash_map_extended.c.obj
    [45/190] Building C object CMakeFiles/app.dir/keys.c.obj
    [46/190] Building C object CMakeFiles/app.dir/mnt/hdd/nordic/v2.2.0/bootloader/mcuboot/boot/bootutil/src/fault_injection_hardening.c.obj
    [47/190] Building C object CMakeFiles/app.dir/mnt/hdd/nordic/v2.2.0/bootloader/mcuboot/boot/bootutil/src/image_validate.c.obj
    [48/190] Building C object CMakeFiles/app.dir/mnt/hdd/nordic/v2.2.0/bootloader/mcuboot/boot/bootutil/src/tlv.c.obj
    [49/190] Building C object CMakeFiles/app.dir/mnt/hdd/nordic/v2.2.0/bootloader/mcuboot/boot/bootutil/src/encrypted.c.obj
    [50/190] Building C object CMakeFiles/app.dir/mnt/hdd/nordic/v2.2.0/bootloader/mcuboot/boot/bootutil/src/image_rsa.c.obj
    [51/190] Building C object CMakeFiles/app.dir/mnt/hdd/nordic/v2.2.0/bootloader/mcuboot/boot/bootutil/src/image_ec256.c.obj
    [52/190] Building C object CMakeFiles/app.dir/mnt/hdd/nordic/v2.2.0/bootloader/mcuboot/boot/bootutil/src/image_ed25519.c.obj
    [53/190] Building C object CMakeFiles/app.dir/mnt/hdd/nordic/v2.2.0/bootloader/mcuboot/boot/bootutil/src/bootutil_misc.c.obj
    [54/190] Building C object CMakeFiles/app.dir/mnt/hdd/nordic/v2.2.0/bootloader/mcuboot/ext/nrf/cc310_glue.c.obj
    [55/190] Building C object CMakeFiles/app.dir/mnt/hdd/nordic/v2.2.0/bootloader/mcuboot/boot/bootutil/src/loader.c.obj
    [56/190] Building C object CMakeFiles/app.dir/mnt/hdd/nordic/v2.2.0/bootloader/mcuboot/boot/bootutil/src/swap_misc.c.obj
    [57/190] Building C object CMakeFiles/app.dir/mnt/hdd/nordic/v2.2.0/bootloader/mcuboot/boot/bootutil/src/swap_scratch.c.obj
    [58/190] Building C object CMakeFiles/app.dir/mnt/hdd/nordic/v2.2.0/bootloader/mcuboot/ext/mbedtls-asn1/src/asn1parse.c.obj
    [59/190] Building C object CMakeFiles/app.dir/mnt/hdd/nordic/v2.2.0/bootloader/mcuboot/ext/mbedtls-asn1/src/platform_util.c.obj
    [60/190] Building C object CMakeFiles/app.dir/mnt/hdd/nordic/v2.2.0/bootloader/mcuboot/boot/bootutil/src/swap_move.c.obj
    [61/190] Building C object CMakeFiles/app.dir/mnt/hdd/nordic/v2.2.0/bootloader/mcuboot/boot/bootutil/src/caps.c.obj
    [62/190] Building C object CMakeFiles/app.dir/zephyr/autogen-pubkey.c.obj
    [63/190] Building C object CMakeFiles/app.dir/nrf_cleanup.c.obj
    [64/190] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/storage/flash_map/flash_map_layout.c.obj
    [65/190] Building C object zephyr/CMakeFiles/zephyr.dir/mnt/hdd/nordic/v2.2.0/nrf/subsys/partition_manager/flash_map_partition_manager.c.obj
    [66/190] Building C object zephyr/CMakeFiles/zephyr.dir/mnt/hdd/nordic/v2.2.0/nrfxlib/crypto/nrf_cc310_platform/src/nrf_cc3xx_platform_abort_zephyr.c.obj
    [67/190] Building C object zephyr/CMakeFiles/zephyr.dir/mnt/hdd/nordic/v2.2.0/nrfxlib/crypto/nrf_cc310_platform/src/nrf_cc3xx_platform_no_mutex_zephyr.c.obj
    [68/190] Building C object zephyr/soc/arm/common/cortex_m/CMakeFiles/soc__arm__common__cortex_m.dir/arm_mpu_regions.c.obj
    [69/190] Building C object modules/nrf/lib/fatal_error/CMakeFiles/..__nrf__lib__fatal_error.dir/fatal_error.c.obj
    [70/190] Building ASM object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/cpu_idle.S.obj
    [71/190] Building C object zephyr/arch/common/CMakeFiles/isr_tables.dir/isr_tables.c.obj
    [72/190] Generating linker_zephyr_pre0.cmd
    [73/190] Generating linker_zephyr_pre1.cmd
    [74/190] Linking C static library app/libapp.a
    [75/190] Building C object zephyr/arch/common/CMakeFiles/arch__common.dir/sw_isr_common.c.obj
    [76/190] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/fatal.c.obj
    [77/190] Linking C static library zephyr/libzephyr.a
    [78/190] Linking C static library zephyr/soc/arm/common/cortex_m/libsoc__arm__common__cortex_m.a
    [79/190] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/nmi.c.obj
    [80/190] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/irq_manage.c.obj
    [81/190] Linking C static library zephyr/arch/common/libisr_tables.a
    [82/190] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/prep_c.c.obj
    [83/190] Building ASM object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/nmi_on_reset.S.obj
    [84/190] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/swap.c.obj
    [85/190] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/thread.c.obj
    [86/190] Building ASM object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/swap_helper.S.obj
    [87/190] Building ASM object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/isr_wrapper.S.obj
    [88/190] Building ASM object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/exc_exit.S.obj
    [89/190] Building C object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/fault.c.obj
    [90/190] Building ASM object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/fault_s.S.obj
    [91/190] Linking C static library zephyr/arch/common/libarch__common.a
    [92/190] Building C object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/fpu.c.obj
    [93/190] Building C object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/irq_init.c.obj
    [94/190] Building ASM object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/reset.S.obj
    [95/190] Building C object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/scb.c.obj
    [96/190] Building C object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/thread_abort.c.obj
    [97/190] Building ASM object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/vector_table.S.obj
    [98/190] Linking C static library zephyr/arch/arch/arm/core/aarch32/libarch__arm__core__aarch32.a
    [99/190] Building C object zephyr/arch/arch/arm/core/aarch32/mpu/CMakeFiles/arch__arm__core__aarch32__mpu.dir/arm_core_mpu.c.obj
    [100/190] Building C object zephyr/arch/arch/arm/core/aarch32/mpu/CMakeFiles/arch__arm__core__aarch32__mpu.dir/arm_mpu.c.obj
    [101/190] Building C object zephyr/soc/arm/nordic_nrf/nrf52/CMakeFiles/soc__arm__nordic_nrf__nrf52.dir/soc.c.obj
    [102/190] Building C object zephyr/drivers/clock_control/CMakeFiles/drivers__clock_control.dir/clock_control_nrf.c.obj
    [103/190] Building C object zephyr/drivers/console/CMakeFiles/drivers__console.dir/uart_console.c.obj
    [104/190] Building C object zephyr/drivers/gpio/CMakeFiles/drivers__gpio.dir/gpio_nrfx.c.obj
    [105/190] Building C object zephyr/drivers/flash/CMakeFiles/drivers__flash.dir/soc_flash_nrf.c.obj
    [106/190] Linking C static library zephyr/arch/arch/arm/core/aarch32/cortex_m/libarch__arm__core__aarch32__cortex_m.a
    [107/190] Building C object zephyr/drivers/flash/CMakeFiles/drivers__flash.dir/flash_page_layout.c.obj
    [108/190] Building C object zephyr/drivers/serial/CMakeFiles/drivers__serial.dir/uart_nrfx_uarte.c.obj
    [109/190] Generating ../../../include/generated/libc/minimal/strerror_table.h
    [110/190] Building C object zephyr/drivers/timer/CMakeFiles/drivers__timer.dir/sys_clock_init.c.obj
    [111/190] Building C object zephyr/drivers/timer/CMakeFiles/drivers__timer.dir/nrf_rtc_timer.c.obj
    [112/190] Building C object zephyr/CMakeFiles/zephyr_pre0.dir/misc/empty_file.c.obj
    [113/190] Linking C static library zephyr/drivers/clock_control/libdrivers__clock_control.a
    [114/190] Linking C static library zephyr/drivers/console/libdrivers__console.a
    [115/190] Linking C static library zephyr/drivers/flash/libdrivers__flash.a
    [116/190] Linking C static library zephyr/drivers/serial/libdrivers__serial.a
    [117/190] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdlib/atoi.c.obj
    [118/190] Linking C static library zephyr/arch/arch/arm/core/aarch32/mpu/libarch__arm__core__aarch32__mpu.a
    [119/190] Linking C static library zephyr/soc/arm/nordic_nrf/nrf52/libsoc__arm__nordic_nrf__nrf52.a
    [120/190] Linking C static library zephyr/drivers/gpio/libdrivers__gpio.a
    [121/190] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdlib/abort.c.obj
    [122/190] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdlib/strtol.c.obj
    [123/190] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdlib/strtoul.c.obj
    [124/190] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdlib/strtoll.c.obj
    [125/190] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdlib/strtoull.c.obj
    [126/190] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdlib/malloc.c.obj
    [127/190] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdlib/bsearch.c.obj
    [128/190] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdlib/exit.c.obj
    [129/190] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdlib/qsort.c.obj
    [130/190] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/string/strerror.c.obj
    [131/190] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/string/strncasecmp.c.obj
    [132/190] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/string/strstr.c.obj
    [133/190] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/string/string.c.obj
    [134/190] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/string/strspn.c.obj
    [135/190] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdout/stdout_console.c.obj
    [136/190] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdout/sprintf.c.obj
    [137/190] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdout/fprintf.c.obj
    [138/190] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/math/sqrtf.c.obj
    [139/190] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/math/sqrt.c.obj
    [140/190] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/time/gmtime.c.obj
    [141/190] Linking C static library zephyr/drivers/timer/libdrivers__timer.a
    [142/190] Building C object zephyr/drivers/pinctrl/CMakeFiles/drivers__pinctrl.dir/common.c.obj
    [143/190] Building C object zephyr/drivers/pinctrl/CMakeFiles/drivers__pinctrl.dir/pinctrl_nrf.c.obj
    [144/190] Building C object modules/nrf/lib/fprotect/CMakeFiles/..__nrf__lib__fprotect.dir/fprotect_acl.c.obj
    [145/190] Linking C static library modules/nrf/lib/fatal_error/lib..__nrf__lib__fatal_error.a
    [146/190] Building C object modules/mcuboot/boot/bootutil/zephyr/CMakeFiles/mcuboot_util.dir/mnt/hdd/nordic/v2.2.0/bootloader/mcuboot/boot/bootutil/src/bootutil_public.c.obj
    [147/190] Building C object modules/hal_nordic/nrfx/CMakeFiles/modules__hal_nordic__nrfx.dir/mnt/hdd/nordic/v2.2.0/modules/hal/nordic/nrfx/mdk/system_nrf52840.c.obj
    [148/190] Building C object modules/nrf/drivers/hw_cc310/CMakeFiles/..__nrf__drivers__hw_cc310.dir/hw_cc310.c.obj
    [149/190] Linking C static library zephyr/lib/libc/minimal/liblib__libc__minimal.a
    [150/190] Building C object modules/hal_nordic/nrfx/CMakeFiles/modules__hal_nordic__nrfx.dir/mnt/hdd/nordic/v2.2.0/modules/hal/nordic/nrfx/helpers/nrfx_flag32_allocator.c.obj
    [151/190] Building C object modules/hal_nordic/nrfx/CMakeFiles/modules__hal_nordic__nrfx.dir/nrfx_glue.c.obj
    [152/190] Building C object modules/hal_nordic/nrfx/CMakeFiles/modules__hal_nordic__nrfx.dir/mnt/hdd/nordic/v2.2.0/modules/hal/nordic/nrfx/drivers/src/nrfx_clock.c.obj
    [153/190] Building C object modules/hal_nordic/nrfx/CMakeFiles/modules__hal_nordic__nrfx.dir/mnt/hdd/nordic/v2.2.0/modules/hal/nordic/nrfx/drivers/src/nrfx_gpiote.c.obj
    [154/190] Building C object modules/hal_nordic/nrfx/CMakeFiles/modules__hal_nordic__nrfx.dir/mnt/hdd/nordic/v2.2.0/modules/hal/nordic/nrfx/drivers/src/nrfx_nvmc.c.obj
    [155/190] Linking C static library zephyr/drivers/pinctrl/libdrivers__pinctrl.a
    [156/190] Linking C static library modules/nrf/lib/fprotect/lib..__nrf__lib__fprotect.a
    [157/190] Linking C static library modules/mcuboot/boot/bootutil/zephyr/libmcuboot_util.a
    [158/190] Linking C static library modules/nrf/drivers/hw_cc310/lib..__nrf__drivers__hw_cc310.a
    [159/190] Building C object modules/hal_nordic/nrfx/CMakeFiles/modules__hal_nordic__nrfx.dir/mnt/hdd/nordic/v2.2.0/modules/hal/nordic/nrfx/drivers/src/nrfx_ppi.c.obj
    [160/190] Building C object modules/hal_nordic/nrfx/CMakeFiles/modules__hal_nordic__nrfx.dir/mnt/hdd/nordic/v2.2.0/modules/hal/nordic/nrfx/drivers/src/nrfx_wdt.c.obj
    [161/190] Building C object modules/segger/CMakeFiles/modules__segger.dir/mnt/hdd/nordic/v2.2.0/modules/debug/segger/SEGGER/SEGGER_RTT.c.obj
    [162/190] Building C object modules/segger/CMakeFiles/modules__segger.dir/SEGGER_RTT_zephyr.c.obj
    [163/190] Building C object zephyr/kernel/CMakeFiles/kernel.dir/main_weak.c.obj
    [164/190] Building C object zephyr/kernel/CMakeFiles/kernel.dir/banner.c.obj
    [165/190] Building C object zephyr/kernel/CMakeFiles/kernel.dir/device.c.obj
    [166/190] Building C object zephyr/kernel/CMakeFiles/kernel.dir/errno.c.obj
    [167/190] Building C object zephyr/kernel/CMakeFiles/kernel.dir/fatal.c.obj
    [168/190] Building C object zephyr/kernel/CMakeFiles/kernel.dir/init.c.obj
    [169/190] Building C object zephyr/kernel/CMakeFiles/kernel.dir/kheap.c.obj
    [170/190] Linking C static library modules/hal_nordic/nrfx/libmodules__hal_nordic__nrfx.a
    [171/190] Building C object zephyr/kernel/CMakeFiles/kernel.dir/mem_slab.c.obj
    [172/190] Building C object zephyr/kernel/CMakeFiles/kernel.dir/thread.c.obj
    [173/190] Building C object zephyr/kernel/CMakeFiles/kernel.dir/version.c.obj
    [174/190] Building C object zephyr/kernel/CMakeFiles/kernel.dir/xip.c.obj
    [175/190] Building C object zephyr/kernel/CMakeFiles/kernel.dir/timeout.c.obj
    [176/190] Building C object zephyr/kernel/CMakeFiles/kernel.dir/timer.c.obj
    [177/190] Linking C static library modules/segger/libmodules__segger.a
    [178/190] Building C object zephyr/kernel/CMakeFiles/kernel.dir/mempool.c.obj
    [179/190] Linking C static library zephyr/kernel/libkernel.a
    [180/190] Linking C executable zephyr/zephyr_pre0.elf
    
    [181/190] Generating dev_handles.c
    [182/190] Building C object zephyr/CMakeFiles/zephyr_pre1.dir/misc/empty_file.c.obj
    [183/190] Building C object zephyr/CMakeFiles/zephyr_pre1.dir/dev_handles.c.obj
    [184/190] Linking C executable zephyr/zephyr_pre1.elf
    
    [185/190] Generating linker.cmd
    [186/190] Generating isr_tables.c, isrList.bin
    [187/190] Building C object zephyr/CMakeFiles/zephyr_final.dir/misc/empty_file.c.obj
    [188/190] Building C object zephyr/CMakeFiles/zephyr_final.dir/dev_handles.c.obj
    [189/190] Building C object zephyr/CMakeFiles/zephyr_final.dir/isr_tables.c.obj
    [190/190] Linking C executable zephyr/zephyr.elf
    Memory region         Used Size  Region Size  %age Used
               FLASH:       33692 B        48 KB     68.55%
                 RAM:       17792 B       256 KB      6.79%
            IDT_LIST:          0 GB         2 KB      0.00%
    [259/280] Linking C executable zephyr/zephyr_pre0.elf
    
    [263/280] Linking C executable zephyr/zephyr_pre1.elf
    
    [264/280] Generating linker.cmd
    [266/280] No install step for 'mcuboot_subimage'
    [267/280] Completed 'mcuboot_subimage'
    [268/280] Generating isr_tables.c, isrList.bin
    [269/280] Building C object zephyr/CMakeFiles/zephyr_final.dir/misc/empty_file.c.obj
    [270/280] Building C object zephyr/CMakeFiles/zephyr_final.dir/dev_handles.c.obj
    [271/280] Building C object zephyr/CMakeFiles/zephyr_final.dir/isr_tables.c.obj
    [272/280] Linking C executable zephyr/zephyr.elf
    Memory region         Used Size  Region Size  %age Used
               FLASH:      206888 B     495104 B     41.79%
                 RAM:       43516 B       256 KB     16.60%
            IDT_LIST:          0 GB         2 KB      0.00%
    [273/280] Generating zephyr/mcuboot_primary.hex
    [274/280] Generating zephyr/mcuboot_primary_app.hex
    [275/280] Generating ../../zephyr/app_update.bin
    sign the payload
    [276/280] Generating ../../zephyr/dfu_application.zip
    [277/280] Generating ../../zephyr/app_signed.hex
    sign the payload
    [278/280] Generating ../../zephyr/app_test_update.hex
    sign the payload
    [279/280] Generating ../../zephyr/app_moved_test_update.hex
    [280/280] Generating zephyr/merged.hex
     *  Terminal will be reused by tasks, press any key to close it.

    The screenshot of the flash result.

    The log of the flash result.

     *  Executing task: nRF Connect: Build: peripheral_lbs_DFU_support_OTA/build (active) 
    
    Building peripheral_lbs_DFU_support_OTA
    west build --build-dir /mnt/hdd/nordic/code/peripheral_lbs_DFU_support_OTA/build /mnt/hdd/nordic/code/peripheral_lbs_DFU_support_OTA
    
    [0/4] Performing build step for 'mcuboot_subimage'
    ninja: no work to do.
     *  Terminal will be reused by tasks, press any key to close it. 
    
     *  Executing task: nRF Connect: Flash: peripheral_lbs_DFU_support_OTA/build (active) 
    
    Flashing build to nRF52840-DK
    west flash -d /mnt/hdd/nordic/code/peripheral_lbs_DFU_support_OTA/build --skip-rebuild -r nrfjprog --dev-id 683159654 --erase
    
    -- west flash: using runner nrfjprog
    -- runners.nrfjprog: mass erase requested
    -- runners.nrfjprog: Flashing file: /mnt/hdd/nordic/code/peripheral_lbs_DFU_support_OTA/build/zephyr/merged.hex
    [ #################### ]   0.282s | Erase file - Done erasing                                                          
    [ #################### ]   2.954s | Program file - Done programming                                                    
    [ #################### ]   2.897s | Verify file - Done verifying                                                       
    Enabling pin reset.
    Applying pin reset.
    -- runners.nrfjprog: Board with serial number 683159654 flashed successfully.
     *  Terminal will be reused by tasks, press any key to close it.

    Next is the log of the whole process.

    Device Manager, 2023-03-03
    Nordic_LBS (Device Manager)
    I	10:36:55.144	[e] Connected to FB:C7:5C:DB:A6:D2
    I	10:36:55.582	[e] Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms)
    I	10:36:55.664	[e] PHY updated (TX: LE 2M, RX: LE 2M)
    I	10:36:55.888	[e] Services discovered
    I	10:36:55.978	[e] Connection parameters updated (interval: 45.0ms, latency: 0, timeout: 5000ms)
    I	10:36:56.007	[e] MTU changed to: 252
    I	10:36:56.203	[e] Data written to descr. 00002902-0000-1000-8000-00805f9b34fb
    I	10:36:56.232	[e] Notifications enabled
    I	10:36:56.263	[e] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
    I	10:36:56.339	[e] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 01-00-00-06-00-00-FF-06-BF-62-72-63-08-FF
    I	10:36:56.365	[e] Wait for value changed complete
    I	10:36:56.397	[e] Received Header (Op: 1, Flags: 0, Len: 6, Group: 0, Seq: 255, Command: 6) CBOR {"rc":8}
    I	10:36:56.420	[e] PHY read (TX: LE 2M, RX: LE 2M)
    I	10:36:56.452	[e] Sending (10 bytes) Header (Op: 0, Flags: 0, Len: 2, Group: 1, Seq: 0, Command: 0) CBOR {}
    I	10:36:56.483	[e] Sending (10 bytes) Header (Op: 0, Flags: 0, Len: 2, Group: 0, Seq: 1, Command: 6) CBOR {}
    I	10:36:56.504	[e] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
    I	10:36:56.529	[e] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
    I	10:36:56.563	[e] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 01-00-00-86-00-01-00-00-BF-66-69-6D-61-67-65-73-9F-BF-64-73-6C-6F-74-00-67-76-65-72-73-69-6F-6E-65-30-2E-30-2E-30-64-68-61-73-68-58-20-F0-6D-0B-F1-08-DA-AC-73-70-49-5F-C5-0E-DC-4E-28-F7-DE-2D-51-E8-C4-E2-F0-A1-71-A8-EF-DB-09-A4-69-68-62-6F-6F-74-61-62-6C-65-F5-67-70-65-6E-64-69-6E-67-F4-69-63-6F-6E-66-69-72-6D-65-64-F5-66-61-63-74-69-76-65-F5-69-70-65-72-6D-61-6E-65-6E-74-F4-FF-FF-6B-73-70-6C-69-74-53-74-61-74-75-73-00-FF
    I	10:36:56.592	[e] Received Header (Op: 1, Flags: 0, Len: 134, Group: 1, Seq: 0, Command: 0) CBOR {"images":[{"slot":0,"version":"0.0.0","hash":"8G0L8QjarHNwSV/FDtxOKPfeLVHoxOLwoXGo79sJpGk=","bootable":true,"pending":false,"confirmed":true,"active":true,"permanent":false}],"splitStatus":0}
    I	10:36:56.654	[e] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 01-00-00-06-00-00-01-06-BF-62-72-63-08-FF
    I	10:36:56.675	[e] Received Header (Op: 1, Flags: 0, Len: 6, Group: 0, Seq: 1, Command: 6) CBOR {"rc":8}
    I	10:37:00.211	[e] Connection parameters updated (interval: 45.0ms, latency: 0, timeout: 420ms)
    V	10:37:43.277	[j] Starting DFU, mode: CONFIRM_ONLY
    I	10:37:43.485	[e] Sending (10 bytes) Header (Op: 0, Flags: 0, Len: 2, Group: 1, Seq: 2, Command: 0) CBOR {}
    I	10:37:43.519	[e] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
    I	10:37:43.592	[e] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 01-00-00-86-00-01-02-00-BF-66-69-6D-61-67-65-73-9F-BF-64-73-6C-6F-74-00-67-76-65-72-73-69-6F-6E-65-30-2E-30-2E-30-64-68-61-73-68-58-20-F0-6D-0B-F1-08-DA-AC-73-70-49-5F-C5-0E-DC-4E-28-F7-DE-2D-51-E8-C4-E2-F0-A1-71-A8-EF-DB-09-A4-69-68-62-6F-6F-74-61-62-6C-65-F5-67-70-65-6E-64-69-6E-67-F4-69-63-6F-6E-66-69-72-6D-65-64-F5-66-61-63-74-69-76-65-F5-69-70-65-72-6D-61-6E-65-6E-74-F4-FF-FF-6B-73-70-6C-69-74-53-74-61-74-75-73-00-FF
    I	10:37:43.617	[e] Received Header (Op: 1, Flags: 0, Len: 134, Group: 1, Seq: 2, Command: 0) CBOR {"images":[{"slot":0,"version":"0.0.0","hash":"8G0L8QjarHNwSV/FDtxOKPfeLVHoxOLwoXGo79sJpGk=","bootable":true,"pending":false,"confirmed":true,"active":true,"permanent":false}],"splitStatus":0}
    V	10:37:43.649	[k] Validation response: {"images":[{"slot":0,"version":"0.0.0","hash":"8G0L8QjarHNwSV/FDtxOKPfeLVHoxOLwoXGo79sJpGk=","bootable":true,"pending":false,"confirmed":true,"active":true,"permanent":false}],"splitStatus":0}
    V	10:37:43.672	[j] Moving from state VALIDATE to state UPLOAD
    I	10:37:43.707	Uploading firmware...
    I	10:38:05.851	[Uploader] Upload completed. 207572 bytes sent in 22145 ms with avg speed: 9.372889 kBytes/s
    I	10:38:05.882	Image (207572 bytes) sent in 21935 ms (avg speed: 9.463050 kB/s)
    V	10:38:05.900	[j] Moving from state UPLOAD to state CONFIRM
    I	10:38:05.924	[e] Sending (58 bytes) Header (Op: 2, Flags: 0, Len: 50, Group: 1, Seq: 174, Command: 0) CBOR {"confirm":true,"hash":"+YTSXkQ+7OVztjJYB4MVOlqDGe9rU6Rq9Vl8K3G6OnU="}
    I	10:38:05.952	[e] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
    I	10:38:05.977	[e] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 03-00-00-06-00-01-AE-00-BF-62-72-63-03-FF
    I	10:38:05.993	[e] Received Header (Op: 3, Flags: 0, Len: 6, Group: 1, Seq: 174, Command: 0) CBOR {"rc":3}
    E	10:38:06.020	Upgrade failed
    Mcu Mgr Error: IN_VALUE (3)
    	at j2.e$b.c(Unknown Source:24)
    	at k2.f.j(Unknown Source:10)
    	at k2.f.c(Unknown Source:0)
    	at k2.e.run(Unknown Source:4)
    	at android.os.Handler.handleCallback(Handler.java:883)
    	at android.os.Handler.dispatchMessage(Handler.java:100)
    	at android.os.Looper.loop(Looper.java:214)
    	at android.os.HandlerThread.run(HandlerThread.java:67)
    
    V	10:38:20.279	[j] Starting DFU, mode: CONFIRM_ONLY
    I	10:38:20.426	[e] Connection parameters updated (interval: 15.0ms, latency: 0, timeout: 5000ms)
    I	10:38:20.453	[e] Sending (10 bytes) Header (Op: 0, Flags: 0, Len: 2, Group: 1, Seq: 175, Command: 0) CBOR {}
    I	10:38:20.485	[e] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
    I	10:38:20.518	[e] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 01-00-00-F4-00-01-AF-00-BF-66-69-6D-61-67-65-73-9F-BF-64-73-6C-6F-74-00-67-76-65-72-73-69-6F-6E-65-30-2E-30-2E-30-64-68-61-73-68-58-20-F0-6D-0B-F1-08-DA-AC-73-70-49-5F-C5-0E-DC-4E-28-F7-DE-2D-51-E8-C4-E2-F0-A1-71-A8-EF-DB-09-A4-69-68-62-6F-6F-74-61-62-6C-65-F5-67-70-65-6E-64-69-6E-67-F4-69-63-6F-6E-66-69-72-6D-65-64-F5-66-61-63-74-69-76-65-F5-69-70-65-72-6D-61-6E-65-6E-74-F4-FF-BF-64-73-6C-6F-74-01-67-76-65-72-73-69-6F-6E-65-30-2E-30-2E-30-64-68-61-73-68-58-20-F9-84-D2-5E-44-3E-EC-E5-73-B6-32-58-07-83-15-3A-5A-83-19-EF-6B-53-A4-6A-F5-59-7C-2B-71-BA-3A-75-68-62-6F-6F-74-61-62-6C-65-F5-67-70-65-6E-64-69-6E-67-F4-69-63-6F-6E-66-69-72-6D-65-64-F4-66-61-63-74-69-76-65-F4-69-70-65-72-6D-61-6E-65-6E-74-F4-FF-FF-6B-73-70-6C-69-74-53-74-61-74-75
    I	10:38:20.545	[e] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 73-00-FF
    I	10:38:20.567	[e] Received Header (Op: 1, Flags: 0, Len: 244, Group: 1, Seq: 175, Command: 0) CBOR {"images":[{"slot":0,"version":"0.0.0","hash":"8G0L8QjarHNwSV/FDtxOKPfeLVHoxOLwoXGo79sJpGk=","bootable":true,"pending":false,"confirmed":true,"active":true,"permanent":false},{"slot":1,"version":"0.0.0","hash":"+YTSXkQ+7OVztjJYB4MVOlqDGe9rU6Rq9Vl8K3G6OnU=","bootable":true,"pending":false,"confirmed":false,"active":false,"permanent":false}],"splitStatus":0}
    V	10:38:20.601	[k] Validation response: {"images":[{"slot":0,"version":"0.0.0","hash":"8G0L8QjarHNwSV/FDtxOKPfeLVHoxOLwoXGo79sJpGk=","bootable":true,"pending":false,"confirmed":true,"active":true,"permanent":false},{"slot":1,"version":"0.0.0","hash":"+YTSXkQ+7OVztjJYB4MVOlqDGe9rU6Rq9Vl8K3G6OnU=","bootable":true,"pending":false,"confirmed":false,"active":false,"permanent":false}],"splitStatus":0}
    V	10:38:20.621	[j] Moving from state VALIDATE to state CONFIRM
    I	10:38:20.648	[e] Sending (58 bytes) Header (Op: 2, Flags: 0, Len: 50, Group: 1, Seq: 176, Command: 0) CBOR {"confirm":true,"hash":"+YTSXkQ+7OVztjJYB4MVOlqDGe9rU6Rq9Vl8K3G6OnU="}
    I	10:38:20.674	[e] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
    I	10:38:20.696	[e] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 03-00-00-06-00-01-B0-00-BF-62-72-63-03-FF
    I	10:38:20.726	[e] Received Header (Op: 3, Flags: 0, Len: 6, Group: 1, Seq: 176, Command: 0) CBOR {"rc":3}
    E	10:38:20.761	Upgrade failed
    Mcu Mgr Error: IN_VALUE (3)
    	at j2.e$b.c(Unknown Source:24)
    	at k2.f.j(Unknown Source:10)
    	at k2.f.c(Unknown Source:0)
    	at k2.e.run(Unknown Source:4)
    	at android.os.Handler.handleCallback(Handler.java:883)
    	at android.os.Handler.dispatchMessage(Handler.java:100)
    	at android.os.Looper.loop(Looper.java:214)
    	at android.os.HandlerThread.run(HandlerThread.java:67)
    
    I	10:38:52.958	[e] Sending (10 bytes) Header (Op: 0, Flags: 0, Len: 2, Group: 1, Seq: 177, Command: 0) CBOR {}
    I	10:38:53.037	[e] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
    I	10:38:53.068	[e] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 01-00-00-F4-00-01-B1-00-BF-66-69-6D-61-67-65-73-9F-BF-64-73-6C-6F-74-00-67-76-65-72-73-69-6F-6E-65-30-2E-30-2E-30-64-68-61-73-68-58-20-F0-6D-0B-F1-08-DA-AC-73-70-49-5F-C5-0E-DC-4E-28-F7-DE-2D-51-E8-C4-E2-F0-A1-71-A8-EF-DB-09-A4-69-68-62-6F-6F-74-61-62-6C-65-F5-67-70-65-6E-64-69-6E-67-F4-69-63-6F-6E-66-69-72-6D-65-64-F5-66-61-63-74-69-76-65-F5-69-70-65-72-6D-61-6E-65-6E-74-F4-FF-BF-64-73-6C-6F-74-01-67-76-65-72-73-69-6F-6E-65-30-2E-30-2E-30-64-68-61-73-68-58-20-F9-84-D2-5E-44-3E-EC-E5-73-B6-32-58-07-83-15-3A-5A-83-19-EF-6B-53-A4-6A-F5-59-7C-2B-71-BA-3A-75-68-62-6F-6F-74-61-62-6C-65-F5-67-70-65-6E-64-69-6E-67-F4-69-63-6F-6E-66-69-72-6D-65-64-F4-66-61-63-74-69-76-65-F4-69-70-65-72-6D-61-6E-65-6E-74-F4-FF-FF-6B-73-70-6C-69-74-53-74-61-74-75
    I	10:38:53.094	[e] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 73-00-FF
    I	10:38:53.122	[e] Received Header (Op: 1, Flags: 0, Len: 244, Group: 1, Seq: 177, Command: 0) CBOR {"images":[{"slot":0,"version":"0.0.0","hash":"8G0L8QjarHNwSV/FDtxOKPfeLVHoxOLwoXGo79sJpGk=","bootable":true,"pending":false,"confirmed":true,"active":true,"permanent":false},{"slot":1,"version":"0.0.0","hash":"+YTSXkQ+7OVztjJYB4MVOlqDGe9rU6Rq9Vl8K3G6OnU=","bootable":true,"pending":false,"confirmed":false,"active":false,"permanent":false}],"splitStatus":0}
    I	10:39:05.676	[e] Sending (58 bytes) Header (Op: 2, Flags: 0, Len: 50, Group: 1, Seq: 178, Command: 0) CBOR {"confirm":true,"hash":"+YTSXkQ+7OVztjJYB4MVOlqDGe9rU6Rq9Vl8K3G6OnU="}
    I	10:39:05.732	[e] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
    I	10:39:05.762	[e] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 03-00-00-06-00-01-B2-00-BF-62-72-63-03-FF
    I	10:39:05.791	[e] Received Header (Op: 3, Flags: 0, Len: 6, Group: 1, Seq: 178, Command: 0) CBOR {"rc":3}
    

    *** Booting Zephyr OS build v3.2.99-ncs1 ***
    I: Starting bootloader
    I: Primary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Secondary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Boot source: none
    I: Swap type: none
    I: Bootloader chainload address offset: 0xc000
    I: Jumping to the first image slot*** Booting Zephyr OS build v3.2.99-ncs1 ***
    Starting Bluetooth Peripheral LBS example
    build time: Mar  3 2023 10:33:36
    I: 2 Sectors of 4096 bytes
    I: alloc wra: 0, fe8
    I: data wra: 0, 0
    I: SoftDevice Controller build revision: 
    I: 6d 90 41 2a 38 e8 ad 17 |m.A*8...
    I: 29 a5 03 38 39 27 d7 85 |)..89'..
    I: 1f 85 d8 e1             |....    
    I: No ID address. App must call settings_load()
    Bluetooth initialized
    Advertising successfully started with Image
    Connected
    I: Swap type: none
    I: Swap type: none
    I: Swap type: none
    I: Swap type: none
    I: Swap type: none
    I: Swap type: none
    I: Swap type: none
    I: Swap type: none
    

    Is it possible that my version of nRF52840DK is too old?

    My nRF52840DK version is V0.9.0, and its picture is as follows:

    Thanks.

    Best Regards,

    Kevin

  • Hello,

    Please see that you are not trying with nRF52840DK your hardware is a preview development kit. PDKs should only be used for evaluation purposes, and I would recommend getting a DK instead.  PDK is not officially supported by our new nRF connect SDK. 

    As a last try use west command line for building and flashing the application and see whether the same is happening.

    Kind Regards,

    Abhijith

  • Hi Abhijith,

    Ok, I'll figure out how to get an nRF52840DK. After that I will try the same procedure again and let you know the result.

    I have tried the method you provided. The result is the same.

    All the commands I used and the results are as follows.

    The build command

    west build --build-dir /mnt/hdd/nordic/code/ble_dfu_peripheral_lbs/build /mnt/hdd/nordic/code/ble_dfu_peripheral_lbs --pristine --board nrf52840dk_nrf52840 -- -DNCS_TOOLCHAIN_VERSION:STRING="NONE" -DBOARD_ROOT:STRING="/mnt/hdd/nordic/code/ble_dfu_peripheral_lbs" -DCONF_FILE:STRING="/mnt/hdd/nordic/code/ble_dfu_peripheral_lbs/prj.conf"

    The build result

    -- west build: making build dir /mnt/hdd/nordic/code/ble_dfu_peripheral_lbs/build pristine
    -- west build: generating a build system
    Loading Zephyr default modules (Zephyr base).
    -- Application: /mnt/hdd/nordic/code/ble_dfu_peripheral_lbs
    -- Found Python3: /mnt/hdd/nordic/toolchains/v2.2.0/usr/local/bin/python3.8 (found suitable exact version "3.8.2") found components: Interpreter 
    -- Cache files will be written to: /home/kevin/.cache/zephyr
    -- Zephyr version: 3.2.99 (/mnt/hdd/nordic/v2.2.0/zephyr)
    -- Found west (found suitable version "0.14.0", minimum required is "0.7.1")
    -- Board: nrf52840dk_nrf52840
    -- Found host-tools: zephyr 0.15.1 (/mnt/hdd/nordic/toolchains/v2.2.0/opt/zephyr-sdk)
    -- Found toolchain: zephyr 0.15.1 (/mnt/hdd/nordic/toolchains/v2.2.0/opt/zephyr-sdk)
    -- Found Dtc: /mnt/hdd/nordic/toolchains/v2.2.0/usr/bin/dtc (found suitable version "1.4.7", minimum required is "1.4.6") 
    -- Found BOARD.dts: /mnt/hdd/nordic/code/ble_dfu_peripheral_lbs/boards/arm/nrf52840dk_nrf52840/nrf52840dk_nrf52840.dts
    -- Generated zephyr.dts: /mnt/hdd/nordic/code/ble_dfu_peripheral_lbs/build/zephyr/zephyr.dts
    -- Generated devicetree_generated.h: /mnt/hdd/nordic/code/ble_dfu_peripheral_lbs/build/zephyr/include/generated/devicetree_generated.h
    -- Including generated dts.cmake file: /mnt/hdd/nordic/code/ble_dfu_peripheral_lbs/build/zephyr/dts.cmake
    Parsing /mnt/hdd/nordic/code/ble_dfu_peripheral_lbs/Kconfig
    Loaded configuration '/mnt/hdd/nordic/code/ble_dfu_peripheral_lbs/boards/arm/nrf52840dk_nrf52840/nrf52840dk_nrf52840_defconfig'
    Merged configuration '/mnt/hdd/nordic/code/ble_dfu_peripheral_lbs/prj.conf'
    Configuration saved to '/mnt/hdd/nordic/code/ble_dfu_peripheral_lbs/build/zephyr/.config'
    Kconfig header saved to '/mnt/hdd/nordic/code/ble_dfu_peripheral_lbs/build/zephyr/include/generated/autoconf.h'
    
    warning: MCUMGR_CMD_STAT_MGMT (defined at subsys/mgmt/mcumgr/lib/cmd/stat_mgmt/Kconfig:5) was
    assigned the value 'y' but got the value 'n'. Check these unsatisfied dependencies: STATS (=n). See
    http://docs.zephyrproject.org/latest/kconfig.html#CONFIG_MCUMGR_CMD_STAT_MGMT and/or look up
    MCUMGR_CMD_STAT_MGMT in the menuconfig/guiconfig interface. The Application Development Primer,
    Setting Configuration Values, and Kconfig - Tips and Best Practices sections of the manual might be
    helpful too.
    
    -- The C compiler identification is GNU 12.1.0
    -- The CXX compiler identification is GNU 12.1.0
    -- The ASM compiler identification is GNU
    -- Found assembler: /mnt/hdd/nordic/toolchains/v2.2.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc
    -- Found Python3: /mnt/hdd/nordic/toolchains/v2.2.0/usr/local/bin/python3.8 (found version "3.8.2") found components: Interpreter 
    
    === child image mcuboot -  begin ===
    loading initial cache file /mnt/hdd/nordic/code/ble_dfu_peripheral_lbs/build/mcuboot/child_image_preload.cmake
    Loading Zephyr default modules (Zephyr base).
    -- Application: /mnt/hdd/nordic/v2.2.0/bootloader/mcuboot/boot/zephyr
    -- Found Python3: /mnt/hdd/nordic/toolchains/v2.2.0/usr/local/bin/python3.8 (found suitable exact version "3.8.2") found components: Interpreter 
    -- Cache files will be written to: /home/kevin/.cache/zephyr
    -- Zephyr version: 3.2.99 (/mnt/hdd/nordic/v2.2.0/zephyr)
    -- Found west (found suitable version "0.14.0", minimum required is "0.7.1")
    -- Board: nrf52840dk_nrf52840
    -- Found host-tools: zephyr 0.15.1 (/mnt/hdd/nordic/toolchains/v2.2.0/opt/zephyr-sdk)
    -- Found toolchain: zephyr 0.15.1 (/mnt/hdd/nordic/toolchains/v2.2.0/opt/zephyr-sdk)
    -- Found Dtc: /mnt/hdd/nordic/toolchains/v2.2.0/usr/bin/dtc (found suitable version "1.4.7", minimum required is "1.4.6") 
    -- Found BOARD.dts: /mnt/hdd/nordic/code/ble_dfu_peripheral_lbs/boards/arm/nrf52840dk_nrf52840/nrf52840dk_nrf52840.dts
    -- Found devicetree overlay: /mnt/hdd/nordic/v2.2.0/nrf/modules/mcuboot/usb.overlay
    -- Found devicetree overlay: /mnt/hdd/nordic/v2.2.0/bootloader/mcuboot/boot/zephyr/dts.overlay
    -- Generated zephyr.dts: /mnt/hdd/nordic/code/ble_dfu_peripheral_lbs/build/mcuboot/zephyr/zephyr.dts
    -- Generated devicetree_generated.h: /mnt/hdd/nordic/code/ble_dfu_peripheral_lbs/build/mcuboot/zephyr/include/generated/devicetree_generated.h
    -- Including generated dts.cmake file: /mnt/hdd/nordic/code/ble_dfu_peripheral_lbs/build/mcuboot/zephyr/dts.cmake
    Parsing /mnt/hdd/nordic/v2.2.0/bootloader/mcuboot/boot/zephyr/Kconfig
    Loaded configuration '/mnt/hdd/nordic/code/ble_dfu_peripheral_lbs/boards/arm/nrf52840dk_nrf52840/nrf52840dk_nrf52840_defconfig'
    Merged configuration '/mnt/hdd/nordic/v2.2.0/bootloader/mcuboot/boot/zephyr/prj.conf'
    Merged configuration '/mnt/hdd/nordic/v2.2.0/bootloader/mcuboot/boot/zephyr/boards/nrf52840dk_nrf52840.conf'
    Merged configuration '/mnt/hdd/nordic/v2.2.0/nrf/subsys/partition_manager/partition_manager_enabled.conf'
    Merged configuration '/mnt/hdd/nordic/code/ble_dfu_peripheral_lbs/build/mcuboot/zephyr/misc/generated/extra_kconfig_options.conf'
    Configuration saved to '/mnt/hdd/nordic/code/ble_dfu_peripheral_lbs/build/mcuboot/zephyr/.config'
    Kconfig header saved to '/mnt/hdd/nordic/code/ble_dfu_peripheral_lbs/build/mcuboot/zephyr/include/generated/autoconf.h'
    -- The C compiler identification is GNU 12.1.0
    -- The CXX compiler identification is GNU 12.1.0
    -- The ASM compiler identification is GNU
    -- Found assembler: /mnt/hdd/nordic/toolchains/v2.2.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc
    CMake Warning at /mnt/hdd/nordic/v2.2.0/nrf/lib/flash_patch/CMakeLists.txt:8 (message):
      
    
            ----------------------------------------------------------
            --- WARNING: To maintain the integrity of secure boot, ---
            --- enable CONFIG_DISABLE_FLASH_PATCH in production.   ---
            ----------------------------------------------------------
    
    
    MCUBoot bootloader key file: /mnt/hdd/nordic/v2.2.0/bootloader/mcuboot/root-ec-p256.pem
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /mnt/hdd/nordic/code/ble_dfu_peripheral_lbs/build/mcuboot
    === child image mcuboot -  end ===
    
    CMake Warning at /mnt/hdd/nordic/v2.2.0/nrf/modules/mcuboot/CMakeLists.txt:286 (message):
      
    
              ---------------------------------------------------------
              --- WARNING: Using default MCUBoot key, it should not ---
              --- be used for production.                           ---
              ---------------------------------------------------------
              
    
    
    
    CMake Warning at /mnt/hdd/nordic/v2.2.0/zephyr/CMakeLists.txt:1833 (message):
      __ASSERT() statements are globally ENABLED
    
    
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /mnt/hdd/nordic/code/ble_dfu_peripheral_lbs/build
    -- west build: building application
    [1/312] Preparing syscall dependency handling
    
    [2/312] Generating include/generated/version.h
    -- Zephyr version: 3.2.99 (/mnt/hdd/nordic/v2.2.0/zephyr), build: v3.2.99-ncs1
    [8/312] Performing build step for 'mcuboot_subimage'
    [1/190] Preparing syscall dependency handling
    
    [2/190] Generating include/generated/version.h
    -- Zephyr version: 3.2.99 (/mnt/hdd/nordic/v2.2.0/zephyr), build: v3.2.99-ncs1
    [180/190] Linking C executable zephyr/zephyr_pre0.elf
    
    [184/190] Linking C executable zephyr/zephyr_pre1.elf
    
    [190/190] Linking C executable zephyr/zephyr.elf
    Memory region         Used Size  Region Size  %age Used
               FLASH:       33708 B        48 KB     68.58%
                 RAM:       17792 B       256 KB      6.79%
            IDT_LIST:          0 GB         2 KB      0.00%
    [291/312] Linking C executable zephyr/zephyr_pre0.elf
    
    [298/312] Linking C executable zephyr/zephyr_pre1.elf
    
    [304/312] Linking C executable zephyr/zephyr.elf
    Memory region         Used Size  Region Size  %age Used
               FLASH:      255520 B     482816 B     52.92%
                 RAM:       67884 B       256 KB     25.90%
            IDT_LIST:          0 GB         2 KB      0.00%
    [307/312] Generating ../../zephyr/app_update.bin
    sign the payload
    [309/312] Generating ../../zephyr/app_signed.hex
    sign the payload
    [310/312] Generating ../../zephyr/app_test_update.hex
    sign the payload
    [312/312] Generating zephyr/merged.hex

    The flash command

    west flash --erase

    The flash result

    -- west flash: rebuilding
    [0/4] Performing build step for 'mcuboot_subimage'
    ninja: no work to do.
    -- west flash: using runner nrfjprog
    -- runners.nrfjprog: mass erase requested
    Using board 683159654
    -- runners.nrfjprog: Flashing file: /mnt/hdd/nordic/code/ble_dfu_peripheral_lbs/build/zephyr/merged.hex
    [ #################### ]   0.286s | Erase file - Done erasing                                                          
    [ #################### ]   3.548s | Program file - Done programming                                                    
    [ #################### ]   3.483s | Verify file - Done verifying                                                       
    Enabling pin reset.
    Applying pin reset.
    -- runners.nrfjprog: Board with serial number 683159654 flashed successfully.

    Finally, the screenshot of the DFU result via nRF Connect for Mobile (iOS) is below. 

    Thank you for your help.

    Best Regards,

    Kevin

  • Hello,

    Thanks for sharing the details. I strongly suggest to try with our DK and I don't have a PDK right now for testing this. Please try with DK and let me know if the same is happening.

    Kind Regards,

    Abhijith

  • Hi,

    I got a real nRF52840DK and tried the same procedure. The result is the same. 

    But after I thought about it carefully, the content of the test code file you gave earlier is not much different from mine, and there is no problem with the DFU test method I used, so the remaining part of the difference is the computer that builds the code.

    After changing to a new computer and testing the same steps, the DFU function is successful, and the preview-DK board can also use the DFU function normally. I am not sure if the path of the original computer to install the SDK is not the default path causing this problem, but after reinstalling the SDK on the original computer with the default path, DFU is also normal.

    Please refer to the pictures and attached files below for the results.

    *** Booting Zephyr OS build v3.2.99-ncs1 ***
    I: Starting bootloader
    I: Primary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Secondary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Boot source: none
    I: Swap type: none
    I: Bootloader chainload address offset: 0xc000
    I: Jumping to the first image slot*** Booting Zephyr OS build v3.2.99-ncs1 ***
    Starting Bluetooth Peripheral LBS example
    build time: Mar 14 2023 16:02:42
    
    
    uart:~$ I: 2 Sectors of 4096 bytes
    I: alloc wra: 0, fe8
    I: data wra: 0, 0
    I: SoftDevice Controller build revision: 
    I: 6d 90 41 2a 38 e8 ad 17 |m.A*8...
    I: 29 a5 03 38 39 27 d7 85 |)..89'..
    I: 1f 85 d8 e1             |....    
    I: No ID address. App must call settings_load()
    Bluetooth initialized
    Advertising successfully started
    Connected
    W: Ignoring data for unknown channel ID 0x003a
    I: Swap type: none
    I: Swap type: none
    I: Swap type: none
    I: Swap type: none
    I: Swap type: none
    D: writing magic; fa_id=5 off=0x75ff0 (0xf7ff0)
    D: writing image_ok; fa_id=5 off=0x75fe8 (0xf7fe8)
    D: writing swap_info; fa_id=5 off=0x75fd8 (0xf7fd8), swap_type=0x3 image_num=0x0
    I: Swap type: perm
    I: Swap type: perm
    *** Booting Zephyr OS build v3.2.99-ncs1 ***
    I: Starting bootloader
    I: Primary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Secondary image: magic=good, swap_type=0x3, copy_done=0x3, image_ok=0x1
    I: Boot source: none
    I: Swap type: perm
    I: Starting swap using move algorithm.
    I: Bootloader chainload address offset: 0xc000
    I: Jumping to the first image slot*** Booting Zephyr OS build v3.2.99-ncs1 ***
    Starting Bluetooth Peripheral LBS example
    build time: Mar 14 2023 15:55:08
    I: 2 Sectors of 4096 bytes
    I: alloc wra: 0, fd0
    I: data wra: 0, 1c
    I: SoftDevice Controller build revision: 
    I: 6d 90 41 2a 38 e8 ad 17 |m.A*8...
    I: 29 a5 03 38 39 27 d7 85 |)..89'..
    I: 1f 85 d8 e1             |....    
    
    
    I: No ID address. App must call settings_load()
    Bluetooth initialized
    Advertising successfully started
    uart:~$ Connected
    W: Ignoring data for unknown channel ID 0x003a
    I: Swap type: none
    I: Swap type: none
    

    nRF Connect for Mobile (iOS)

    Device Manager (iOS)

    Incidentally, because of our project design, the nRF52840 chip plays a central role connecting a peripheral device. However, if the DFU function is to be used, the chip must play the role of a peripheral. Can the chip play the role of the central and peripheral at the same time? Is there any method or information that can be used for reference?

    According to the above question, do I need to create a new thread?

     

    Thank you for all your help.

    Best Regards,

    Kevin

Related