The state status is Unknown(147) after FOTA DFU on 54L15

Hello there,

Working on bringing up the FOTA feature on the 54L15. I began with the LBS example.  I was using the Nordic "Device Manage" to push the FOTA build. 

The state flow changes as:  "Uploading"  /  "Resetting"  /  "Confirming" / "UNKNOWN(147)".  The build has been uploaded successfully, but this "unknown" state bothers me. 

Then I used "nRF Connect" to build the connection and run the same DFU for the progress log (attached below).  I wonder if this "unknown state" is something I need concern. 

Thank you in advance. 

nRF Connect, 2025-02-20
Nordic_LBS (EA:0B:16:96:F4:6D)
V 10:12:51.625 [McuMgr] Connecting...
D 10:12:51.629 [McuMgr] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, LE 1M)
D 10:12:51.659 [McuMgr] [Callback] Connection state changed with status: 0 and new state: 2 (CONNECTED)
I 10:12:51.661 [McuMgr] Connected to EA:0B:16:96:F4:6D
D 10:12:51.662 [McuMgr] wait(300)
V 10:12:51.965 [McuMgr] Discovering services...
D 10:12:51.975 [McuMgr] gatt.discoverServices()
I 10:12:51.999 [McuMgr] Services discovered
V 10:12:52.003 [McuMgr] Primary service found
V 10:12:52.007 [McuMgr] Requesting new MTU...
D 10:12:52.010 [McuMgr] gatt.requestMtu(498)
I 10:12:52.090 [McuMgr] MTU changed to: 498
D 10:12:52.100 [McuMgr] gatt.setCharacteristicNotification(da2e7828-fbce-4e01-ae9e-261174997c48, true)
V 10:12:52.103 [McuMgr] Enabling notifications for da2e7828-fbce-4e01-ae9e-261174997c48
D 10:12:52.105 [McuMgr] gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x01-00)
I 10:12:52.208 [McuMgr] Data written to descr. 00002902-0000-1000-8000-00805f9b34fb
V 10:12:52.219 [McuMgr] Waiting for value change...
V 10:12:52.223 [McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
D 10:12:52.225 [McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x000000010000FF06A0, WRITE COMMAND)
I 10:12:52.234 [McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I 10:12:52.296 [McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 01-00-00-19-00-00-FF-06-BF-68-62-75-66-5F-73-69-7A-65-19-09-AB-69-62-75-66-5F-63-6F-75-6E-74-04-FF
I 10:12:52.298 [McuMgr] Wait for value changed complete
A 10:12:52.300 [McuMgr] Received Header (Version: 0, Op: 1, Flags: 0, Len: 25, Group: 0, Seq: 255, Command: 6) CBOR {"buf_size":2475,"buf_count":4}
I 10:12:52.309 [McuMgr] SMP reassembly supported with buffer size: 2475 bytes and count: 4
V 10:12:52.311 [McuMgr] Requesting connection priority: HIGH (11.25–15ms, 0, 5s)...
D 10:12:52.312 [McuMgr] gatt.requestConnectionPriority(HIGH)
A 10:12:52.328 [McuMgr] Sending (9 bytes) Header (Version: 1, Op: 0, Flags: 0, Len: 1, Group: 0, Seq: 0, Command: 8) CBOR {}
V 10:12:52.516 [McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
D 10:12:52.530 [McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x0800000100000008A0, WRITE COMMAND)
I 10:12:52.553 [McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I 10:12:52.603 [McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 09-00-00-15-00-00-00-08-BF-6A-62-6F-6F-74-6C-6F-61-64-65-72-67-4D-43-55-62-6F-6F-74-FF
I 10:12:52.604 Connection parameters updated (interval: 11.25ms, latency: 0, timeout: 420ms)
I 10:12:52.609 [McuMgr] Connection parameters updated (interval: 11.25ms, latency: 0, timeout: 420ms)
A 10:12:52.612 [McuMgr] Received Header (Version: 1, Op: 1, Flags: 0, Len: 21, Group: 0, Seq: 0, Command: 8) CBOR {"bootloader":"MCUboot"}
A 10:12:52.619 [McuMgr] Sending (20 bytes) Header (Version: 1, Op: 0, Flags: 0, Len: 12, Group: 0, Seq: 1, Command: 8) CBOR {"query":"mode"}
V 10:12:52.623 [McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
D 10:12:52.645 [McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x0800000C00000108A1657175657279646D6F6465, WRITE COMMAND)
I 10:12:52.654 [McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I 10:12:52.695 [McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 09-00-00-08-00-00-01-08-BF-64-6D-6F-64-65-03-FF
A 10:12:52.700 [McuMgr] Received Header (Version: 1, Op: 1, Flags: 0, Len: 8, Group: 0, Seq: 1, Command: 8) CBOR {"mode":3}
I 10:12:52.718 Connection parameters updated (interval: 15.0ms, latency: 0, timeout: 5000ms)
A 10:12:52.724 [McuMgr] Sending (9 bytes) Header (Version: 1, Op: 0, Flags: 0, Len: 1, Group: 1, Seq: 2, Command: 0) CBOR {}
V 10:12:52.731 [McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
D 10:12:52.735 [McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x0800000100010200A0, WRITE COMMAND)
I 10:12:52.742 [McuMgr] Connection parameters updated (interval: 15.0ms, latency: 0, timeout: 5000ms)
I 10:12:52.748 [McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I 10:12:52.794 [McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 09-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-32-2E-39-2E-30-64-68-61-73-68-58-20-17-CB-1E-84-51-5E-24-82-5C-1A-FB-A8-42-82-50-16-25-2A-65-D7-A1-C8-6F-8F-AD-C5-74-1F-F3-EE-CF-77-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
A 10:12:52.798 [McuMgr] Received Header (Version: 1, Op: 1, Flags: 0, Len: 134, Group: 1, Seq: 2, Command: 0) CBOR {"images":[{"slot":0,"version":"2.9.0","hash":"F8sehFFeJIJcGvuoQoJQFiUqZdehyG+PrcV0H/Puz3c=","bootable":true,"pending":false,"confirmed":true,"active":true,"permanent":false}],"splitStatus":0}
V 10:12:52.822 [McuMgr] Uploading firmware...
A 10:12:56.735 [McuMgr] 223448 bytes sent in 3802 ms (58.77 kB/s)
V 10:12:56.802 [McuMgr] New state: TEST
A 10:12:56.814 [McuMgr] Sending (57 bytes) Header (Version: 1, Op: 2, Flags: 0, Len: 49, Group: 1, Seq: 97, Command: 0) CBOR {"confirm":false,"hash":"HzzGrL14Rm51milVEjNuA/2+Fyci1kDIK4VYA/trUQM="}
V 10:12:56.819 [McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
D 10:12:56.848 [McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x0A00003100016100A267636F6E6669726DF4646861736858201F3CC6ACBD78466E759A295512336E03FDBE172722D640C82B855803FB6B5103, WRITE COMMAND)
I 10:12:56.868 [McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I 10:12:56.894 [McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 0B-00-00-F4-00-01-61-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-32-2E-39-2E-30-64-68-61-73-68-58-20-17-CB-1E-84-51-5E-24-82-5C-1A-FB-A8-42-82-50-16-25-2A-65-D7-A1-C8-6F-8F-AD-C5-74-1F-F3-EE-CF-77-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-32-2E-39-2E-30-64-68-61-73-68-58-20-1F-3C-C6-AC-BD-78-46-6E-75-9A-29-55-12-33-6E-03-FD-BE-17-27-22-D6-40-C8-2B-85-58-03-FB-6B-51-03-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-73-00-FF
A 10:12:56.903 [McuMgr] Received Header (Version: 1, Op: 3, Flags: 0, Len: 244, Group: 1, Seq: 97, Command: 0) CBOR {"images":[{"slot":0,"version":"2.9.0","hash":"F8sehFFeJIJcGvuoQoJQFiUqZdehyG+PrcV0H/Puz3c=","bootable":true,"pending":false,"confirmed":true,"active":true,"permanent":false},{"slot":1,"version":"2.9.0","hash":"HzzGrL14Rm51milVEjNuA/2+Fyci1kDIK4VYA/trUQM=","bootable":true,"pending":true,"confirmed":false,"active":false,"permanent":false}],"splitStatus":0}
V 10:12:56.920 [McuMgr] New state: RESET
A 10:12:56.943 [McuMgr] Sending (9 bytes) Header (Version: 1, Op: 2, Flags: 0, Len: 1, Group: 0, Seq: 98, Command: 5) CBOR {}
V 10:12:56.949 [McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
D 10:12:56.952 [McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x0A00000100006205A0, WRITE COMMAND)
I 10:12:56.959 [McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I 10:12:56.999 [McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 0B-00-00-02-00-00-62-05-BF-FF
A 10:12:57.005 [McuMgr] Received Header (Version: 1, Op: 3, Flags: 0, Len: 2, Group: 0, Seq: 98, Command: 5) CBOR {}
D 10:13:02.283 [Server callback] Connection state changed with status: 0 and new state: DISCONNECTED (0)
I 10:13:02.283 [Server] Device disconnected
D 10:13:02.294 [Callback] Connection state changed with status: 8 and new state: DISCONNECTED (0)
E 10:13:02.294 Error 8 (0x8): GATT CONN TIMEOUT
I 10:13:02.294 Disconnected
D 10:13:02.321 [McuMgr] [Callback] Connection state changed with status: 8 and new state: 0 (DISCONNECTED)
W 10:13:02.324 [McuMgr] Error: (0x8): GATT CONN TIMEOUT
I 10:13:02.326 [McuMgr] Disconnected
D 10:13:02.330 [McuMgr] gatt.close()
D 10:13:02.333 [Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED
V 10:13:07.025 [McuMgr] Connecting...
D 10:13:07.037 [McuMgr] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, LE 1M)
V 10:13:07.052 [McuMgr] New state: CONFIRM
D 10:13:37.110 [Server callback] Connection state changed with status: 0 and new state: DISCONNECTED (0)
I 10:13:37.110 [Server] Device disconnected
D 10:13:37.115 [McuMgr] [Callback] Connection state changed with status: 147 and new state: 0 (DISCONNECTED)
W 10:13:37.126 [McuMgr] Error: (0x93): UNKNOWN (147)
W 10:13:37.130 [McuMgr] Connection attempt timed out
D 10:13:37.136 [McuMgr] gatt.close()
D 10:13:37.146 gatt.close()
D 10:13:37.148 wait(200)
V 10:13:37.350 Connecting to EA:0B:16:96:F4:6D...
D 10:13:37.351 gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
D 10:13:59.616 [Server callback] Connection state changed with status: 0 and new state: CONNECTED (2)
I 10:13:59.617 [Server] Device with address EA:0B:16:96:F4:6D connected
D 10:13:59.643 [Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
I 10:13:59.643 Connected to EA:0B:16:96:F4:6D
V 10:13:59.644 Discovering services...
D 10:13:59.644 gatt.discoverServices()
D 10:13:59.649 [Callback] Services discovered with status: 0
I 10:13:59.649 Services discovered
V 10:13:59.652 Generic Attribute (0x1801)
- Service Changed [I] (0x2A05)
   Client Characteristic Configuration (0x2902)
- Client Supported Features [R W] (0x2B29)
- Database Hash [R] (0x2B2A)
Generic Access (0x1800)
- Device Name [R] (0x2A00)
- Appearance [R] (0x2A01)
- Peripheral Preferred Connection Parameters [R] (0x2A04)
Nordic LED Button Service (00001523-1212-efde-1523-785feabcd123)
- Button [N R] (00001524-1212-efde-1523-785feabcd123)
   Client Characteristic Configuration (0x2902)
- LED [W] (00001525-1212-efde-1523-785feabcd123)
SMP Service (8d53dc1d-1db7-4cd3-868b-8a527460aa84)
- SMP Characteristic [N WNR] (da2e7828-fbce-4e01-ae9e-261174997c48)
   Client Characteristic Configuration (0x2902)
D 10:13:59.653 gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true)
D 10:13:59.654 gatt.setCharacteristicNotification(00001524-1212-efde-1523-785feabcd123, true)
I 10:14:00.016 [Server] PHY updated (TX: LE 2M, RX: LE 2M)
I 10:14:00.016 PHY updated (TX: LE 2M, RX: LE 2M)
D 10:14:00.127 [Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED

Parents
  • Hello,

    I just tried the sample from the exercise, and I observed a similar behavior, like an unknown state in the Device Manager app. Though the app threw this error, my DFU process still worked.

    I also tried the nRF Connect app using a Google Pixel 7 (Android 15) and didn't encounter any issues.

    Yes, that is the correct method to collect logs from the nRF Connect app, but the logs I mentioned refer to the nRF device (nRF54L15 in this case) to check if anything is going wrong there.

    I will inquire internally about the error message from the Device Manager app.

    Kind Regards,

    Abhijith

  • Thank you very much for the reply!

    After you saw the DFU sucess, did you reset the board and double check the build?

    My situation is that the DFU does work before the resetting.  Once resetting, it rolled back to the old build.  

    Thank you very much!,

    Haizhou

Reply Children
Related