First about my setup: custom devices with NRF52832 chips (SoftDevice 132 v.4.0.2), android smartphones Nexus 5x and 6p.
I'm trying to connect as many BLE devices (peripherals) as it is possible to a smartphone (central) within the fixed connection interval of 30 ms. The GAP event length is set to 2 (in 1.25 => 2.5ms) for each BLE device. Therefore the theoretical amount of maximum central links with this CI is 12 (2.5 *12 = 30). So here is what I saw using Nexus 5x.
D0 and D1 - radio ON signals of first and second BLE devices
The event length between two central links is set to 2.5 ms - as I expected.
After that I tried with Nexus 6p:
The event length changed to 3.7 (3.75) ms.
Is there any way to overcome this problem or it will always vary on different smartphones?
Note that you can't set the GAP event length using Android BLE stack.
What exactly do you mean with GAP event length? Do you mean Connection Event length for the Link Layer? How exactly do you set it? Are you running the smartphone as master or slave?
Sorry, that it isn't that detailed described. Yes, I meant Connection Event length for the link layer. Smartphone is master (central) and ble devices are slaves (peripherals). I will edit the question.
How do you set the Connection Event length? Have you compiled a custom version of the Android source code and changed the parameter here (android.googlesource.com/.../btm_ble_bgconn.cc ) and here android.googlesource.com/.../l2c_ble.cc ?
I have set connection event length only for BLE devices and I didn't changed it in Android code. Since Ble is still for me kind of a Blackbox, I assumed that connection event length on smartphone would be automatically adapted to connection event length on devices.
I'm not sure I follow... Exactly where in your code do you "set connection event length"? And you are not meaning Connection Interval here? Or are you talking about Nordic's "connection bandwidth"? (devzone.nordicsemi.com/.../)