iOS nRF Connect App is getting disconnect frequently. Reason: BT_HCI_ERR_CONN_TIMEOUT: 08

My configuration is: nRF5340, NCS v2.1.0, nRF Connect app on Android and iOS

I am using the latest available nRF Connect application on Android and iOS on the respective App store.

In my application communication is happening over SMP Service-characteristics. I am not facing any issues while communicating with the Android-based nRF Connect application. Everything is working as expected.

But with iOS, I am facing the issue of BT_HCI_ERR_CONN_TIMEOUT: 0x08.

It is not like it is not working at all, but after some partial communication, it frequently disconnects for every request after a few seconds.

I tried changing the below definitions as well:

CONFIG_MCUMGR_SMP_BT_CONN_PARAM_CONTROL_MIN_INT=12
CONFIG_MCUMGR_SMP_BT_CONN_PARAM_CONTROL_MAX_INT=24
CONFIG_MCUMGR_SMP_BT_CONN_PARAM_CONTROL_LATENCY=0
CONFIG_MCUMGR_SMP_BT_CONN_PARAM_CONTROL_TIMEOUT=500
Please let me know if these values are correct or not.
Following it the BLE_DEBUG logs I captured:
D: conn 0x20008080 handle 0x0012
D: chan 0x20030680 flags 4 code 0x1b
D: code 0x1b
D: conn 0x20008080 cid 4 len 21
D: conn handle 0 buf len 25 cb 0x990ad user_data 0x20017a7c
D: handle 0 ref 4 -> 3
D: handle 0 ref 3 -> 2
D: handle 0 ref 2 -> 1
D: count 3
D: ev->state 0
D: ev->state 0
D: ev->state 4
D: conn 0x20008080
D: conn 0x20008080 buf 0x20032f98 len 25
D: conn 0x20008080 buf 0x20032f98 len 25 flags 0x02
D: buf 0x20032f98 len 29 type 2
D: buf 0x20032f98 type 2 len 29
D: Final HCI buffer:
D: 02 00 00 19 00 15 00 04 |........
D: 00 1b 12 00 03 00 00 0a |........
D: 00 00 00 00 bf 61 72 65 |.....are
D: 48 65 6c 6c 6f ff       |Hello.  
D: 
D: Adding conn 0x20008080 to poll list
D: Calling k_poll with 3 events
D: RPMsg data:
D: 04 13 05 01 00 00 01 00 |........
D: len 5
D: Calling bt_recv(0x20031a60)
D: buf 0x20031a60 len 7
D: num_handles 1
D: handle 0 count 1
D: handle 0 ref 1 -> 2
D: handle 0 ref 2 -> 1
D: RX buf payload:
D: a8 70 04 20 45          |.p. E   
D: conn 0x20008080
D: conn 0x20008080
D: tx 0x200179c4 cb 0x990ad user_data 0x20017a7c
D: conn 0x20008080 chan 0x20030684
D: chan 0x20030680
D: TX Complete chan 0x20030680 CID 0x0004
I: BLE-OTA: 17%
D: conn 0x20008080 handle 0x0012
D: chan 0x20030680 flags 4 code 0x1b
D: code 0x1b
D: conn 0x20008080 cid 4 len 17
D: conn handle 0 buf len 21 cb 0x990ad user_data 0x20017a90
D: count 3
D: ev->state 0
D: ev->state 0
D: ev->state 4
D: conn 0x20008080
D: conn 0x20008080 buf 0x20032f98 len 21
D: conn 0x20008080 buf 0x20032f98 len 21 flags 0x02
D: buf 0x20032f98 len 25 type 2
D: buf 0x20032f98 type 2 len 25
D: Final HCI buffer:
D: 02 00 00 15 00 11 00 04 |........
D: 00 1b 12 00 ac 20 00 09 |..... ..
D: 04 43 11 00 01 00 50 e6 |.C....P.
D: cc 57                   |.W      
D: 
D: Adding conn 0x20008080 to poll list
D: Calling k_poll with 3 events
D: RPMsg data:
D: 04 05 04 00 00 00 08    |....... 
D: len 4
D: Calling bt_recv(0x200327f4)
D: buf 0x200327f4 len 6
D: status 0x00 handle 0 reason 0x08
D: handle 0 ref 1 -> 2
D: connected -> disconnect-complete
D: TX Complete chan 0x20030680 CID 0x0004
D: handle 0 ref 2 -> 1
D: RX buf payload:
D: 05 04 00 00 00 08       |......  
D: Getting net_buf from queue
D: buf 0x200327f4 type 1 len 6
D: event 0x05
D: status 0x00 handle 0 reason 0x08
D: handle 0 ref 1 -> 2
D: disconnect-complete -> disconnected
D: conn 0x20008080
D: handle 0 ref 2 -> 1
D: count 3
D: ev->state 0
D: ev->state 1
D: ev->state 0
D: 
D: Calling k_poll with 2 events
D: conn 0x20008080
D: conn 0x20008080 chan 0x200179d4
D: ch 0x200179d4 cid 0x0005
D: conn 0x20008080 chan 0x20017b04
D: conn 0x20008080 chan 0x20030684
D: chan 0x20030684 cid 0x0004
D: chan 0x20030680
D: conn 0x20008080
D: id: 0, addr: 60:35:DD:85:D7:2E (random)
D: ccc 0x20002654 reseted
D: ccc 0x20002680 reseted
D: chan 0x20030680
I: BLE Disconnected
D: handle 0 ref 1 -> 0
D: ED:F9:3D:90:D5:32
D: opcode 0x2006 param_len 15
D: buf 0x20032bb8
D: buf 0x20032bb8 opcode 0x2006 len 18
D: count 2
D: ev->state 4
D: calling net_buf_get
D: calling sem_take_wait
D: Sending command 0x2006 (buf 0x20032bb8) to driver
D: buf 0x20032bb8 len 18 type 0
D: buf 0x20032bb8 type 0 len 18
D: Final HCI buffer:
D: 01 06 20 0f 90 01 f4 01 |.. .....
D: 00 01 00 00 00 00 00 00 |........
D: 00 07 00                |...     
D: ev->state 0
D: RPMsg data:
D: 04 0e 04 01 06 20 00    |..... . 
D: len 4
D: Calling bt_recv(0x20032bb8)
D: buf 0x20032bb8 len 6
D: opcode 0x2006
D: opcode 0x2006 status 0x00 buf 0x20032bb8
D: RX buf payload:
D: 00                      |.       
D: 

Related