Issue: nRF Connect Android App (v4.29.1) Completes DFU, but Firmware is Not Updated on nRF52840 (MCUboot)

I am performing a BLE DFU update on an nRF52840 using the nRF Connect Android app (v4.29.1). The app successfully uploads the DFU package and reports that the update is completed. However, after rebooting the device, the firmware remains unchanged when checking the version.

The same DFU package works correctly on an iPhone using the nRF Connect iOS app, so the issue seems to be specific to the Android version of the app.

I am using MCUBoot as the bootloader. The DFU package (.zip) is automatically generated when building the project and contains:

  • app_update.bin 
  • manifest.json

Setup Details:

  • Device: nRF52840
  • SDK Version: 2.5.2
  • Bootloader: MCUBoot
  • DFU Package:
    • Generated directly during the build process (not manually created with nrfutil or west).
    • Contains app_update.bin and manifest.json.
  • nRF Connect for Android Version: 4.29.1
  • nRF Connect for iOS Version: 2.7.16

Observed Behavior:

  1. Android App (v4.29.1):

    • DFU process completes successfully.
    • After reboot, the firmware version remains the same (update not applied).
  2. iOS App (v2.7.16):

    • DFU process completes successfully.
    • After reboot, the firmware version updates correctly.

Troubleshooting Attempted:

White check mark Tried different Android devices.
 White check mark Cleared cache and reinstalled nRF Connect for Android.
 White check mark Restarted Bluetooth and toggled Airplane Mode before DFU.
 White check mark Verified that MCUBoot settings are properly updated.
 White check mark Manually checked firmware version post-update.
 White check mark Compared logs between Android and iOS (Android logs show DFU as successful).

Request for Support:

  • Has anyone experienced similar behavior with MCUBoot + nRF Connect Android v4.29.1?
  • Are there known differences in how DFU is handled between iOS and Android?
  • Any suggestions on additional debugging steps or fixes?

Any help would be appreciated! 

  • Hi Sai, 

    We would need to have more debug information. Do you have any logging ? Both on the nRF52 and on the phone ? 
    I was suspecting that the image was in Test only mode and didn't get confirmed so it get reverted back. But you mentioned that the new image didn't run even for once. So it could be something else. 

    Could you try to add DFU to a very simple application for example peripheral_lbs and test if you can update it ? (try to make simple modification for example change advertising name to create the DFU image)
    If you can't please send us your project files and send us the DFU .zip file so we can test here.

  • Hi Hung Bui,

    The image was set in both Test and Confirm mode. And here are the app settings for Connectivity, MCU manager and, DFU 

    Mcu Manager options
    Connectivity settings
    nRF5 DFU options

    Here is the nRF Connect App log  

    nRF Connect, 2025-03-05
    MY_nRF52840 (nRF52840 MAC Address)
    V	14:45:06.262	Connecting to nRF52840 MAC Address...
    D	14:45:06.262	gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
    D	14:45:06.367	[Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
    D	14:45:06.367	[Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
    I	14:45:06.367	Connected to nRF52840 MAC Address
    D	14:45:06.367	wait(1600ms)
    I	14:45:07.205	PHY updated (TX: LE 2M, RX: LE 2M)
    V	14:45:07.967	Discovering services...
    D	14:45:07.967	gatt.discoverServices()
    D	14:45:07.973	[Callback] Services discovered with status: 0
    I	14:45:07.973	Services discovered
    V	14:45:07.976	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 W] (0x2A00)
    - Appearance [R] (0x2A01)
    - Peripheral Preferred Connection Parameters [R] (0x2A04)
    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)
    SMP Service (8d53dc1d-1db7-4cd3-868b-8a527460aa84)
    - SMP Characteristic [N WNR] (da2e7828-fbce-4e01-ae9e-261174997c48)
       Client Characteristic Configuration (0x2902)
    D	14:45:07.977	gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true)
    D	14:45:07.978	gatt.setCharacteristicNotification(6e400003-b5a3-f393-e0a9-e50e24dcca9e, true)
    I	14:45:11.624	Connection parameters updated (interval: 30.0ms, latency: 0, timeout: 420ms)
    V	14:45:12.756	Requesting new MTU...
    D	14:45:12.756	gatt.requestMtu(517)
    W	14:45:12.818	Requested MTU not supported. MTU changed to: 498
    V	14:45:16.049	Writing request to characteristic 6e400002-b5a3-f393-e0a9-e50e24dcca9e
    D	14:45:16.049	gatt.writeCharacteristic(6e400002-b5a3-f393-e0a9-e50e24dcca9e, value=0x0E)
    I	14:45:16.116	Data written to 6e400002-b5a3-f393-e0a9-e50e24dcca9e, value: (0x) 0E
    A	14:45:16.116	"" sent
    I	14:45:16.149	Notification received from 6e400003-b5a3-f393-e0a9-e50e24dcca9e, value: (0x) HEX value
    A	14:45:16.149	"FW: 0.0.1+23" received
    
    V	14:47:22.522	[McuMgr] Connecting...
    D	14:47:22.527	[McuMgr] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, LE 1M)
    D	14:47:22.572	[McuMgr] [Callback] Connection state changed with status: 0 and new state: 2 (CONNECTED)
    I	14:47:22.577	[McuMgr] Connected to nRF52840 MAC Address
    D	14:47:22.581	[McuMgr] wait(1600)
    I	14:47:22.584	[McuMgr] MTU changed to: 498
    V	14:47:24.185	[McuMgr] Discovering services...
    D	14:47:24.192	[McuMgr] gatt.discoverServices()
    I	14:47:24.212	[McuMgr] Services discovered
    V	14:47:24.216	[McuMgr] Primary service found
    D	14:47:24.227	[McuMgr] gatt.setCharacteristicNotification(da2e7828-fbce-4e01-ae9e-261174997c48, true)
    V	14:47:24.235	[McuMgr] Enabling notifications for da2e7828-fbce-4e01-ae9e-261174997c48
    D	14:47:24.240	[McuMgr] gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x01-00)
    I	14:47:24.307	[McuMgr] Data written to descr. 00002902-0000-1000-8000-00805f9b34fb
    V	14:47:24.316	[McuMgr] Waiting for value change...
    V	14:47:24.319	[McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
    D	14:47:24.323	[McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x000000010000FF06A0, WRITE COMMAND)
    I	14:47:24.330	[McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
    I	14:47:24.368	[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	14:47:24.377	[McuMgr] Wait for value changed complete
    A	14:47:24.389	[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	14:47:24.401	[McuMgr] SMP reassembly supported with buffer size: 2475 bytes and count: 4
    V	14:47:24.407	[McuMgr] Requesting connection priority: HIGH (11.25–15ms, 0, 5s)...
    D	14:47:24.411	[McuMgr] gatt.requestConnectionPriority(HIGH)
    A	14:47:24.423	[McuMgr] Sending (9 bytes) Header (Version: 1, Op: 0, Flags: 0, Len: 1, Group: 0, Seq: 0, Command: 8) CBOR {}
    V	14:47:24.620	[McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
    D	14:47:24.627	[McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x0800000100000008A0, WRITE COMMAND)
    I	14:47:24.636	[McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
    I	14:47:24.671	Connection parameters updated (interval: 11.25ms, latency: 0, timeout: 420ms)
    I	14:47:24.678	[McuMgr] Connection parameters updated (interval: 11.25ms, latency: 0, timeout: 420ms)
    I	14:47:24.696	[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	14:47:24.701	[McuMgr] Received Header (Version: 1, Op: 1, Flags: 0, Len: 21, Group: 0, Seq: 0, Command: 8) CBOR {"bootloader":"MCUboot"}
    A	14:47:24.719	[McuMgr] Sending (20 bytes) Header (Version: 1, Op: 0, Flags: 0, Len: 12, Group: 0, Seq: 1, Command: 8) CBOR {"query":"mode"}
    V	14:47:24.725	[McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
    D	14:47:24.733	[McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x0800000C00000108A1657175657279646D6F6465, WRITE COMMAND)
    I	14:47:24.741	[McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
    I	14:47:24.762	[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	14:47:24.768	[McuMgr] Received Header (Version: 1, Op: 1, Flags: 0, Len: 8, Group: 0, Seq: 1, Command: 8) CBOR {"mode":3}
    I	14:47:24.784	Connection parameters updated (interval: 15.0ms, latency: 0, timeout: 5000ms)
    I	14:47:24.790	[McuMgr] Connection parameters updated (interval: 15.0ms, latency: 0, timeout: 5000ms)
    A	14:47:24.803	[McuMgr] Sending (9 bytes) Header (Version: 1, Op: 0, Flags: 0, Len: 1, Group: 1, Seq: 2, Command: 0) CBOR {}
    V	14:47:24.808	[McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
    D	14:47:24.812	[McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x0800000100010200A0, WRITE COMMAND)
    I	14:47:24.826	[McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
    I	14:47:24.870	[McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 09-00-00-FA-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-68-30-2E-30-2E-31-2E-32-33-64-68-61-73-68-58-20-40-E7-11-85-9A-0F-0E-A4-9F-3A-B9-11-A0-B8-9F-EF-7A-42-44-F9-14-23-9E-81-C2-D7-99-A3-D2-2E-6B-BD-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-68-30-2E-30-2E-31-2E-32-33-64-68-61-73-68-58-20-D1-FE-75-AA-A9-7C-DF-BA-5D-2A-31-82-08-46-79-ED-59-D1-40-EF-AE-82-C4-85-BE-FF-7F-38-E2-07-4E-CD-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-73-00-FF
    A	14:47:24.882	[McuMgr] Received Header (Version: 1, Op: 1, Flags: 0, Len: 250, Group: 1, Seq: 2, Command: 0) CBOR {"images":[{"slot":0,"version":"0.0.1.23","hash":"QOcRhZoPDqSfOrkRoLif73pCRPkUI56BwteZo9Iua70=","bootable":true,"pending":false,"confirmed":true,"active":true,"permanent":false},{"slot":1,"version":"0.0.1.23","hash":"0f51qql837pdKjGCCEZ57VnRQO+ugsSFvv9/OOIHTs0=","bootable":true,"pending":false,"confirmed":false,"active":false,"permanent":false}],"splitStatus":0}
    V	14:47:24.912	[McuMgr] Uploading firmware...
    A	14:47:53.185	[McuMgr] 334460 bytes sent in 27934 ms (11.97 kB/s)
    V	14:47:53.271	[McuMgr] New state: TEST
    A	14:47:53.286	[McuMgr] Sending (57 bytes) Header (Version: 1, Op: 2, Flags: 0, Len: 49, Group: 1, Seq: 196, Command: 0) CBOR {"confirm":false,"hash":"P6HAn5xuVF84Kd31MBpjAkvnNo59yqXFOaUepJYTtBs="}
    V	14:47:53.294	[McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
    D	14:47:53.302	[McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x0A0000310001C400A267636F6E6669726DF4646861736858203FA1C09F9C6E545F3829DDF5301A63024BE7368E7DCAA5C539A51EA49613B41B, WRITE COMMAND)
    I	14:47:53.323	[McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
    I	14:47:53.363	[McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 0B-00-00-FA-00-01-C4-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-68-30-2E-30-2E-31-2E-32-33-64-68-61-73-68-58-20-40-E7-11-85-9A-0F-0E-A4-9F-3A-B9-11-A0-B8-9F-EF-7A-42-44-F9-14-23-9E-81-C2-D7-99-A3-D2-2E-6B-BD-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-68-30-2E-30-2E-31-2E-32-34-64-68-61-73-68-58-20-3F-A1-C0-9F-9C-6E-54-5F-38-29-DD-F5-30-1A-63-02-4B-E7-36-8E-7D-CA-A5-C5-39-A5-1E-A4-96-13-B4-1B-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	14:47:53.379	[McuMgr] Received Header (Version: 1, Op: 3, Flags: 0, Len: 250, Group: 1, Seq: 196, Command: 0) CBOR {"images":[{"slot":0,"version":"0.0.1.23","hash":"QOcRhZoPDqSfOrkRoLif73pCRPkUI56BwteZo9Iua70=","bootable":true,"pending":false,"confirmed":true,"active":true,"permanent":false},{"slot":1,"version":"0.0.1.24","hash":"P6HAn5xuVF84Kd31MBpjAkvnNo59yqXFOaUepJYTtBs=","bootable":true,"pending":true,"confirmed":false,"active":false,"permanent":false}],"splitStatus":0}
    V	14:47:53.404	[McuMgr] New state: RESET
    A	14:47:53.417	[McuMgr] Sending (9 bytes) Header (Version: 1, Op: 2, Flags: 0, Len: 1, Group: 0, Seq: 197, Command: 5) CBOR {}
    V	14:47:53.424	[McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
    D	14:47:53.432	[McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x0A0000010000C505A0, WRITE COMMAND)
    I	14:47:53.451	[McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
    I	14:47:53.493	[McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 0B-00-00-02-00-00-C5-05-BF-FF
    A	14:47:53.514	[McuMgr] Received Header (Version: 1, Op: 3, Flags: 0, Len: 2, Group: 0, Seq: 197, Command: 5) CBOR {}
    D	14:47:58.737	[Callback] Connection state changed with status: 8 and new state: DISCONNECTED (0)
    E	14:47:58.737	Error 8 (0x8): GATT CONN TIMEOUT
    I	14:47:58.737	Disconnected
    D	14:47:58.758	[McuMgr] [Callback] Connection state changed with status: 8 and new state: 0 (DISCONNECTED)
    W	14:47:58.764	[McuMgr] Error: (0x8): GATT CONN TIMEOUT
    I	14:47:58.767	[McuMgr] Disconnected
    D	14:47:58.807	[McuMgr] gatt.close()
    D	14:47:58.815	[Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED
    V	14:48:03.543	[McuMgr] Connecting...
    D	14:48:03.555	[McuMgr] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, LE 1M)
    V	14:48:03.574	[McuMgr] New state: CONFIRM
    D	14:48:13.607	[McuMgr] [Callback] Connection state changed with status: 133 and new state: 0 (DISCONNECTED)
    W	14:48:13.621	[McuMgr] Error: (0x85): GATT ERROR
    D	14:48:13.630	[McuMgr] wait(500)
    D	14:48:14.139	[McuMgr] gatt.close()
    D	14:48:14.160	[McuMgr] wait(200)
    V	14:48:14.368	[McuMgr] Retrying...
    D	14:48:14.381	[McuMgr] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, LE 1M)
    D	14:48:24.422	[McuMgr] [Callback] Connection state changed with status: 133 and new state: 0 (DISCONNECTED)
    W	14:48:24.441	[McuMgr] Error: (0x85): GATT ERROR
    D	14:48:24.448	[McuMgr] wait(500)
    D	14:48:24.953	[McuMgr] gatt.close()
    D	14:48:24.964	[McuMgr] wait(200)
    V	14:48:25.168	[McuMgr] Retrying...
    D	14:48:25.177	[McuMgr] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, LE 1M)
    D	14:48:35.205	[McuMgr] [Callback] Connection state changed with status: 133 and new state: 0 (DISCONNECTED)
    W	14:48:35.215	[McuMgr] Error: (0x85): GATT ERROR
    D	14:48:35.221	[McuMgr] wait(500)
    D	14:48:35.727	[McuMgr] gatt.close()
    D	14:48:35.755	[McuMgr] wait(200)
    V	14:48:35.965	[McuMgr] Retrying...
    D	14:48:35.980	[McuMgr] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, LE 1M)
    D	14:48:46.037	[McuMgr] [Callback] Connection state changed with status: 133 and new state: 0 (DISCONNECTED)
    W	14:48:46.059	[McuMgr] Error: (0x85): GATT ERROR
    W	14:48:46.066	[McuMgr] Connection attempt timed out
    D	14:48:46.074	[McuMgr] gatt.close()
    D	14:48:46.092	gatt.close()
    D	14:48:46.096	wait(200)
    V	14:48:46.297	Connecting to nRF52840 MAC Address...
    D	14:48:46.297	gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
    D	14:48:56.339	[Callback] Connection state changed with status: 133 and new state: DISCONNECTED (0)
    E	14:48:56.339	Error 133 (0x85): GATT ERROR
    I	14:48:56.339	Disconnected
    D	14:49:07.975	gatt.close()
    D	14:49:07.979	wait(200)
    V	14:49:08.180	Connecting to nRF52840 MAC Address...
    D	14:49:08.180	gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
    D	14:49:08.685	[Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
    I	14:49:08.685	Connected to nRF52840 MAC Address
    D	14:49:08.685	wait(1600ms)
    D	14:49:09.213	[Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
    I	14:49:10.037	PHY updated (TX: LE 2M, RX: LE 2M)
    V	14:49:10.285	Discovering services...
    D	14:49:10.285	gatt.discoverServices()
    D	14:49:10.290	[Callback] Services discovered with status: 0
    I	14:49:10.290	Services discovered
    V	14:49:10.296	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 W] (0x2A00)
    - Appearance [R] (0x2A01)
    - Peripheral Preferred Connection Parameters [R] (0x2A04)
    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)
    SMP Service (8d53dc1d-1db7-4cd3-868b-8a527460aa84)
    - SMP Characteristic [N WNR] (da2e7828-fbce-4e01-ae9e-261174997c48)
       Client Characteristic Configuration (0x2902)
    D	14:49:10.296	gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true)
    D	14:49:10.299	gatt.setCharacteristicNotification(6e400003-b5a3-f393-e0a9-e50e24dcca9e, true)
    V	14:49:13.875	Requesting new MTU...
    D	14:49:13.875	gatt.requestMtu(517)
    W	14:49:14.041	Requested MTU not supported. MTU changed to: 498
    I	14:49:14.085	Connection parameters updated (interval: 45.0ms, latency: 0, timeout: 420ms)
    V	14:49:16.776	Writing request to characteristic 6e400002-b5a3-f393-e0a9-e50e24dcca9e
    D	14:49:16.776	gatt.writeCharacteristic(6e400002-b5a3-f393-e0a9-e50e24dcca9e, value=0x0E)
    I	14:49:16.920	Data written to 6e400002-b5a3-f393-e0a9-e50e24dcca9e, value: (0x) 0E
    A	14:49:16.920	"" sent
    I	14:49:16.920	Notification received from 6e400003-b5a3-f393-e0a9-e50e24dcca9e, value: (0x)
    A	14:49:16.920	"FW: 0.0.1+23" received
    
    .

    In the log, line 41 shows the firmware version before the DFU update, and line 188 shows the firmware version after the update. As you can see, the upload process was successful; however, the firmware version remained unchanged, indicating that the update did not take effect.

    Let me know if you need any additional details or further analysis.

    Thanks and regards, Sai

Related