This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

LMP Responese Timeout - nRF52840 S140v6.1.0 SDK 15.2.0

Hello everybody,

I'm using nRF5280 (Laird BL654) with SoftDeveice S140v6.1.0 and SDK 15.2.0 with a modified version of the blinky peripheral example.

I've changed NRF_SDH_BLE_GATT_MAX_MTU_SIZE to 138 and NRF_SDH_BLE_GAP_DATA_LENGTH to 142

After connecting to this chip with a Samsung Galaxy S7 with Android 8.0.0 the chip disconnects with reason 0x22 (LMP Response Timeout).

I've attached the debug log from SES.


Galaxy S7 Android 8.0.0  MTU 138 Bytes

<debug> nrf_sdh_ble: RAM starts at 0x20002768
<info> app: Blinky example started.
<debug> nrf_sdh_ble: BLE event: 0x10.
<debug> nrf_ble_gatt: Requesting to update ATT MTU to 138 bytes on connection 0x0.
<debug> nrf_ble_gatt: Updating data length to 142 on connection 0x0.
<info> app: Connected
<debug> nrf_sdh_ble: BLE event: 0x3A.
<debug> nrf_ble_gatt: ATT MTU updated to 138 bytes on connection 0x0 (response).
<debug> nrf_sdh_ble: BLE event: 0x12.
<debug> nrf_sdh_ble: BLE event: 0x12.
<debug> nrf_sdh_ble: BLE event: 0x12.
<debug> nrf_sdh_ble: BLE event: 0x11.
<info> app: Disconnected reason: 0x22

This problem occures only with this specific phone and if the MTU is larger than 23.

For example this is the debug log of a connection with a Galaxy S9 with Android 9.0.0 and an MTU of 138.

alaxy S9 Android 9.0.0 MTU 138 Bytes

<debug> nrf_sdh_ble: RAM starts at 0x20002768
<info> app: Blinky example started.
<debug> nrf_sdh_ble: BLE event: 0x10.
<debug> nrf_ble_gatt: Requesting to update ATT MTU to 138 bytes on connection 0x0.
<debug> nrf_ble_gatt: Updating data length to 142 on connection 0x0.
<info> app: Connected
<debug> nrf_sdh_ble: BLE event: 0x3A.
<debug> nrf_ble_gatt: ATT MTU updated to 138 bytes on connection 0x0 (response).
<debug> nrf_sdh_ble: BLE event: 0x24.
<debug> nrf_ble_gatt: Data length updated to 142 on connection 0x0.
<debug> nrf_ble_gatt: max_rx_octets: 27
<debug> nrf_ble_gatt: max_tx_octets: 142
<debug> nrf_ble_gatt: max_rx_time: 328
<debug> nrf_ble_gatt: max_tx_time: 2120
<debug> nrf_sdh_ble: BLE event: 0x12.
<debug> nrf_sdh_ble: BLE event: 0x23.
<debug> nrf_ble_gatt: Peer on connection 0x0 requested a data length of 27 bytes.
<debug> nrf_ble_gatt: Updating data length to 27 on connection 0x0.
<debug> nrf_sdh_ble: BLE event: 0x24.
<debug> nrf_ble_gatt: Data length updated to 27 on connection 0x0.
<debug> nrf_ble_gatt: max_rx_octets: 27
<debug> nrf_ble_gatt: max_tx_octets: 27
<debug> nrf_ble_gatt: max_rx_time: 328
<debug> nrf_ble_gatt: max_tx_time: 2120
<debug> nrf_sdh_ble: BLE event: 0x12.
<debug> nrf_sdh_ble: BLE event: 0x12.

Related