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

Connection parameters update failed, LMP TIMEOUT

Hi,

i am working on a bluetooth application with the nRF52832. When i try to connect a Samsung Galaxy S8 (Android 8.0) via nRF Connect, i get a LMP TIMEOUT error after 40 seconds (see LOG1). I do not get the error with a BQ Aquaris X5 Plus (Android 7.1.1) and Xiaomi Mi A1 (Android 8.0.0) (see LOG2). With a Samsung Galaxy A3 2017 (Android 7.0) i cant connect to the nRF52832 at all (Error 133 (0x85): GATT Error).

The example ble_app_hrs from the SDK however works with all devices.

I already tried to use different connection parameters without success.

I am using SDK 14.0.0 with Softdevice 5.0.0.

LOG1:
I    10:58:01.256    Connected to D0:84:A2:77:D7:EB
I    10:58:01.660    Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms)
I    10:58:02.753    Services discovered
W    10:58:41.126    Connection parameters update failed with status 34 (interval: 7.5ms, latency: 0, timeout: 5000ms)
E    10:58:41.127    Error 34 (0x22): GATT CONN LMP TIMEOUT
D    10:58:41.139    [Callback] Connection state changed with status: 34 and new state: DISCONNECTED (0)
E    10:58:41.140    Error 34 (0x22): GATT CONN LMP TIMEOUT
I    10:58:41.140    Disconnected

LOG2:
I    13:48:21.941    Connected to D0:84:A2:77:D7:EB
I    13:48:22.423    Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms)
I    13:48:23.554    Services discovered
I    13:48:23.596    Connection parameters updated (interval: 48.75ms, latency: 0, timeout: 5000ms)
I    13:48:27.201    Connection parameters updated (interval: 30.0ms, latency: 0, timeout: 3200ms)

Does anyone know how to fix the connection issues with the Samsung devices?

Thanks,

Andreas

Parents
  • I fixed this problem in my firmware by responding to the BLE_GAP_EVT_PHY_UPDATE_REQUEST message sent to my on_ble_evt handler.

          case BLE_GAP_EVT_PHY_UPDATE_REQUEST:
          {
              ble_gap_phys_t const phys =
              {
                  .tx_phys = BLE_GAP_PHY_AUTO,
                  .rx_phys = BLE_GAP_PHY_AUTO,
              };
              ret_code_t err = sd_ble_gap_phy_update(pEvent->evt.gap_evt.conn_handle, &phys);
              APP_ERROR_CHECK(err);
              break;
          } 

    I had a Google Pixel 3A XL running Android 9, and every 30 seconds it would time out with the same complaints yours had.

Reply
  • I fixed this problem in my firmware by responding to the BLE_GAP_EVT_PHY_UPDATE_REQUEST message sent to my on_ble_evt handler.

          case BLE_GAP_EVT_PHY_UPDATE_REQUEST:
          {
              ble_gap_phys_t const phys =
              {
                  .tx_phys = BLE_GAP_PHY_AUTO,
                  .rx_phys = BLE_GAP_PHY_AUTO,
              };
              ret_code_t err = sd_ble_gap_phy_update(pEvent->evt.gap_evt.conn_handle, &phys);
              APP_ERROR_CHECK(err);
              break;
          } 

    I had a Google Pixel 3A XL running Android 9, and every 30 seconds it would time out with the same complaints yours had.

Children
No Data
Related