BLE, iOS and num. of packets per conn. interval

Hi,

We are developing a product that involves a BLE peripheral device, and iOS. We're trying to maximise BLE data throughput to it's absolute highest I can get with an iOS app.

The issue I have currently is to do with iOS. I developed a 'ble throughput benchmark test program' for our peripheral device.

When connecting to some android devices I can achieve 1200-1300kbps throughput which is great. When I connect to an iPhone X running iOS15, the throughput slows down to about 600kbps. I used a BLE sniffer device and I noticed that, this is because, whilst with android, we can pretty much fill up the entire connection event with packets. But on iOS it seems to limit it to about 5 response packets per connection event. Even at the lowest conn. interval iOS supports (15ms) this leaves a lot of empty time between events, which slices my throughput in half.

I was wondering if anyone had experience working with iOS and knows any 'tricks' that could be used to get it to send more packets per conn. event and/or maximise throughput. 

BLE, iOS and num. of packets per conn. interval
 
 
Q