OTA(BLE FOTA)

The MCU is NRF54L10, the SDK is NCS2.9.1, and the firmware is updated using MCUboot update mode.

Configuration as follows:

# sysbuild.conf

SB_CONFIG_BOOTLOADER_MCUBOOT=y

# prj.conf

CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU=y

When updating firmware using the nRF Connect Device Manager mobile app, I encountered the following issues:
1. After the update, sometimes some functions of my device are abnormal, while others are normal. A reset is required for all functions to work correctly (this problem doesn't occur every time after an update, it happens occasionally). I would like to know the reason for this.
2. After my device is flashed with firmware via J-Link, the first time it connects to the phone and I try to update the firmware using nRF Connect Device Manager, the update fails to start. After a few seconds, the phone displays a "connection timed out" message, requiring me to disconnect. After reconnecting to the phone, the firmware update can begin. It seems that after flashing firmware via J-Link, a connection to the phone is required to complete pairing information exchange before subsequent connections can initiate firmware updates. However, I don't have a pairing function set up in my software. What could be the reason for this?(This problem can be reproduced 100%)

  • Hello,

    1. After the update, sometimes some functions of my device are abnormal, while others are normal. A reset is required for all functions to work correctly (this problem doesn't occur every time after an update, it happens occasionally). I would like to know the reason for this.

    Could you share some more details about this? For example, what exactly is not working after the update?

    Do you have any logs that you can share here? It would be helpful to enable the bootloader logs and check whether they provide any information about the issue you are observing.

    After my device is flashed with firmware via J-Link, the first time it connects to the phone and I try to update the firmware using nRF Connect Device Manager, the update fails to start. After a few seconds, the phone displays a "connection timed out" message, requiring me to disconnect. After reconnecting to the phone, the firmware update can begin. It seems that after flashing firmware via J-Link, a connection to the phone is required to complete pairing information exchange before subsequent connections can initiate firmware updates. However, I don't have a pairing function set up in my software. What could be the reason for this?(This problem can be reproduced 100%)

    Have you also checked the logs from the mobile application? This could potentially be related to the phone-side GATT cache. Based on the description, it does not immediately appear to be an issue related to the DFU/bootloader.

    For both issues, it would be helpful to collect logs from the device as well as from the mobile application and share them here.

    I would like to point out that MCUboot support for the nRF54L10 in NCS v2.9.1 is in an experimental state. If possible, it is recommended to update to NCS v3.1.0 or later

    See the section software maturity categories.

    Kind Regards,

    Abhijith

  •    I'm using the NRF Connect Device Manager app to connect to my device. I'm not sure where to find the logs, but as you can see in the screenshot, the device management information was clearly faulty the first time I connected; it couldn't recognize the bootloader name and bootloader mode.

    If I disconnect the BLE connection and then reconnect, the bootloader name and bootloader mode can be recognized, as shown in the image below. What could be the reason that the bootloader name and bootloader mode were not recognized the first time?

  • Hello,

    Please refer to this sample exercise where log messages are enabled. You can collect logs using the nRF Logger mobile application from the device manager app. If you are using the nRF Connect mobile application, you can view the logs by sliding the screen (to the right).

    Kind Regards,

    Abhijith

  • Hello,

    Thank you for your guidance.

    The attached documents record the firmware update details for the first and subsequent reconnections.

    Please help analyze where the setting is causing the problem. Why can't the firmware be updated on the first connection, and why does it only work after disconnecting and reconnecting?

    nRF Connect, 2026-03-18
    AURA 170 HB (DF:B8:BC:AD:4E:21)
    V	10:01:51.119	Connecting to DF:B8:BC:AD:4E:21...
    D	10:01:51.119	gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
    D	10:01:51.623	[Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
    D	10:01:51.630	[Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
    I	10:01:51.630	Connected to DF:B8:BC:AD:4E:21
    V	10:01:51.632	Discovering services...
    D	10:01:51.632	gatt.discoverServices()
    I	10:01:52.288	Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms)
    D	10:01:52.787	[Callback] Services discovered with status: 0
    I	10:01:52.787	Services discovered
    V	10:01:52.802	Generic Attribute (0x1801)
    - Service Changed [I] (0x2A05)
       Client Characteristic Configuration (0x2902)
    Generic Access (0x1800)
    - Device Name [R] (0x2A00)
    - Appearance [R] (0x2A01)
    - Peripheral Preferred Connection Parameters [R] (0x2A04)
    Battery Service (0x180F)
    - Battery Level [N R] (0x2A19)
       Client Characteristic Configuration (0x2902)
       Characteristic Presentation Format (0x2904)
    Device Information (0x180A)
    - Model Number String [R] (0x2A24)
    - Manufacturer Name String [R] (0x2A29)
    - Serial Number String [R] (0x2A25)
    - Firmware Revision String [R] (0x2A26)
    - Hardware Revision String [R] (0x2A27)
    Unknown Service (165e3f01-5824-4fdd-b386-220c5ca15899)
    - Unknown Characteristic [I R] (165e3f0a-5824-4fdd-b386-220c5ca15899)
       Client Characteristic Configuration (0x2902)
    - Unknown Characteristic [I R] (165e3f0c-5824-4fdd-b386-220c5ca15899)
       Client Characteristic Configuration (0x2902)
    - Unknown Characteristic [I R W] (165e3f0d-5824-4fdd-b386-220c5ca15899)
       Client Characteristic Configuration (0x2902)
    - Unknown Characteristic [I] (165e3f0f-5824-4fdd-b386-220c5ca15899)
       Client Characteristic Configuration (0x2902)
    Nordic UART Service (6e400001-b5a3-f393-e0a9-e50e24dcca9e)
    - TX Characteristic [N] (6e400003-b5a3-f393-e0a9-e50e24dcca9e)
       Client Characteristic Configuration (0x2902)
    - RX Characteristic [W WNR] (6e400002-b5a3-f393-e0a9-e50e24dcca9e)
    Unknown Service (0000fd4a-0000-1000-8000-00805f9b34fb)
    - Unknown Characteristic [R] (d6e8c702-e33a-4533-a08c-15da13c04b57)
    - Unknown Characteristic [R W] (d6e8c70a-e33a-4533-a08c-15da13c04b57)
    - Unknown Characteristic [R] (d6e8c70c-e33a-4533-a08c-15da13c04b57)
    SMP Service (8d53dc1d-1db7-4cd3-868b-8a527460aa84)
    - SMP Characteristic [N WNR] (da2e7828-fbce-4e01-ae9e-261174997c48)
       Client Characteristic Configuration (0x2902)
    D	10:01:52.803	gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true)
    D	10:01:52.804	gatt.setCharacteristicNotification(00002a19-0000-1000-8000-00805f9b34fb, true)
    D	10:01:52.806	gatt.setCharacteristicNotification(165e3f0a-5824-4fdd-b386-220c5ca15899, true)
    D	10:01:52.807	gatt.setCharacteristicNotification(165e3f0c-5824-4fdd-b386-220c5ca15899, true)
    D	10:01:52.809	gatt.setCharacteristicNotification(165e3f0d-5824-4fdd-b386-220c5ca15899, true)
    D	10:01:52.810	gatt.setCharacteristicNotification(165e3f0f-5824-4fdd-b386-220c5ca15899, true)
    D	10:01:52.811	gatt.setCharacteristicNotification(6e400003-b5a3-f393-e0a9-e50e24dcca9e, true)
    I	10:01:52.873	Connection parameters updated (interval: 45.0ms, latency: 0, timeout: 5000ms)
    I	10:01:57.056	Connection parameters updated (interval: 45.0ms, latency: 0, timeout: 420ms)
    V	10:02:11.501	[McuMgr] Connecting...
    D	10:02:11.520	[McuMgr] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, LE 1M)
    D	10:02:11.565	[McuMgr] [Callback] Connection state changed with status: 0 and new state: 2 (CONNECTED)
    I	10:02:11.575	[McuMgr] Connected to DF:B8:BC:AD:4E:21
    D	10:02:11.587	[McuMgr] wait(300)
    V	10:02:11.899	[McuMgr] Discovering services...
    D	10:02:11.917	[McuMgr] gatt.discoverServices()
    I	10:02:11.934	[McuMgr] Services discovered
    V	10:02:11.948	[McuMgr] Primary service found
    V	10:02:11.961	[McuMgr] Requesting new MTU...
    D	10:02:11.975	[McuMgr] gatt.requestMtu(498)
    I	10:02:12.089	[McuMgr] MTU changed to: 498
    D	10:02:12.104	[McuMgr] gatt.setCharacteristicNotification(da2e7828-fbce-4e01-ae9e-261174997c48, true)
    V	10:02:12.123	[McuMgr] Enabling notifications for da2e7828-fbce-4e01-ae9e-261174997c48
    D	10:02:12.137	[McuMgr] descriptor.setValue(0x01-00)
    D	10:02:12.163	[McuMgr] gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb)
    I	10:02:12.267	[McuMgr] Data written to descr. 00002902-0000-1000-8000-00805f9b34fb
    I	10:02:12.282	[McuMgr] Notifications enabled
    V	10:02:12.295	[McuMgr] Waiting for value change...
    V	10:02:12.308	[McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
    D	10:02:12.323	[McuMgr] characteristic.setValue(0x000000010000FF06A0)
    D	10:02:12.335	[McuMgr] characteristic.setWriteType(WRITE COMMAND)
    D	10:02:12.350	[McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48)
    I	10:02:12.367	[McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
    I	10:02:12.450	[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:02:12.468	[McuMgr] Wait for value changed complete
    A	10:02:12.486	[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:02:12.520	[McuMgr] SMP reassembly supported with buffer size: 2475 bytes and count: 4
    V	10:02:12.533	[McuMgr] Requesting connection priority: HIGH (11.25–15ms, 0, 5s)...
    D	10:02:12.550	[McuMgr] gatt.requestConnectionPriority(HIGH)
    A	10:02:12.573	[McuMgr] Sending (9 bytes) Header (Version: 1, Op: 0, Flags: 0, Len: 1, Group: 0, Seq: 0, Command: 8) CBOR {}
    V	10:02:12.769	[McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
    D	10:02:12.785	[McuMgr] characteristic.setValue(0x0800000100000008A0)
    D	10:02:12.800	[McuMgr] characteristic.setWriteType(WRITE COMMAND)
    D	10:02:12.813	[McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48)
    I	10:02:12.827	[McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
    I	10:02:12.898	[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
    A	10:02:12.912	[McuMgr] Received Header (Version: 1, Op: 1, Flags: 0, Len: 21, Group: 0, Seq: 0, Command: 8) CBOR {"bootloader":"MCUboot"}
    A	10:02:12.942	[McuMgr] Sending (20 bytes) Header (Version: 1, Op: 0, Flags: 0, Len: 12, Group: 0, Seq: 1, Command: 8) CBOR {"query":"mode"}
    V	10:02:12.960	[McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
    D	10:02:12.973	[McuMgr] characteristic.setValue(0x0800000C00000108A1657175657279646D6F6465)
    D	10:02:12.987	[McuMgr] characteristic.setWriteType(WRITE COMMAND)
    D	10:02:13.001	[McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48)
    I	10:02:13.016	[McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
    I	10:02:13.091	[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-02-FF
    A	10:02:13.112	[McuMgr] Received Header (Version: 1, Op: 1, Flags: 0, Len: 8, Group: 0, Seq: 1, Command: 8) CBOR {"mode":2}
    I	10:02:13.121	Connection parameters updated (interval: 11.25ms, latency: 0, timeout: 420ms)
    I	10:02:13.149	[McuMgr] Connection parameters updated (interval: 11.25ms, latency: 0, timeout: 420ms)
    A	10:02:13.176	[McuMgr] Sending (9 bytes) Header (Version: 1, Op: 0, Flags: 0, Len: 1, Group: 1, Seq: 2, Command: 0) CBOR {}
    V	10:02:13.191	[McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
    D	10:02:13.204	[McuMgr] characteristic.setValue(0x0800000100010200A0)
    D	10:02:13.240	[McuMgr] characteristic.setWriteType(WRITE COMMAND)
    I	10:02:13.244	Connection parameters updated (interval: 15.0ms, latency: 0, timeout: 5000ms)
    D	10:02:13.300	[McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48)
    I	10:02:13.321	[McuMgr] Connection parameters updated (interval: 15.0ms, latency: 0, timeout: 5000ms)
    I	10:02:13.357	[McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
    I	10:02:13.372	[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-30-2E-30-2E-30-64-68-61-73-68-58-20-39-BE-E9-35-13-33-B5-01-F7-EE-9D-E3-39-7B-55-74-EA-22-E3-EB-23-DB-88-B1-2C-5D-76-29-97-50-74-40-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:02:13.390	[McuMgr] Received Header (Version: 1, Op: 1, Flags: 0, Len: 134, Group: 1, Seq: 2, Command: 0) CBOR {"images":[{"slot":0,"version":"0.0.0","hash":"Ob7pNRMztQH37p3jOXtVdOoi4+sj24ixLF12KZdQdEA=","bootable":true,"pending":false,"confirmed":true,"active":true,"permanent":false}],"splitStatus":0}
    V	10:02:13.416	[McuMgr] Uploading firmware...
    A	10:02:21.715	[McuMgr] 346211 bytes sent in 8160 ms (42.43 kB/s)
    V	10:02:21.792	[McuMgr] New state: CONFIRM
    A	10:02:21.810	[McuMgr] Sending (57 bytes) Header (Version: 1, Op: 2, Flags: 0, Len: 49, Group: 1, Seq: 147, Command: 0) CBOR {"confirm":true,"hash":"+4Jg12lB+X2RnhPEwgsWaZ8cwG/jNfuQCvvhXaR0+c4="}
    V	10:02:21.823	[McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
    D	10:02:21.832	[McuMgr] characteristic.setValue(0x0A00003100019300A267636F6E6669726DF564686173685820FB8260D76941F97D919E13C4C20B16699F1CC06FE335FB900AFBE15DA474F9CE)
    D	10:02:21.858	[McuMgr] characteristic.setWriteType(WRITE COMMAND)
    D	10:02:21.870	[McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48)
    I	10:02:21.919	[McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
    I	10:02:21.966	[McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 0B-00-00-F4-00-01-93-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-39-BE-E9-35-13-33-B5-01-F7-EE-9D-E3-39-7B-55-74-EA-22-E3-EB-23-DB-88-B1-2C-5D-76-29-97-50-74-40-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-33-2E-30-2E-30-64-68-61-73-68-58-20-FB-82-60-D7-69-41-F9-7D-91-9E-13-C4-C2-0B-16-69-9F-1C-C0-6F-E3-35-FB-90-0A-FB-E1-5D-A4-74-F9-CE-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-F5-FF-FF-6B-73-70-6C-69-74-53-74-61-74-75-73-00-FF
    A	10:02:21.980	[McuMgr] Received Header (Version: 1, Op: 3, Flags: 0, Len: 244, Group: 1, Seq: 147, Command: 0) CBOR {"images":[{"slot":0,"version":"0.0.0","hash":"Ob7pNRMztQH37p3jOXtVdOoi4+sj24ixLF12KZdQdEA=","bootable":true,"pending":false,"confirmed":true,"active":true,"permanent":false},{"slot":1,"version":"3.0.0","hash":"+4Jg12lB+X2RnhPEwgsWaZ8cwG/jNfuQCvvhXaR0+c4=","bootable":true,"pending":true,"confirmed":false,"active":false,"permanent":true}],"splitStatus":0}
    V	10:02:21.999	[McuMgr] New state: RESET
    A	10:02:22.015	[McuMgr] Sending (9 bytes) Header (Version: 1, Op: 2, Flags: 0, Len: 1, Group: 0, Seq: 148, Command: 5) CBOR {}
    V	10:02:22.028	[McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
    D	10:02:22.040	[McuMgr] characteristic.setValue(0x0A00000100009405A0)
    D	10:02:22.053	[McuMgr] characteristic.setWriteType(WRITE COMMAND)
    D	10:02:22.065	[McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48)
    I	10:02:22.099	[McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
    V	10:02:24.517	[McuMgr] Disconnecting...
    D	10:02:24.539	[McuMgr] gatt.disconnect()
    D	10:02:24.590	[McuMgr] [Callback] Connection state changed with status: 0 and new state: 0 (DISCONNECTED)
    I	10:02:24.605	[McuMgr] Disconnected
    D	10:02:24.621	[McuMgr] gatt.close()
    I	10:02:27.296	Connection parameters updated (interval: 45.0ms, latency: 0, timeout: 420ms)
    
    nRF Connect, 2026-03-18
    AURA 170 HB (DF:B8:BC:AD:4E:21)
    V	09:58:41.956	Connecting to DF:B8:BC:AD:4E:21...
    D	09:58:41.956	gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
    D	09:58:42.224	[Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
    D	09:58:42.230	[Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
    I	09:58:42.230	Connected to DF:B8:BC:AD:4E:21
    V	09:58:42.236	Discovering services...
    D	09:58:42.236	gatt.discoverServices()
    I	09:58:42.929	Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms)
    D	09:58:43.419	[Callback] Services discovered with status: 0
    I	09:58:43.419	Services discovered
    V	09:58:43.443	Generic Attribute (0x1801)
    - Service Changed [I] (0x2A05)
       Client Characteristic Configuration (0x2902)
    Generic Access (0x1800)
    - Device Name [R] (0x2A00)
    - Appearance [R] (0x2A01)
    - Peripheral Preferred Connection Parameters [R] (0x2A04)
    Battery Service (0x180F)
    - Battery Level [N R] (0x2A19)
       Client Characteristic Configuration (0x2902)
       Characteristic Presentation Format (0x2904)
    Device Information (0x180A)
    - Model Number String [R] (0x2A24)
    - Manufacturer Name String [R] (0x2A29)
    - Serial Number String [R] (0x2A25)
    - Firmware Revision String [R] (0x2A26)
    - Hardware Revision String [R] (0x2A27)
    Unknown Service (165e3f01-5824-4fdd-b386-220c5ca15899)
    - Unknown Characteristic [I R] (165e3f0a-5824-4fdd-b386-220c5ca15899)
       Client Characteristic Configuration (0x2902)
    - Unknown Characteristic [I R] (165e3f0c-5824-4fdd-b386-220c5ca15899)
       Client Characteristic Configuration (0x2902)
    - Unknown Characteristic [I R W] (165e3f0d-5824-4fdd-b386-220c5ca15899)
       Client Characteristic Configuration (0x2902)
    - Unknown Characteristic [I] (165e3f0f-5824-4fdd-b386-220c5ca15899)
       Client Characteristic Configuration (0x2902)
    Nordic UART Service (6e400001-b5a3-f393-e0a9-e50e24dcca9e)
    - TX Characteristic [N] (6e400003-b5a3-f393-e0a9-e50e24dcca9e)
       Client Characteristic Configuration (0x2902)
    - RX Characteristic [W WNR] (6e400002-b5a3-f393-e0a9-e50e24dcca9e)
    Unknown Service (0000fd4a-0000-1000-8000-00805f9b34fb)
    - Unknown Characteristic [R] (d6e8c702-e33a-4533-a08c-15da13c04b57)
    - Unknown Characteristic [R W] (d6e8c70a-e33a-4533-a08c-15da13c04b57)
    - Unknown Characteristic [R] (d6e8c70c-e33a-4533-a08c-15da13c04b57)
    SMP Service (8d53dc1d-1db7-4cd3-868b-8a527460aa84)
    - SMP Characteristic [N WNR] (da2e7828-fbce-4e01-ae9e-261174997c48)
       Client Characteristic Configuration (0x2902)
    D	09:58:43.443	gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true)
    D	09:58:43.445	gatt.setCharacteristicNotification(00002a19-0000-1000-8000-00805f9b34fb, true)
    D	09:58:43.446	gatt.setCharacteristicNotification(165e3f0a-5824-4fdd-b386-220c5ca15899, true)
    D	09:58:43.447	gatt.setCharacteristicNotification(165e3f0c-5824-4fdd-b386-220c5ca15899, true)
    D	09:58:43.448	gatt.setCharacteristicNotification(165e3f0d-5824-4fdd-b386-220c5ca15899, true)
    D	09:58:43.450	gatt.setCharacteristicNotification(165e3f0f-5824-4fdd-b386-220c5ca15899, true)
    D	09:58:43.451	gatt.setCharacteristicNotification(6e400003-b5a3-f393-e0a9-e50e24dcca9e, true)
    I	09:58:43.513	Connection parameters updated (interval: 45.0ms, latency: 0, timeout: 5000ms)
    I	09:58:47.654	Connection parameters updated (interval: 45.0ms, latency: 0, timeout: 420ms)
    V	10:00:02.793	[McuMgr] Connecting...
    D	10:00:02.805	[McuMgr] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, LE 1M)
    D	10:00:02.877	[McuMgr] [Callback] Connection state changed with status: 0 and new state: 2 (CONNECTED)
    I	10:00:02.889	[McuMgr] Connected to DF:B8:BC:AD:4E:21
    D	10:00:02.901	[McuMgr] wait(300)
    V	10:00:03.217	[McuMgr] Discovering services...
    D	10:00:03.235	[McuMgr] gatt.discoverServices()
    I	10:00:03.269	[McuMgr] Services discovered
    V	10:00:03.284	[McuMgr] Primary service found
    V	10:00:03.317	[McuMgr] Requesting new MTU...
    D	10:00:03.331	[McuMgr] gatt.requestMtu(498)
    I	10:00:03.434	[McuMgr] MTU changed to: 498
    D	10:00:03.454	[McuMgr] gatt.setCharacteristicNotification(da2e7828-fbce-4e01-ae9e-261174997c48, true)
    V	10:00:03.472	[McuMgr] Enabling notifications for da2e7828-fbce-4e01-ae9e-261174997c48
    D	10:00:03.490	[McuMgr] descriptor.setValue(0x01-00)
    D	10:00:03.503	[McuMgr] gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb)
    I	10:00:03.613	[McuMgr] Data written to descr. 00002902-0000-1000-8000-00805f9b34fb
    I	10:00:03.631	[McuMgr] Notifications enabled
    V	10:00:03.646	[McuMgr] Waiting for value change...
    V	10:00:03.661	[McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
    D	10:00:03.675	[McuMgr] characteristic.setValue(0x000000010000FF06A0)
    D	10:00:03.691	[McuMgr] characteristic.setWriteType(WRITE COMMAND)
    D	10:00:03.706	[McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48)
    I	10:00:03.724	[McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
    I	10:00:04.243	Connection parameters updated (interval: 11.25ms, latency: 0, timeout: 420ms)
    I	10:00:04.246	[McuMgr] Connection parameters updated (interval: 11.25ms, latency: 0, timeout: 420ms)
    W	10:00:04.662	[McuMgr] Request timed out
    V	10:00:04.680	[McuMgr] Requesting connection priority: HIGH (11.25–15ms, 0, 5s)...
    D	10:00:04.698	[McuMgr] gatt.requestConnectionPriority(HIGH)
    A	10:00:04.754	[McuMgr] Sending (9 bytes) Header (Version: 1, Op: 0, Flags: 0, Len: 1, Group: 0, Seq: 0, Command: 8) CBOR {}
    I	10:00:04.826	Connection parameters updated (interval: 15.0ms, latency: 0, timeout: 5000ms)
    I	10:00:04.828	[McuMgr] Connection parameters updated (interval: 15.0ms, latency: 0, timeout: 5000ms)
    V	10:00:04.857	[McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
    D	10:00:04.870	[McuMgr] characteristic.setValue(0x0800000100000008A0)
    D	10:00:04.883	[McuMgr] characteristic.setWriteType(WRITE COMMAND)
    D	10:00:04.900	[McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48)
    I	10:00:04.920	[McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
    A	10:00:07.232	[McuMgr] Sending (9 bytes) Header (Version: 1, Op: 0, Flags: 0, Len: 1, Group: 1, Seq: 1, Command: 0) CBOR {}
    V	10:00:07.246	[McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
    D	10:00:07.260	[McuMgr] characteristic.setValue(0x0800000100010100A0)
    D	10:00:07.278	[McuMgr] characteristic.setWriteType(WRITE COMMAND)
    D	10:00:07.290	[McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48)
    I	10:00:07.307	[McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
    V	10:00:12.233	[McuMgr] Disconnecting...
    D	10:00:12.259	[McuMgr] gatt.disconnect()
    D	10:00:12.293	[McuMgr] [Callback] Connection state changed with status: 0 and new state: 0 (DISCONNECTED)
    I	10:00:12.307	[McuMgr] Disconnected
    D	10:00:12.321	[McuMgr] gatt.close()
    I	10:00:12.522	Connection parameters updated (interval: 45.0ms, latency: 0, timeout: 420ms)
    

  • Hello,

    Thanks for sharing the logs from the mobile application. It does not appear that the issue is related to GATT caching.

    Could you also share the RTT/UART logs from the nRF device itself (the device being updated, not the mobile application)? Those logs are necessary to understand what is happening on the device side.

    For example, when using the sample I pointed out in my previous response, opening the COM port shows logs from both MCUboot and the application. Please see the screenshot below for reference. I mentioned that sample because, if logging is not currently enabled in your setup, it would be helpful to follow that sample to configure it.

    Kind Regards,

    Abhijith

Related