OTA over BLE Same Version Update Issue

Hello, 

 I am using nRF52833 with nrf connect sdk for vs code (SDK and Toolchain version : 2.9.1).

Hello Nordic Team,

I am using OTA DFU with MCUboot on the nRF Connect SDK (v2.9.0) in a no-sysbuild setup. OTA DFU is working correctly for downgrade prevention, but I need strict version enforcement so that only strictly higher versions are accepted.

Target behavior:

  • Lower version → Rejected (already working)

  • Same version → Rejected (required)

  • Higher version → Accepted (already working)


Setup details:

I am using a VERSION file in my application:

VERSION_MAJOR = 1
VERSION_MINOR = 0
PATCHLEVEL = 2
VERSION_TWEAK = 2
EXTRAVERSION =

In my application prj.conf:

CONFIG_BOOTLOADER_MCUBOOT=y
CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU=y
CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU_SPEEDUP=y
CONFIG_FLASH=y
CONFIG_FLASH_PAGE_LAYOUT=y
CONFIG_FLASH_MAP=y

In the child image configuration (mcuboot.conf):

CONFIG_MCUBOOT_DOWNGRADE_PREVENTION=y
CONFIG_BOOT_UPGRADE_ONLY=y
CONFIG_BOOT_VERSION_CMP_USE_BUILD_NUMBER=y

Observed behavior:

  • OTA with a lower version → Correctly rejected

  • OTA with a higher version → Correctly accepted

  • OTA with the same version but a modified application (e.g., device name changed) → Accepted

  • OTA with the same version and the same binary → Skipped


Requirement:

I want MCUboot to reject:

  • Images with the same version as the currently running firmware

And accept only:

i am sharing log

same version -
VERSION_MAJOR = 1
VERSION_MINOR = 0
PATCHLEVEL = 2
VERSION_TWEAK = 2
EXTRAVERSION =



nRF Connect, 2026-01-22
embel11 (E7:92:37:BC:B3:AB)
V 15:26:42.793 Connecting to E7:92:37:BC:B3:AB...
D 15:26:42.793 gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
D 15:26:43.056 [Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
I 15:26:43.056 Connected to E7:92:37:BC:B3:AB
V 15:26:43.057 Discovering services...
D 15:26:43.057 gatt.discoverServices()
D 15:26:43.101 [Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
D 15:26:43.180 [Callback] Services discovered with status: 0
I 15:26:43.180 Services discovered
V 15:26:43.187 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)
SMP Service (8d53dc1d-1db7-4cd3-868b-8a527460aa84)
- SMP Characteristic [N WNR] (da2e7828-fbce-4e01-ae9e-261174997c48)
   Client Characteristic Configuration (0x2902)
D 15:26:43.187 gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true)
I 15:26:43.658 PHY updated (TX: LE 2M, RX: LE 2M)
V 15:26:47.556 [McuMgr] Connecting...
D 15:26:47.559 [McuMgr] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, LE 1M)
D 15:26:47.596 [McuMgr] [Callback] Connection state changed with status: 0 and new state: 2 (CONNECTED)
I 15:26:47.600 [McuMgr] Connected to E7:92:37:BC:B3:AB
D 15:26:47.603 [McuMgr] wait(300)
V 15:26:47.908 [McuMgr] Discovering services...
D 15:26:47.913 [McuMgr] gatt.discoverServices()
I 15:26:47.927 [McuMgr] Services discovered
V 15:26:47.932 [McuMgr] Primary service found
V 15:26:47.936 [McuMgr] Requesting new MTU...
D 15:26:47.941 [McuMgr] gatt.requestMtu(498)
I 15:26:48.078 [McuMgr] MTU changed to: 498
D 15:26:48.086 [McuMgr] gatt.setCharacteristicNotification(da2e7828-fbce-4e01-ae9e-261174997c48, true)
V 15:26:48.096 [McuMgr] Enabling notifications for da2e7828-fbce-4e01-ae9e-261174997c48
D 15:26:48.103 [McuMgr] gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x01-00)
I 15:26:48.204 Connection parameters updated (interval: 45.0ms, latency: 0, timeout: 420ms)
I 15:26:48.211 [McuMgr] Connection parameters updated (interval: 45.0ms, latency: 0, timeout: 420ms)
I 15:26:48.217 [McuMgr] Data written to descr. 00002902-0000-1000-8000-00805f9b34fb
V 15:26:48.221 [McuMgr] Waiting for value change...
V 15:26:48.224 [McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
D 15:26:48.226 [McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x000000010000FF06A0, WRITE COMMAND)
I 15:26:48.229 [McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I 15:26:48.433 [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 15:26:48.441 [McuMgr] Wait for value changed complete
A 15:26:48.452 [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 15:26:48.468 [McuMgr] SMP reassembly supported with buffer size: 2475 bytes and count: 4
V 15:26:48.473 [McuMgr] Requesting connection priority: HIGH (11.25–15ms, 0, 5s)...
D 15:26:48.475 [McuMgr] gatt.requestConnectionPriority(HIGH)
A 15:26:48.489 [McuMgr] Sending (9 bytes) Header (Version: 1, Op: 0, Flags: 0, Len: 1, Group: 0, Seq: 0, Command: 8) CBOR {}
V 15:26:48.684 [McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
D 15:26:48.688 [McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x0800000100000008A0, WRITE COMMAND)
I 15:26:48.700 [McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I 15:26:48.700 Connection parameters updated (interval: 11.25ms, latency: 0, timeout: 420ms)
I 15:26:48.712 [McuMgr] Connection parameters updated (interval: 11.25ms, latency: 0, timeout: 420ms)
I 15:26:48.737 [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 15:26:48.749 [McuMgr] Received Header (Version: 1, Op: 1, Flags: 0, Len: 21, Group: 0, Seq: 0, Command: 8) CBOR {"bootloader":"MCUboot"}
A 15:26:48.768 [McuMgr] Sending (20 bytes) Header (Version: 1, Op: 0, Flags: 0, Len: 12, Group: 0, Seq: 1, Command: 8) CBOR {"query":"mode"}
V 15:26:48.770 [McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
D 15:26:48.774 [McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x0800000C00000108A1657175657279646D6F6465, WRITE COMMAND)
I 15:26:48.784 [McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I 15:26:48.787 Connection parameters updated (interval: 15.0ms, latency: 0, timeout: 5000ms)
I 15:26:48.792 [McuMgr] Connection parameters updated (interval: 15.0ms, latency: 0, timeout: 5000ms)
I 15:26:48.818 [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 15:26:48.821 [McuMgr] Received Header (Version: 1, Op: 1, Flags: 0, Len: 8, Group: 0, Seq: 1, Command: 8) CBOR {"mode":3}
A 15:26:48.829 [McuMgr] Sending (9 bytes) Header (Version: 1, Op: 0, Flags: 0, Len: 1, Group: 1, Seq: 2, Command: 0) CBOR {}
V 15:26:48.833 [McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
D 15:26:48.836 [McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x0800000100010200A0, WRITE COMMAND)
I 15:26:48.842 [McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I 15:26:48.866 [McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 09-00-00-88-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-67-31-2E-30-2E-32-2E-33-64-68-61-73-68-58-20-10-A8-85-31-46-AB-E7-9A-D9-1D-32-68-2A-EA-82-EB-1D-DF-69-08-30-66-8A-20-7C-9E-91-C6-96-DA-07-D4-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 15:26:48.869 [McuMgr] Received Header (Version: 1, Op: 1, Flags: 0, Len: 136, Group: 1, Seq: 2, Command: 0) CBOR {"images":[{"slot":0,"version":"1.0.2.3","hash":"EKiFMUar55rZHTJoKuqC6x3faQgwZoogfJ6RxpbaB9Q=","bootable":true,"pending":false,"confirmed":true,"active":true,"permanent":false}],"splitStatus":0}
V 15:26:48.876 [McuMgr] Uploading firmware...
A 15:26:55.164 [McuMgr] 129355 bytes sent in 5965 ms (21.69 kB/s)
V 15:26:55.220 [McuMgr] New state: TEST
A 15:26:55.225 [McuMgr] Sending (57 bytes) Header (Version: 1, Op: 2, Flags: 0, Len: 49, Group: 1, Seq: 58, Command: 0) CBOR {"confirm":false,"hash":"nK8uEoLqHQk2XWq7RXsGI4+KEalPyCp/fb74SPjYdn0="}
V 15:26:55.230 [McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
D 15:26:55.234 [McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x0A00003100013A00A267636F6E6669726DF4646861736858209CAF2E1282EA1D09365D6ABB457B06238F8A11A94FC82A7F7DBEF848F8D8767D, WRITE COMMAND)
I 15:26:55.245 [McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I 15:26:55.282 [McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 0B-00-00-F8-00-01-3A-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-67-31-2E-30-2E-32-2E-33-64-68-61-73-68-58-20-10-A8-85-31-46-AB-E7-9A-D9-1D-32-68-2A-EA-82-EB-1D-DF-69-08-30-66-8A-20-7C-9E-91-C6-96-DA-07-D4-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-67-31-2E-30-2E-32-2E-33-64-68-61-73-68-58-20-9C-AF-2E-12-82-EA-1D-09-36-5D-6A-BB-45-7B-06-23-8F-8A-11-A9-4F-C8-2A-7F-7D-BE-F8-48-F8-D8-76-7D-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 15:26:55.286 [McuMgr] Received Header (Version: 1, Op: 3, Flags: 0, Len: 248, Group: 1, Seq: 58, Command: 0) CBOR {"images":[{"slot":0,"version":"1.0.2.3","hash":"EKiFMUar55rZHTJoKuqC6x3faQgwZoogfJ6RxpbaB9Q=","bootable":true,"pending":false,"confirmed":true,"active":true,"permanent":false},{"slot":1,"version":"1.0.2.3","hash":"nK8uEoLqHQk2XWq7RXsGI4+KEalPyCp/fb74SPjYdn0=","bootable":true,"pending":true,"confirmed":false,"active":false,"permanent":false}],"splitStatus":0}
V 15:26:55.298 [McuMgr] New state: RESET
A 15:26:55.311 [McuMgr] Sending (9 bytes) Header (Version: 1, Op: 2, Flags: 0, Len: 1, Group: 0, Seq: 59, Command: 5) CBOR {}
V 15:26:55.315 [McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
D 15:26:55.318 [McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x0A00000100003B05A0, WRITE COMMAND)
I 15:26:55.328 [McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I 15:26:55.358 [McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 0B-00-00-02-00-00-3B-05-BF-FF
A 15:26:55.363 [McuMgr] Received Header (Version: 1, Op: 3, Flags: 0, Len: 2, Group: 0, Seq: 59, Command: 5) CBOR {}
D 15:27:00.584 [Callback] Connection state changed with status: 8 and new state: DISCONNECTED (0)
E 15:27:00.585 Error 8 (0x8): GATT CONN TIMEOUT
I 15:27:00.585 Disconnected
D 15:27:00.588 [McuMgr] [Callback] Connection state changed with status: 8 and new state: 0 (DISCONNECTED)
W 15:27:00.603 [McuMgr] Error: (0x8): GATT CONN TIMEOUT
I 15:27:00.610 [McuMgr] Disconnected
D 15:27:00.640 [McuMgr] gatt.close()
D 15:27:00.651 [Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED
V 15:27:05.378 [McuMgr] Connecting...
D 15:27:05.384 [McuMgr] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, LE 1M)
V 15:27:05.391 [McuMgr] New state: CONFIRM
D 15:27:05.772 [McuMgr] [Callback] Connection state changed with status: 0 and new state: 2 (CONNECTED)
I 15:27:05.778 [McuMgr] Connected to E7:92:37:BC:B3:AB
D 15:27:05.781 [McuMgr] wait(300)
D 15:27:05.787 [Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
V 15:27:06.086 [McuMgr] Discovering services...
D 15:27:06.091 [McuMgr] gatt.discoverServices()
I 15:27:06.100 [McuMgr] Services discovered
V 15:27:06.105 [McuMgr] Primary service found
V 15:27:06.110 [McuMgr] Requesting new MTU...
D 15:27:06.114 [McuMgr] gatt.requestMtu(498)
I 15:27:06.210 [McuMgr] MTU changed to: 498
D 15:27:06.215 [McuMgr] gatt.setCharacteristicNotification(da2e7828-fbce-4e01-ae9e-261174997c48, true)
V 15:27:06.222 [McuMgr] Enabling notifications for da2e7828-fbce-4e01-ae9e-261174997c48
D 15:27:06.226 [McuMgr] gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x01-00)
I 15:27:06.384 [McuMgr] PHY updated (TX: LE 2M, RX: LE 2M)
I 15:27:06.390 [McuMgr] Data written to descr. 00002902-0000-1000-8000-00805f9b34fb
V 15:27:06.395 [McuMgr] Waiting for value change...
V 15:27:06.400 [McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
D 15:27:06.403 [McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x000000010000FF06A0, WRITE COMMAND)
I 15:27:06.407 [McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I 15:27:06.473 [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 15:27:06.477 [McuMgr] Wait for value changed complete
A 15:27:06.482 [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 15:27:06.490 [McuMgr] SMP reassembly supported with buffer size: 2475 bytes and count: 4
A 15:27:06.495 [McuMgr] Sending (57 bytes) Header (Version: 1, Op: 2, Flags: 0, Len: 49, Group: 1, Seq: 0, Command: 0) CBOR {"confirm":true,"hash":"nK8uEoLqHQk2XWq7RXsGI4+KEalPyCp/fb74SPjYdn0="}
V 15:27:06.499 [McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
D 15:27:06.502 [McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x0A00003100010000A267636F6E6669726DF5646861736858209CAF2E1282EA1D09365D6ABB457B06238F8A11A94FC82A7F7DBEF848F8D8767D, WRITE COMMAND)
I 15:27:06.508 [McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I 15:27:06.564 [McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 0B-00-00-88-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-67-31-2E-30-2E-32-2E-33-64-68-61-73-68-58-20-9C-AF-2E-12-82-EA-1D-09-36-5D-6A-BB-45-7B-06-23-8F-8A-11-A9-4F-C8-2A-7F-7D-BE-F8-48-F8-D8-76-7D-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 15:27:06.570 [McuMgr] Received Header (Version: 1, Op: 3, Flags: 0, Len: 136, Group: 1, Seq: 0, Command: 0) CBOR {"images":[{"slot":0,"version":"1.0.2.3","hash":"nK8uEoLqHQk2XWq7RXsGI4+KEalPyCp/fb74SPjYdn0=","bootable":true,"pending":false,"confirmed":true,"active":true,"permanent":false}],"splitStatus":0}
V 15:27:06.580 [McuMgr] Disconnecting...
D 15:27:06.586 [McuMgr] gatt.disconnect()
D 15:27:06.601 [McuMgr] [Callback] Connection state changed with status: 0 and new state: 0 (DISCONNECTED)
I 15:27:06.605 [McuMgr] Disconnected
D 15:27:06.608 [McuMgr] gatt.close()
D 15:27:06.620 gatt.close()
D 15:27:06.622 wait(200)
V 15:27:06.823 Connecting to E7:92:37:BC:B3:AB...
D 15:27:06.823 gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
D 15:27:06.846 [Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
I 15:27:06.846 Connected to E7:92:37:BC:B3:AB
V 15:27:06.889 Discovering services...
D 15:27:06.889 gatt.discoverServices()
D 15:27:06.931 [Callback] Services discovered with status: 0
I 15:27:06.931 Services discovered
V 15:27:06.941 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)
SMP Service (8d53dc1d-1db7-4cd3-868b-8a527460aa84)
- SMP Characteristic [N WNR] (da2e7828-fbce-4e01-ae9e-261174997c48)
   Client Characteristic Configuration (0x2902)
D 15:27:06.941 gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true)
I 15:27:10.930 Connection parameters updated (interval: 11.25ms, latency: 0, timeout: 420ms)
I 15:27:11.602 Connection parameters updated (interval: 45.0ms, latency: 0, timeout: 420ms)



lower version
 -VERSION_MAJOR = 1
VERSION_MINOR = 0
PATCHLEVEL = 2
VERSION_TWEAK = 1
EXTRAVERSION =
log-nRF Connect, 2026-01-22
embel (E7:92:37:BC:B3:AB)
V 14:51:03.557 Connecting to E7:92:37:BC:B3:AB...
D 14:51:03.557 gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
D 14:51:04.155 [Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
I 14:51:04.156 Connected to E7:92:37:BC:B3:AB
V 14:51:04.156 Discovering services...
D 14:51:04.156 gatt.discoverServices()
D 14:51:04.174 [Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
D 14:51:04.286 [Callback] Services discovered with status: 0
I 14:51:04.286 Services discovered
V 14:51:04.291 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)
SMP Service (8d53dc1d-1db7-4cd3-868b-8a527460aa84)
- SMP Characteristic [N WNR] (da2e7828-fbce-4e01-ae9e-261174997c48)
   Client Characteristic Configuration (0x2902)
D 14:51:04.291 gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true)
I 14:51:04.605 Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms)
I 14:51:04.687 Connection parameters updated (interval: 45.0ms, latency: 0, timeout: 5000ms)
V 14:51:08.074 [McuMgr] Connecting...
D 14:51:08.077 [McuMgr] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, LE 1M)
D 14:51:08.102 [McuMgr] [Callback] Connection state changed with status: 0 and new state: 2 (CONNECTED)
I 14:51:08.104 [McuMgr] Connected to E7:92:37:BC:B3:AB
D 14:51:08.106 [McuMgr] wait(300)
V 14:51:08.408 [McuMgr] Discovering services...
D 14:51:08.412 [McuMgr] gatt.discoverServices()
I 14:51:08.418 [McuMgr] Services discovered
V 14:51:08.420 [McuMgr] Primary service found
V 14:51:08.423 [McuMgr] Requesting new MTU...
D 14:51:08.425 [McuMgr] gatt.requestMtu(498)
I 14:51:08.513 [McuMgr] MTU changed to: 498
D 14:51:08.518 [McuMgr] gatt.setCharacteristicNotification(da2e7828-fbce-4e01-ae9e-261174997c48, true)
V 14:51:08.521 [McuMgr] Enabling notifications for da2e7828-fbce-4e01-ae9e-261174997c48
D 14:51:08.523 [McuMgr] gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x01-00)
I 14:51:08.692 [McuMgr] Data written to descr. 00002902-0000-1000-8000-00805f9b34fb
V 14:51:08.698 [McuMgr] Waiting for value change...
V 14:51:08.701 [McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
D 14:51:08.704 [McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x000000010000FF06A0, WRITE COMMAND)
I 14:51:08.708 [McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I 14:51:08.828 [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:51:08.834 [McuMgr] Wait for value changed complete
A 14:51:08.837 [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:51:08.844 [McuMgr] SMP reassembly supported with buffer size: 2475 bytes and count: 4
V 14:51:08.847 [McuMgr] Requesting connection priority: HIGH (11.25–15ms, 0, 5s)...
D 14:51:08.848 [McuMgr] gatt.requestConnectionPriority(HIGH)
A 14:51:08.856 [McuMgr] Sending (9 bytes) Header (Version: 1, Op: 0, Flags: 0, Len: 1, Group: 0, Seq: 0, Command: 8) CBOR {}
V 14:51:09.054 [McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
D 14:51:09.057 [McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x0800000100000008A0, WRITE COMMAND)
I 14:51:09.062 [McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I 14:51:09.188 [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:51:09.195 [McuMgr] Received Header (Version: 1, Op: 1, Flags: 0, Len: 21, Group: 0, Seq: 0, Command: 8) CBOR {"bootloader":"MCUboot"}
A 14:51:09.215 [McuMgr] Sending (20 bytes) Header (Version: 1, Op: 0, Flags: 0, Len: 12, Group: 0, Seq: 1, Command: 8) CBOR {"query":"mode"}
V 14:51:09.218 [McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
D 14:51:09.220 [McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x0800000C00000108A1657175657279646D6F6465, WRITE COMMAND)
I 14:51:09.224 [McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I 14:51:09.277 [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
I 14:51:09.278 Connection parameters updated (interval: 11.25ms, latency: 0, timeout: 420ms)
I 14:51:09.283 [McuMgr] Connection parameters updated (interval: 11.25ms, latency: 0, timeout: 420ms)
A 14:51:09.285 [McuMgr] Received Header (Version: 1, Op: 1, Flags: 0, Len: 8, Group: 0, Seq: 1, Command: 8) CBOR {"mode":3}
A 14:51:09.307 [McuMgr] Sending (9 bytes) Header (Version: 1, Op: 0, Flags: 0, Len: 1, Group: 1, Seq: 2, Command: 0) CBOR {}
V 14:51:09.311 [McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
D 14:51:09.312 [McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x0800000100010200A0, WRITE COMMAND)
I 14:51:09.317 [McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I 14:51:09.334 [McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 09-00-00-88-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-67-31-2E-30-2E-32-2E-32-64-68-61-73-68-58-20-5A-AC-3A-05-3D-A9-78-BF-AB-54-59-9A-EC-2C-B9-C2-D5-68-0A-4C-0F-49-F7-9E-FE-CD-FB-6D-2A-C0-98-44-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 14:51:09.338 [McuMgr] Received Header (Version: 1, Op: 1, Flags: 0, Len: 136, Group: 1, Seq: 2, Command: 0) CBOR {"images":[{"slot":0,"version":"1.0.2.2","hash":"Wqw6BT2peL+rVFma7Cy5wtVoCkwPSfee/s37bSrAmEQ=","bootable":true,"pending":false,"confirmed":true,"active":true,"permanent":false}],"splitStatus":0}
V 14:51:09.349 [McuMgr] Uploading firmware...
I 14:51:09.399 Connection parameters updated (interval: 15.0ms, latency: 0, timeout: 5000ms)
A 14:51:16.884 [McuMgr] 129351 bytes sent in 7171 ms (18.04 kB/s)
V 14:51:16.933 [McuMgr] New state: TEST
A 14:51:16.947 [McuMgr] Sending (57 bytes) Header (Version: 1, Op: 2, Flags: 0, Len: 49, Group: 1, Seq: 58, Command: 0) CBOR {"confirm":false,"hash":"w30dZ3r4V9F9pxlb9+dYIsAclqmk0ZrFYMZN4kueqXU="}
V 14:51:16.951 [McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
D 14:51:16.953 [McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x0A00003100013A00A267636F6E6669726DF464686173685820C37D1D677AF857D17DA7195BF7E75822C01C96A9A4D19AC560C64DE24B9EA975, WRITE COMMAND)
I 14:51:16.969 [McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I 14:51:16.994 [McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 0B-00-00-F8-00-01-3A-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-67-31-2E-30-2E-32-2E-32-64-68-61-73-68-58-20-5A-AC-3A-05-3D-A9-78-BF-AB-54-59-9A-EC-2C-B9-C2-D5-68-0A-4C-0F-49-F7-9E-FE-CD-FB-6D-2A-C0-98-44-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-67-31-2E-30-2E-32-2E-31-64-68-61-73-68-58-20-C3-7D-1D-67-7A-F8-57-D1-7D-A7-19-5B-F7-E7-58-22-C0-1C-96-A9-A4-D1-9A-C5-60-C6-4D-E2-4B-9E-A9-75-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:51:16.999 [McuMgr] Received Header (Version: 1, Op: 3, Flags: 0, Len: 248, Group: 1, Seq: 58, Command: 0) CBOR {"images":[{"slot":0,"version":"1.0.2.2","hash":"Wqw6BT2peL+rVFma7Cy5wtVoCkwPSfee/s37bSrAmEQ=","bootable":true,"pending":false,"confirmed":true,"active":true,"permanent":false},{"slot":1,"version":"1.0.2.1","hash":"w30dZ3r4V9F9pxlb9+dYIsAclqmk0ZrFYMZN4kueqXU=","bootable":true,"pending":true,"confirmed":false,"active":false,"permanent":false}],"splitStatus":0}
V 14:51:17.010 [McuMgr] New state: RESET
A 14:51:17.022 [McuMgr] Sending (9 bytes) Header (Version: 1, Op: 2, Flags: 0, Len: 1, Group: 0, Seq: 59, Command: 5) CBOR {}
V 14:51:17.024 [McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
D 14:51:17.025 [McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x0A00000100003B05A0, WRITE COMMAND)
I 14:51:17.031 [McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I 14:51:17.063 [McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 0B-00-00-02-00-00-3B-05-BF-FF
A 14:51:17.068 [McuMgr] Received Header (Version: 1, Op: 3, Flags: 0, Len: 2, Group: 0, Seq: 59, Command: 5) CBOR {}
D 14:51:22.311 [Callback] Connection state changed with status: 8 and new state: DISCONNECTED (0)
E 14:51:22.311 Error 8 (0x8): GATT CONN TIMEOUT
I 14:51:22.311 Disconnected
D 14:51:22.312 [McuMgr] [Callback] Connection state changed with status: 8 and new state: 0 (DISCONNECTED)
W 14:51:22.325 [McuMgr] Error: (0x8): GATT CONN TIMEOUT
I 14:51:22.328 [McuMgr] Disconnected
D 14:51:22.341 [McuMgr] gatt.close()
D 14:51:22.351 [Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED
V 14:51:27.089 [McuMgr] Connecting...
D 14:51:27.092 [McuMgr] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, LE 1M)
V 14:51:27.096 [McuMgr] New state: CONFIRM
D 14:51:27.511 [McuMgr] [Callback] Connection state changed with status: 0 and new state: 2 (CONNECTED)
I 14:51:27.515 [McuMgr] Connected to E7:92:37:BC:B3:AB
D 14:51:27.529 [McuMgr] wait(300)
D 14:51:27.534 [Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
V 14:51:27.836 [McuMgr] Discovering services...
D 14:51:27.840 [McuMgr] gatt.discoverServices()
I 14:51:27.848 [McuMgr] Services discovered
V 14:51:27.850 [McuMgr] Primary service found
V 14:51:27.854 [McuMgr] Requesting new MTU...
D 14:51:27.856 [McuMgr] gatt.requestMtu(498)
I 14:51:27.957 [McuMgr] Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms)
I 14:51:27.960 [McuMgr] MTU changed to: 498
D 14:51:27.970 [McuMgr] gatt.setCharacteristicNotification(da2e7828-fbce-4e01-ae9e-261174997c48, true)
V 14:51:27.973 [McuMgr] Enabling notifications for da2e7828-fbce-4e01-ae9e-261174997c48
D 14:51:27.975 [McuMgr] gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x01-00)
I 14:51:27.999 [McuMgr] Data written to descr. 00002902-0000-1000-8000-00805f9b34fb
V 14:51:28.002 [McuMgr] Waiting for value change...
V 14:51:28.005 [McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
D 14:51:28.007 [McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x000000010000FF06A0, WRITE COMMAND)
I 14:51:28.011 [McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I 14:51:28.023 [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:51:28.026 [McuMgr] Wait for value changed complete
A 14:51:28.030 [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:51:28.036 [McuMgr] SMP reassembly supported with buffer size: 2475 bytes and count: 4
I 14:51:28.043 [McuMgr] PHY updated (TX: LE 2M, RX: LE 2M)
A 14:51:28.046 [McuMgr] Sending (57 bytes) Header (Version: 1, Op: 2, Flags: 0, Len: 49, Group: 1, Seq: 0, Command: 0) CBOR {"confirm":true,"hash":"w30dZ3r4V9F9pxlb9+dYIsAclqmk0ZrFYMZN4kueqXU="}
V 14:51:28.048 [McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
D 14:51:28.050 [McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x0A00003100010000A267636F6E6669726DF564686173685820C37D1D677AF857D17DA7195BF7E75822C01C96A9A4D19AC560C64DE24B9EA975, WRITE COMMAND)
I 14:51:28.061 [McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I 14:51:28.083 [McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 0B-00-00-13-00-01-00-00-BF-63-65-72-72-BF-65-67-72-6F-75-70-01-62-72-63-08-FF-FF
A 14:51:28.086 [McuMgr] Received Header (Version: 1, Op: 3, Flags: 0, Len: 19, Group: 1, Seq: 0, Command: 0) CBOR {"err":{"group":1,"rc":8}}
V 14:51:28.095 [McuMgr] Disconnecting...
D 14:51:28.097 [McuMgr] gatt.disconnect()
D 14:51:28.116 [McuMgr] [Callback] Connection state changed with status: 0 and new state: 0 (DISCONNECTED)
I 14:51:28.119 [McuMgr] Disconnected
D 14:51:28.121 [McuMgr] gatt.close()
D 14:51:28.135 gatt.close()
D 14:51:28.136 wait(200)
V 14:51:28.338 Connecting to E7:92:37:BC:B3:AB...
D 14:51:28.338 gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
D 14:51:28.346 [Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
I 14:51:28.346 Connected to E7:92:37:BC:B3:AB
V 14:51:28.355 Discovering services...
D 14:51:28.355 gatt.discoverServices()
D 14:51:28.449 [Callback] Services discovered with status: 0
I 14:51:28.449 Services discovered
V 14:51:28.454 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)
SMP Service (8d53dc1d-1db7-4cd3-868b-8a527460aa84)
- SMP Characteristic [N WNR] (da2e7828-fbce-4e01-ae9e-261174997c48)
   Client Characteristic Configuration (0x2902)
D 14:51:28.454 gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true)
I 14:51:28.766 Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms)
I 14:51:28.852 Connection parameters updated (interval: 45.0ms, latency: 0, timeout: 5000ms)
I 14:51:32.726 Connection parameters updated (interval: 11.25ms, latency: 0, timeout: 420ms)
I 14:51:33.221 Connection parameters updated (interval: 45.0ms, latency: 0, timeout: 420ms)
 

upper version -



VERSION_MAJOR = 1
VERSION_MINOR = 0
PATCHLEVEL = 2
VERSION_TWEAK = 3
EXTRAVERSION =
log-
nRF Connect, 2026-01-22
embel (E7:92:37:BC:B3:AB)
V 14:57:49.118 Connecting to E7:92:37:BC:B3:AB...
D 14:57:49.118 gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
D 14:57:49.490 [Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
I 14:57:49.490 Connected to E7:92:37:BC:B3:AB
V 14:57:49.496 Discovering services...
D 14:57:49.496 gatt.discoverServices()
D 14:57:49.593 [Callback] Services discovered with status: 0
I 14:57:49.593 Services discovered
V 14:57:49.596 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)
SMP Service (8d53dc1d-1db7-4cd3-868b-8a527460aa84)
- SMP Characteristic [N WNR] (da2e7828-fbce-4e01-ae9e-261174997c48)
   Client Characteristic Configuration (0x2902)
D 14:57:49.596 gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true)
I 14:57:50.066 PHY updated (TX: LE 2M, RX: LE 2M)
D 14:57:50.084 [Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
I 14:57:54.605 Connection parameters updated (interval: 45.0ms, latency: 0, timeout: 420ms)
V 14:58:17.765 [McuMgr] Connecting...
D 14:58:17.769 [McuMgr] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, LE 1M)
D 14:58:17.877 [McuMgr] [Callback] Connection state changed with status: 0 and new state: 2 (CONNECTED)
I 14:58:17.880 [McuMgr] Connected to E7:92:37:BC:B3:AB
D 14:58:17.883 [McuMgr] wait(300)
V 14:58:18.187 [McuMgr] Discovering services...
D 14:58:18.192 [McuMgr] gatt.discoverServices()
I 14:58:18.223 [McuMgr] Services discovered
V 14:58:18.234 [McuMgr] Primary service found
V 14:58:18.242 [McuMgr] Requesting new MTU...
D 14:58:18.248 [McuMgr] gatt.requestMtu(498)
I 14:58:18.372 [McuMgr] MTU changed to: 498
D 14:58:18.377 [McuMgr] gatt.setCharacteristicNotification(da2e7828-fbce-4e01-ae9e-261174997c48, true)
V 14:58:18.385 [McuMgr] Enabling notifications for da2e7828-fbce-4e01-ae9e-261174997c48
D 14:58:18.391 [McuMgr] gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x01-00)
I 14:58:18.542 [McuMgr] Data written to descr. 00002902-0000-1000-8000-00805f9b34fb
V 14:58:18.550 [McuMgr] Waiting for value change...
V 14:58:18.555 [McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
D 14:58:18.559 [McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x000000010000FF06A0, WRITE COMMAND)
I 14:58:18.567 [McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I 14:58:18.643 [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:58:18.652 [McuMgr] Wait for value changed complete
A 14:58:18.663 [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:58:18.681 [McuMgr] SMP reassembly supported with buffer size: 2475 bytes and count: 4
V 14:58:18.685 [McuMgr] Requesting connection priority: HIGH (11.25–15ms, 0, 5s)...
D 14:58:18.691 [McuMgr] gatt.requestConnectionPriority(HIGH)
A 14:58:18.727 [McuMgr] Sending (9 bytes) Header (Version: 1, Op: 0, Flags: 0, Len: 1, Group: 0, Seq: 0, Command: 8) CBOR {}
V 14:58:18.922 [McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
D 14:58:18.931 [McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x0800000100000008A0, WRITE COMMAND)
I 14:58:18.944 [McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I 14:58:18.966 Connection parameters updated (interval: 11.25ms, latency: 0, timeout: 420ms)
I 14:58:18.980 [McuMgr] Connection parameters updated (interval: 11.25ms, latency: 0, timeout: 420ms)
I 14:58:18.993 [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:58:19.002 [McuMgr] Received Header (Version: 1, Op: 1, Flags: 0, Len: 21, Group: 0, Seq: 0, Command: 8) CBOR {"bootloader":"MCUboot"}
A 14:58:19.016 [McuMgr] Sending (20 bytes) Header (Version: 1, Op: 0, Flags: 0, Len: 12, Group: 0, Seq: 1, Command: 8) CBOR {"query":"mode"}
V 14:58:19.020 [McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
D 14:58:19.025 [McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x0800000C00000108A1657175657279646D6F6465, WRITE COMMAND)
I 14:58:19.034 Connection parameters updated (interval: 15.0ms, latency: 0, timeout: 5000ms)
I 14:58:19.041 [McuMgr] Connection parameters updated (interval: 15.0ms, latency: 0, timeout: 5000ms)
I 14:58:19.048 [McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I 14:58:19.085 [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:58:19.090 [McuMgr] Received Header (Version: 1, Op: 1, Flags: 0, Len: 8, Group: 0, Seq: 1, Command: 8) CBOR {"mode":3}
A 14:58:19.104 [McuMgr] Sending (9 bytes) Header (Version: 1, Op: 0, Flags: 0, Len: 1, Group: 1, Seq: 2, Command: 0) CBOR {}
V 14:58:19.109 [McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
D 14:58:19.113 [McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x0800000100010200A0, WRITE COMMAND)
I 14:58:19.122 [McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I 14:58:19.154 [McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 09-00-00-88-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-67-31-2E-30-2E-32-2E-32-64-68-61-73-68-58-20-5A-AC-3A-05-3D-A9-78-BF-AB-54-59-9A-EC-2C-B9-C2-D5-68-0A-4C-0F-49-F7-9E-FE-CD-FB-6D-2A-C0-98-44-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 14:58:19.159 [McuMgr] Received Header (Version: 1, Op: 1, Flags: 0, Len: 136, Group: 1, Seq: 2, Command: 0) CBOR {"images":[{"slot":0,"version":"1.0.2.2","hash":"Wqw6BT2peL+rVFma7Cy5wtVoCkwPSfee/s37bSrAmEQ=","bootable":true,"pending":false,"confirmed":true,"active":true,"permanent":false}],"splitStatus":0}
V 14:58:19.173 [McuMgr] Uploading firmware...
A 14:58:25.500 [McuMgr] 129350 bytes sent in 5985 ms (21.61 kB/s)
V 14:58:25.567 [McuMgr] New state: TEST
A 14:58:25.588 [McuMgr] Sending (57 bytes) Header (Version: 1, Op: 2, Flags: 0, Len: 49, Group: 1, Seq: 58, Command: 0) CBOR {"confirm":false,"hash":"EKiFMUar55rZHTJoKuqC6x3faQgwZoogfJ6RxpbaB9Q="}
V 14:58:25.593 [McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
D 14:58:25.597 [McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x0A00003100013A00A267636F6E6669726DF46468617368582010A8853146ABE79AD91D32682AEA82EB1DDF690830668A207C9E91C696DA07D4, WRITE COMMAND)
I 14:58:25.627 [McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I 14:58:25.666 [McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 0B-00-00-F8-00-01-3A-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-67-31-2E-30-2E-32-2E-32-64-68-61-73-68-58-20-5A-AC-3A-05-3D-A9-78-BF-AB-54-59-9A-EC-2C-B9-C2-D5-68-0A-4C-0F-49-F7-9E-FE-CD-FB-6D-2A-C0-98-44-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-67-31-2E-30-2E-32-2E-33-64-68-61-73-68-58-20-10-A8-85-31-46-AB-E7-9A-D9-1D-32-68-2A-EA-82-EB-1D-DF-69-08-30-66-8A-20-7C-9E-91-C6-96-DA-07-D4-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:58:25.676 [McuMgr] Received Header (Version: 1, Op: 3, Flags: 0, Len: 248, Group: 1, Seq: 58, Command: 0) CBOR {"images":[{"slot":0,"version":"1.0.2.2","hash":"Wqw6BT2peL+rVFma7Cy5wtVoCkwPSfee/s37bSrAmEQ=","bootable":true,"pending":false,"confirmed":true,"active":true,"permanent":false},{"slot":1,"version":"1.0.2.3","hash":"EKiFMUar55rZHTJoKuqC6x3faQgwZoogfJ6RxpbaB9Q=","bootable":true,"pending":true,"confirmed":false,"active":false,"permanent":false}],"splitStatus":0}
V 14:58:25.706 [McuMgr] New state: RESET
A 14:58:25.714 [McuMgr] Sending (9 bytes) Header (Version: 1, Op: 2, Flags: 0, Len: 1, Group: 0, Seq: 59, Command: 5) CBOR {}
V 14:58:25.718 [McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
D 14:58:25.737 [McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x0A00000100003B05A0, WRITE COMMAND)
I 14:58:25.749 [McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I 14:58:25.770 [McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 0B-00-00-02-00-00-3B-05-BF-FF
A 14:58:25.777 [McuMgr] Received Header (Version: 1, Op: 3, Flags: 0, Len: 2, Group: 0, Seq: 59, Command: 5) CBOR {}
D 14:58:31.019 [McuMgr] [Callback] Connection state changed with status: 8 and new state: 0 (DISCONNECTED)
D 14:58:31.021 [Callback] Connection state changed with status: 8 and new state: DISCONNECTED (0)
E 14:58:31.023 Error 8 (0x8): GATT CONN TIMEOUT
I 14:58:31.023 Disconnected
W 14:58:31.024 [McuMgr] Error: (0x8): GATT CONN TIMEOUT
I 14:58:31.028 [McuMgr] Disconnected
D 14:58:31.032 [McuMgr] gatt.close()
D 14:58:31.071 [Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED
V 14:58:35.808 [McuMgr] Connecting...
D 14:58:35.831 [McuMgr] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, LE 1M)
V 14:58:35.844 [McuMgr] New state: CONFIRM
D 14:58:36.350 [McuMgr] [Callback] Connection state changed with status: 0 and new state: 2 (CONNECTED)
I 14:58:36.366 [McuMgr] Connected to E7:92:37:BC:B3:AB
D 14:58:36.388 [McuMgr] wait(300)
D 14:58:36.419 [Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
V 14:58:36.692 [McuMgr] Discovering services...
D 14:58:36.697 [McuMgr] gatt.discoverServices()
I 14:58:36.728 [McuMgr] Services discovered
V 14:58:36.733 [McuMgr] Primary service found
V 14:58:36.750 [McuMgr] Requesting new MTU...
D 14:58:36.756 [McuMgr] gatt.requestMtu(498)
I 14:58:36.870 [McuMgr] PHY updated (TX: LE 2M, RX: LE 2M)
I 14:58:36.903 [McuMgr] MTU changed to: 498
D 14:58:36.906 [McuMgr] gatt.setCharacteristicNotification(da2e7828-fbce-4e01-ae9e-261174997c48, true)
V 14:58:36.910 [McuMgr] Enabling notifications for da2e7828-fbce-4e01-ae9e-261174997c48
D 14:58:36.913 [McuMgr] gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x01-00)
I 14:58:37.032 [McuMgr] Data written to descr. 00002902-0000-1000-8000-00805f9b34fb
V 14:58:37.036 [McuMgr] Waiting for value change...
V 14:58:37.039 [McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
D 14:58:37.041 [McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x000000010000FF06A0, WRITE COMMAND)
I 14:58:37.045 [McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I 14:58:37.123 [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:58:37.126 [McuMgr] Wait for value changed complete
A 14:58:37.129 [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:58:37.137 [McuMgr] SMP reassembly supported with buffer size: 2475 bytes and count: 4
A 14:58:37.143 [McuMgr] Sending (57 bytes) Header (Version: 1, Op: 2, Flags: 0, Len: 49, Group: 1, Seq: 0, Command: 0) CBOR {"confirm":true,"hash":"EKiFMUar55rZHTJoKuqC6x3faQgwZoogfJ6RxpbaB9Q="}
V 14:58:37.145 [McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
D 14:58:37.148 [McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x0A00003100010000A267636F6E6669726DF56468617368582010A8853146ABE79AD91D32682AEA82EB1DDF690830668A207C9E91C696DA07D4, WRITE COMMAND)
I 14:58:37.153 [McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I 14:58:37.215 [McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 0B-00-00-88-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-67-31-2E-30-2E-32-2E-33-64-68-61-73-68-58-20-10-A8-85-31-46-AB-E7-9A-D9-1D-32-68-2A-EA-82-EB-1D-DF-69-08-30-66-8A-20-7C-9E-91-C6-96-DA-07-D4-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 14:58:37.219 [McuMgr] Received Header (Version: 1, Op: 3, Flags: 0, Len: 136, Group: 1, Seq: 0, Command: 0) CBOR {"images":[{"slot":0,"version":"1.0.2.3","hash":"EKiFMUar55rZHTJoKuqC6x3faQgwZoogfJ6RxpbaB9Q=","bootable":true,"pending":false,"confirmed":true,"active":true,"permanent":false}],"splitStatus":0}
V 14:58:37.227 [McuMgr] Disconnecting...
D 14:58:37.230 [McuMgr] gatt.disconnect()
D 14:58:37.248 [McuMgr] [Callback] Connection state changed with status: 0 and new state: 0 (DISCONNECTED)
I 14:58:37.252 [McuMgr] Disconnected
D 14:58:37.256 [McuMgr] gatt.close()
D 14:58:37.266 gatt.close()
D 14:58:37.270 wait(200)
V 14:58:37.471 Connecting to E7:92:37:BC:B3:AB...
Parents
  • Hi,

    The behavior that you observe is in line with the Downgrade protection documentation for MCUboot:

    After you upload a new image and reset the development kit, MCUboot attempts to boot the secondary image. If this image has, in order of precedence, a major, minor, or revision value that is lower than the primary application image, it is considered invalid and the existing primary application boots instead.

    In other words, only lower version numbers are rejected. Equal or greater version numbers will be accepted.

    Please note that by default the check is on major, minor and revision (patch) numbers, not tweak. If you also want to check for the optional tweak number, you need to enable CONFIG_BOOT_VERSION_CMP_USE_BUILD_NUMBER in the MCUboot image.

    As you have already found out, an upgrade to an identical image is skipped. The only way for an upgrade to the same version to happen, is therefore if you create two different images but with the same version. The protection against same-version upgrades between different images, is therefore that you never make such images with identical version in the first place. If you do make such images, then it will be possible to upgrade between them. If that is not your intended behavior, then simply do not make such images.

    Regards,
    Terje

  • "If I don’t want the same version to be accepted during OTA, what additional configuration do I need to enable or add?"

     i don't want same version accepted  CONFIG_BOOT_VERSION_CMP_USE_BUILD_NUMBER i enable this configuration

  • Hi,

    I am sorry, but there are no configurations for adding such functionality. You would have to dive into he source code and change it manually. However I highly advice against doing so, because you might just as easily inadvertently introduce new security issues.

    A fundamental assumption regarding versioning and upgrades, is that you give different images different version numbers. Our current implementations seem to require that assumption to hold. Is this not a safe assumption for your project?

    Regards,
    Terje

Reply
  • Hi,

    I am sorry, but there are no configurations for adding such functionality. You would have to dive into he source code and change it manually. However I highly advice against doing so, because you might just as easily inadvertently introduce new security issues.

    A fundamental assumption regarding versioning and upgrades, is that you give different images different version numbers. Our current implementations seem to require that assumption to hold. Is this not a safe assumption for your project?

    Regards,
    Terje

Children
  • Hello Terje,

    Thank you for the clarification.

    I want to see the bootloader and application logs over UART console . What configurations do I need to enable? Can you please provide the required configuration

    Best regards,
    Embel_Tech

  • On what hardware? I don't see a board specification in your post.

    DK boards have UART console on by default in the sample codes.

  •  I am use nrf52833  custome board board no sysbuild configuration I am use in ota I am creating mcuboot.conf insidI am using an nRF52833 custom board with a no-sysbuild configuration. For OTA updates, I am creating an mcuboot.conf file.

  • Hello Team,

    I am using an nRF52833 custom board with a no-sysbuild configuration. For OTA updates, I am creating an mcuboot.conf file.

    mcuboot.conf:

    CONFIG_BOOT_SIGNATURE_TYPE_ECDSA_P256=y
    CONFIG_BOOT_SIGNATURE_KEY_FILE="C:/Users/Embel/ibeacon_2/mcuboot_priv.pem"

    CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y

    # This file configures the MCUboot bootloader specifically
    CONFIG_MCUBOOT_DOWNGRADE_PREVENTION=y
    CONFIG_BOOT_UPGRADE_ONLY=y
    CONFIG_BOOT_SWAP_USING_MOVE=n

    # Logging
    CONFIG_LOG=y
    CONFIG_MCUBOOT_LOG_LEVEL_INF=y

    # Serial recovery over UART
    CONFIG_MCUBOOT_SERIAL=y
    CONFIG_BOOT_SERIAL_UART=y
    CONFIG_UART_CONSOLE=n

    CONFIG_LOG_MODE_IMMEDIATE=y

    CONFIG_LOG_BACKEND_UART=y
    CONFIG_UART_CONSOLE=y
    CONFIG_BOOT_SERIAL=y
    CONFIG_BOOT_SERIAL_ENTRANCE_MODE_ALWAYS=y

    prj.conf:

    # Enable MCUboot bootloader
    CONFIG_BOOTLOADER_MCUBOOT=y

    # BLE DFU via MCUmgr (recommended helper)
    CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU=y

    # Optional: speed up DFU (automatically extends BT buffers & data length)
    CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU_SPEEDUP=y

    # 32 kHz RC oscillator
    CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y

    CONFIG_BT=y
    CONFIG_BT_PERIPHERAL=y
    CONFIG_BT_DEVICE_NAME=""

    # Flash support (required for MCUboot / DFU)
    CONFIG_FLASH=y
    CONFIG_FLASH_PAGE_LAYOUT=y
    CONFIG_FLASH_MAP=y

    CONFIG_MCUBOOT_IMGTOOL_SIGN_VERSION="1.1.6+0"

Related