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

BLE4 transfer speed slower on iPhone8/X than 5/6/7.

Hello-

Recently, we optimized our BLE4 transfer settings. With the same device, firmware, and payload, we get better transfer rates on iPhone5,6,7 than iPhone 8/X. On all systems the parameter settings requested by peripheral are accepted by iPhone.

Has anyone seen this problem? I am aware that BLE5 supports "data length extension" and is capable of potentially much higher transfer rates, but this would require (for us) an SDK upgrade and some re-architecting, so I wanted to exhaust the BLE4 options first.

On iPhone5S,6, and 7 we get 6-7KB/s.

On iPhone8/X and variants we max out at ~2.7KB/s.

The relevant current transfer speed settings are as follows:

nr52

SDK is 14.2.0, SD132

gap_conn_params.min_conn_interval = MSEC_TO_UNITS(15, UNIT_1_25_MS); /**< Minimum acceptable connection interval - how fast peripheral/central exchange data.*/;
gap_conn_params.max_conn_interval = MSEC_TO_UNITS(15, UNIT_1_25_MS); /**< Maximum acceptable connection interval (1 second). */
NRF_SDH_BLE_GAP_EVENT_LENGTH 24 //this is 30ms

I believe the GAP param change request is acknowledged on both sets of phones because in all cases my BLE handler hits this event:

case BLE_GAP_EVT_CONN_PARAM_UPDATE:

//and in this message I check (and report over UART) this result:

p_ble_evt->evt.gap_evt.params.conn_param_update.conn_params.max_conn_interval * 125 / 100);

This reports as 15ms for both iPhone5/6/7 where I see the speedboost and on 8/X, where I do not.

Parents
  • I think the best is to get the sniffer trace for  iPhone7  and iPhone8/X and compare the procedures and their differences. Most of the time it is the phone that is deciding on the connection parameters. The faster connection interval has always been meant for HID devices, so in the later versions of some phones, they might have limited the number of packets you can send at faster interval. Nevertheless, these all are theories, and it should all be revealed once you do a detailed analysis of the sniffer traces between those two phones.

Reply
  • I think the best is to get the sniffer trace for  iPhone7  and iPhone8/X and compare the procedures and their differences. Most of the time it is the phone that is deciding on the connection parameters. The faster connection interval has always been meant for HID devices, so in the later versions of some phones, they might have limited the number of packets you can send at faster interval. Nevertheless, these all are theories, and it should all be revealed once you do a detailed analysis of the sniffer traces between those two phones.

Children
No Data
Related