Hello Nordic Team,
I am implementing OTA in a pairing and bonding-enabled application, but I am facing an issue during the ZIP file upload. Additionally, the graph is not displaying.
I will share my prj.conf and nRF Connect logs as well.
PRJ
PRJ FILE
########################
# CORE SYSTEM
########################
CONFIG_REBOOT=y
#CONFIG_PWM=y
CONFIG_POWEROFF=y
CONFIG_PM_DEVICE=y
CONFIG_NRFX_POWER=y
# Remove CONFIG_PM=y — it is NOT needed and may silently fail on nRF52833
# Main and workqueue stacks
CONFIG_MAIN_STACK_SIZE=2048
CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=4096
# Heap
CONFIG_HEAP_MEM_POOL_SIZE=4096
# Extra stacks – tune down later with thread analyzer if needed
CONFIG_MPSL_WORK_STACK_SIZE=2048
CONFIG_BT_RX_STACK_SIZE=2048
CONFIG_IDLE_STACK_SIZE=1024
CONFIG_ISR_STACK_SIZE=2048
########################
# BLUETOOTH – ROLES
########################
CONFIG_BT=y
CONFIG_BT_CENTRAL=y
CONFIG_BT_PERIPHERAL=y
CONFIG_BT_SMP_APP_PAIRING_ACCEPT=y
CONFIG_BT_FIXED_PASSKEY=y
# Device name
CONFIG_BT_DEVICE_NAME="CODE_rrr"
#CONFIG_BT_DEVICE_NAME="HANDHELD_SAGAR"
########################
# BLUETOOTH – BUFFERS
########################
# ACL data buffers
CONFIG_BT_BUF_ACL_TX_COUNT=10
CONFIG_BT_BUF_ACL_RX_COUNT=10
CONFIG_BT_BUF_ACL_TX_SIZE=251
CONFIG_BT_BUF_ACL_RX_SIZE=251
# L2CAP
CONFIG_BT_L2CAP_TX_MTU=247
#CONFIG_BT_L2CAP_TX_BUF_COUNT=5
#CONFIG_BT_L2CAP_DYNAMIC_CHANNEL=y
# Controller
CONFIG_BT_CTLR_DATA_LENGTH_MAX=251
########################
# GATT & CLIENTS
########################
CONFIG_BT_GATT_CLIENT=y
CONFIG_BT_GATT_DM=y
#CONFIG_BT_GATT_DM_DATA_PRINT=y
# Nordic UART Service client
#CONFIG_BT_NUS_CLIENT=y
########################
# SCANNING & CONNECTION MGMT
########################
CONFIG_BT_SCAN=y
CONFIG_BT_SCAN_FILTER_ENABLE=y
CONFIG_BT_SCAN_UUID_CNT=1
CONFIG_BT_SCAN_NAME_CNT=1
#CONFIG_BT_SCAN_AND_INITIATE_IN_PARALLEL=y
# Connection parameters (peripheral preference)
CONFIG_BT_GAP_AUTO_UPDATE_CONN_PARAMS=y
CONFIG_BT_PERIPHERAL_PREF_MIN_INT=12
CONFIG_BT_PERIPHERAL_PREF_MAX_INT=12
CONFIG_BT_PERIPHERAL_PREF_TIMEOUT=400
# Request security automatically for GATT
CONFIG_BT_GATT_AUTO_SEC_REQ=y
########################
# FLASH & NVS (FOR SETTINGS/BONDING)
########################
CONFIG_FLASH=y
CONFIG_SOC_FLASH_NRF=y
CONFIG_NRFX_NVMC=y
CONFIG_MPU_ALLOW_FLASH_WRITE=y
CONFIG_FLASH_PAGE_LAYOUT=y
CONFIG_FLASH_MAP=y
# NVS and settings backend
CONFIG_NVS=y
CONFIG_SETTINGS=y
CONFIG_SETTINGS_NVS=y
########################
# BLUETOOTH SECURITY / BONDING
########################
CONFIG_BT_BONDABLE=y
CONFIG_BT_SETTINGS=y # Store bonds in settings (flash) [[Exercise 2](https://academy.nordicsemi.com/courses/bluetooth-low-energy-fundamentals/lessons/lesson-5-bluetooth-le-security-fundamentals/topic/blefund-lesson-5-exercise-2/)]
CONFIG_BT_PRIVACY=n
#CONFIG_BT_RPA_TIMEOUT=900
########################
# GPIO / WDT / CLOCK
########################
CONFIG_GPIO=y
CONFIG_WATCHDOG=y
CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y
CONFIG_CLOCK_CONTROL_NRF_K32SRC_500PPM=y
########################
# LOGGING
########################
CONFIG_LOG=n
CONFIG_LOG_MODE_IMMEDIATE=y
CONFIG_USE_SEGGER_RTT=n
CONFIG_LOG_BACKEND_RTT=n
CONFIG_LOG_BACKEND_UART=n
CONFIG_LOG_PRINTK=n
CONFIG_BT_CONN_CHECK_NULL_BEFORE_CREATE=y
# Limit BT log noise (warning level)
CONFIG_BT_LOG_LEVEL_WRN=n
CONFIG_BT_CONN_LOG_LEVEL_WRN=n
CONFIG_BT_ISO_LOG_LEVEL_WRN=n
CONFIG_BT_HCI_DRIVER_LOG_LEVEL_WRN=n
########################
# DEBUG / OPTIMIZATION
########################
#CONFIG_DEBUG_OPTIMIZATIONS=y
#CONFIG_DEBUG_THREAD_INFO=y
#CONFIG_INIT_STACKS=y
# Bluetooth Security
CONFIG_BT_SMP=y
#CONFIG_BT_SIGNING=y
#CONFIG_BT_SMP_SC_ONLY=y
#CONFIG_BT_SMP_SC_PAIR_ONLY=y
CONFIG_SETTINGS_RUNTIME=y
CONFIG_BT_MAX_PAIRED=7
# Whitelist/Filter Accept List Support
CONFIG_BT_FILTER_ACCEPT_LIST=y
# Bond Management Service
#CONFIG_BT_BMS=y
#CONFIG_DK_LIBRARY=y
# Connection parameters
CONFIG_BT_MAX_CONN=7
CONFIG_BT_L2CAP_TX_BUF_COUNT=7
# Flash partitions (already present but ensure they exist)
CONFIG_PM_PARTITION_SIZE_SETTINGS_STORAGE=0x2000
# I2C Configuration
CONFIG_I2C=y
CONFIG_I2C_NRFX=y
# ADC Driver Configuration
CONFIG_ADC=y
CONFIG_ADC_NRFX_SAADC=y
CONFIG_BT_DATA_LEN_UPDATE=n
CONFIG_BT_PHY_UPDATE=n
CONFIG_BT_GATT_CACHING=y
CONFIG_BT_GATT_SERVICE_CHANGED=y
CONFIG_BT_GAP_PERIPHERAL_PREF_PARAMS=n
#CONFIG_BT_HCI_VS_EXT=n
CONFIG_BT_ASSERT=n
CONFIG_BT_CTLR_PRIVACY=n
CONFIG_BT_CTLR_PHY_2M=n
CONFIG_SIZE_OPTIMIZATIONS=y
CONFIG_MINIMAL_LIBC=y
CONFIG_LTO=y
CONFIG_ISR_TABLES_LOCAL_DECLARATION=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 for custom board
CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y
# Flash support (required for MCUboot / DFU)
CONFIG_FLASH=y
CONFIG_FLASH_PAGE_LAYOUT=y
CONFIG_FLASH_MAP=y
CONFIG_MCUMGR_TRANSPORT_BT=y
CONFIG_MCUMGR_TRANSPORT_BT_REASSEMBLY=y
# 🔐 add here
CONFIG_MCUMGR_TRANSPORT_BT_PERM_RW_AUTHEN=y
NRF LOGS
CODE_YYY (C3:CC:AC:9C:D2:13)
I 09:58:53.615 [Server] Server started
V 09:58:53.618 Heart Rate (0x180D)
- Heart Rate Measurement [N] (0x2A37)
Client Characteristic Configuration (0x2902)
- Body Sensor Location [R] (0x2A38)
- Heart Rate Control Point [W] (0x2A39)
Unknown Service (0000aaa0-0000-1000-8000-aabbccddeeff)
- Unknown Characteristic [N R] (0000aaa1-0000-1000-8000-aabbccddeeff)
Client Characteristic Configuration (0x2902)
Unknown Descriptor (0000aab0-0000-1000-8000-aabbccddeeff)
Characteristic User Description (0x2901)
Characteristic Presentation Format (0x2904)
- Unknown Characteristic [I W WNR] (0000aaa2-0000-1000-8000-aabbccddeeff)
Client Characteristic Configuration (0x2902)
User Data (0x181C)
- First Name [R W] (0x2A8A)
- Last Name [R W] (0x2A90)
- Gender [R W] (0x2A8C)
V 09:58:53.895 Connecting to C3:CC:AC:9C:D2:13...
D 09:58:53.895 gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
D 09:58:54.090 [Server callback] Connection state changed with status: 0 and new state: CONNECTED (2)
I 09:58:54.090 [Server] Device with address C3:CC:AC:9C:D2:13 connected
D 09:58:54.142 [Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
D 09:58:54.145 [Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
I 09:58:54.145 Connected to C3:CC:AC:9C:D2:13
V 09:58:54.147 Requesting new MTU...
D 09:58:54.147 gatt.requestMtu(517)
I 09:58:54.647 Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms)
I 09:58:59.875 MTU changed to: 247
D 09:58:59.876 wait(1600ms)
I 09:58:59.930 Connection parameters updated (interval: 30.0ms, latency: 0, timeout: 5000ms)
V 09:59:01.478 Discovering services...
D 09:59:01.478 gatt.discoverServices()
D 09:59:01.488 [Callback] Services discovered with status: 0
I 09:59:01.488 Services discovered
V 09:59:01.498 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)
Unknown Service (0000b000-4375-7274-204d-6667204c4c43)
- Unknown Characteristic [N] (0000b001-1212-efde-1523-785feabcd123)
Client Characteristic Configuration (0x2902)
- Unknown Characteristic [R] (0000b002-1212-efde-1523-785feabcd123)
- Unknown Characteristic [R W] (0000b003-1212-efde-1523-785feabcd123)
- Unknown Characteristic [W] (0000b004-1212-efde-1523-785feabcd123)
SMP Service (8d53dc1d-1db7-4cd3-868b-8a527460aa84)
- SMP Characteristic [N WNR] (da2e7828-fbce-4e01-ae9e-261174997c48)
Client Characteristic Configuration (0x2902)
D 09:59:01.498 gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true)
D 09:59:01.503 gatt.setCharacteristicNotification(0000b001-1212-efde-1523-785feabcd123, true)
V 09:59:05.834 Enabling indications for 00002a05-0000-1000-8000-00805f9b34fb
D 09:59:05.835 gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true)
D 09:59:05.839 gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x0200)
I 09:59:05.896 Data written to descr. 00002902-0000-1000-8000-00805f9b34fb, value: (0x) 02-00
A 09:59:05.896 "Indications enabled" sent
V 09:59:05.900 Indications enabled for 00002a05-0000-1000-8000-00805f9b34fb
V 09:59:09.943 Enabling notifications for 0000b001-1212-efde-1523-785feabcd123
D 09:59:09.943 gatt.setCharacteristicNotification(0000b001-1212-efde-1523-785feabcd123, true)
D 09:59:09.946 gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x0100)
I 09:59:10.006 Data written to descr. 00002902-0000-1000-8000-00805f9b34fb, value: (0x) 01-00
A 09:59:10.006 "Notifications enabled" sent
V 09:59:10.009 Notifications enabled for 0000b001-1212-efde-1523-785feabcd123
I 09:59:10.488 Notification received from 0000b001-1212-efde-1523-785feabcd123, value: (0x) 00-00-01-01
A 09:59:10.488 "(0x) 00-00-01-01" received
V 09:59:12.116 Enabling notifications for da2e7828-fbce-4e01-ae9e-261174997c48
D 09:59:12.116 gatt.setCharacteristicNotification(da2e7828-fbce-4e01-ae9e-261174997c48, true)
D 09:59:12.120 gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x0100)
I 09:59:12.196 Data written to descr. 00002902-0000-1000-8000-00805f9b34fb, value: (0x) 01-00
A 09:59:12.196 "Notifications enabled" sent
V 09:59:12.203 Notifications enabled for da2e7828-fbce-4e01-ae9e-261174997c48
V 09:59:17.084 [McuMgr] Connecting...
D 09:59:17.088 [McuMgr] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, LE 1M)
D 09:59:17.138 [McuMgr] [Callback] Connection state changed with status: 0 and new state: 2 (CONNECTED)
I 09:59:17.140 [McuMgr] Connected to C3:CC:AC:9C:D2:13
D 09:59:17.142 [McuMgr] wait(1600)
I 09:59:17.143 [McuMgr] MTU changed to: 247
V 09:59:18.747 [McuMgr] Discovering services...
D 09:59:18.754 [McuMgr] gatt.discoverServices()
I 09:59:18.792 [McuMgr] Services discovered
V 09:59:18.794 [McuMgr] Primary service found
V 09:59:18.803 [McuMgr] Requesting new MTU...
D 09:59:18.805 [McuMgr] gatt.requestMtu(498)
I 09:59:18.833 [McuMgr] MTU changed to: 247
D 09:59:18.835 [McuMgr] gatt.setCharacteristicNotification(da2e7828-fbce-4e01-ae9e-261174997c48, true)
V 09:59:18.838 [McuMgr] Enabling notifications for da2e7828-fbce-4e01-ae9e-261174997c48
D 09:59:18.848 [McuMgr] gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x01-00)
I 09:59:18.915 [McuMgr] Data written to descr. 00002902-0000-1000-8000-00805f9b34fb
V 09:59:18.919 [McuMgr] Waiting for value change...
V 09:59:18.922 [McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
D 09:59:18.925 [McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x000000010000FF06A0, WRITE COMMAND)
I 09:59:18.935 [McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I 09:59:18.982 [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 09:59:18.984 [McuMgr] Wait for value changed complete
A 09:59:18.988 [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 09:59:18.998 [McuMgr] SMP reassembly supported with buffer size: 2475 bytes and count: 4
V 09:59:19.000 [McuMgr] Requesting connection priority: HIGH (11.25–15ms, 0, 5s)...
D 09:59:19.001 [McuMgr] gatt.requestConnectionPriority(HIGH)
A 09:59:19.010 [McuMgr] Sending (9 bytes) Header (Version: 1, Op: 0, Flags: 0, Len: 1, Group: 0, Seq: 0, Command: 8) CBOR {}
V 09:59:19.206 [McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
D 09:59:19.210 [McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x0800000100000008A0, WRITE COMMAND)
I 09:59:19.237 [McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I 09:59:19.275 [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 09:59:19.278 [McuMgr] Received Header (Version: 1, Op: 1, Flags: 0, Len: 21, Group: 0, Seq: 0, Command: 8) CBOR {"bootloader":"MCUboot"}
A 09:59:19.296 [McuMgr] Sending (20 bytes) Header (Version: 1, Op: 0, Flags: 0, Len: 12, Group: 0, Seq: 1, Command: 8) CBOR {"query":"mode"}
V 09:59:19.299 [McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
D 09:59:19.300 [McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x0800000C00000108A1657175657279646D6F6465, WRITE COMMAND)
I 09:59:19.313 Connection parameters updated (interval: 15.0ms, latency: 0, timeout: 5000ms)
I 09:59:19.335 [McuMgr] Connection parameters updated (interval: 15.0ms, latency: 0, timeout: 5000ms)
I 09:59:19.337 [McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I 09:59:19.341 [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 09:59:19.344 [McuMgr] Received Header (Version: 1, Op: 1, Flags: 0, Len: 8, Group: 0, Seq: 1, Command: 8) CBOR {"mode":3}
A 09:59:19.363 [McuMgr] Sending (9 bytes) Header (Version: 1, Op: 0, Flags: 0, Len: 1, Group: 1, Seq: 2, Command: 0) CBOR {}
V 09:59:19.365 [McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
D 09:59:19.366 [McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x0800000100010200A0, WRITE COMMAND)
I 09:59:19.373 [McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I 09:59:19.401 [McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 09-00-00-F6-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-31-2E-36-64-68-61-73-68-58-20-15-C2-FF-B0-05-A8-89-D1-90-D9-E7-2D-4C-37-17-8C-D4-C5-79-97-CD-19-3C-72-50-88-51-09-A5-85-D8-9C-68-62-6F-6F-74-61-62-6C-65-F5-67-70-65-6E-64-69-6E-67-F4-69-63-6F-6E-66-69-72-6D-65-64-F5-66-61-63-74-69-76-65-F5-69-70-65-72-6D-61-6E-65-6E-74-F4-FF-BF-64-73-6C-6F-74-01-67-76-65-72-73-69-6F-6E-65-30-2E-30-2E-30-64-68-61-73-68-58-20-DB-48-AC-C9-FA-4E-54-BA-30-83-8C-C8-F1-A7-2C-FD-72-14-63-6B-DC-B5-DD-B9-17-E4-FB-B4-8C-63-E5-6B-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
I 09:59:19.404 [McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 69-74-53-74-61-74-75-73-00-FF
A 09:59:19.407 [McuMgr] Received Header (Version: 1, Op: 1, Flags: 0, Len: 246, Group: 1, Seq: 2, Command: 0) CBOR {"images":[{"slot":0,"version":"1.0.1.6","hash":"FcL/sAWoidGQ2ectTDcXjNTFeZfNGTxyUIhRCaWF2Jw=","bootable":true,"pending":false,"confirmed":true,"active":true,"permanent":false},{"slot":1,"version":"0.0.0","hash":"20isyfpOVLowg4zI8acs/XIUY2vctd25F+T7tIxj5Ws=","bootable":true,"pending":true,"confirmed":false,"active":false,"permanent":false}],"splitStatus":0}
V 09:59:19.416 [McuMgr] New state: RESET
A 09:59:19.431 [McuMgr] Sending (9 bytes) Header (Version: 1, Op: 2, Flags: 0, Len: 1, Group: 0, Seq: 3, Command: 5) CBOR {}
V 09:59:19.433 [McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
D 09:59:19.435 [McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48, value=0x0A00000100000305A0, WRITE COMMAND)
I 09:59:19.463 [McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
I 09:59:19.479 [McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 0B-00-00-02-00-00-03-05-BF-FF
A 09:59:19.482 [McuMgr] Received Header (Version: 1, Op: 3, Flags: 0, Len: 2, Group: 0, Seq: 3, Command: 5) CBOR {}
D 09:59:24.747 [Server callback] Connection state changed with status: 0 and new state: DISCONNECTED (0)
I 09:59:24.747 [Server] Device disconnected
D 09:59:24.769 [Callback] Connection state changed with status: 8 and new state: DISCONNECTED (0)
E 09:59:24.769 Error 8 (0x8): GATT CONN TIMEOUT
I 09:59:24.769 Disconnected
D 09:59:24.803 [McuMgr] [Callback] Connection state changed with status: 8 and new state: 0 (DISCONNECTED)
W 09:59:24.806 [McuMgr] Error: (0x8): GATT CONN TIMEOUT
I 09:59:24.811 [McuMgr] Disconnected
D 09:59:24.838 [McuMgr] gatt.close()
D 09:59:24.854 [Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED
V 09:59:29.495 [McuMgr] Uploading firmware...
D 09:59:29.809 [Server callback] Connection state changed with status: 0 and new state: CONNECTED (2)
I 09:59:29.809 [Server] Device with address C3:CC:AC:9C:D2:13 connected
D 09:59:29.860 [Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
![]() |
|
