Hello,
I have the following scenario: An Android Phone is playing the master role and two nRF52 custom boards are connected to the master as peripherals. Both peripherals are sending IMU data as notifications to the Android Master at 50 Hz. The same software is flashed on both peripheral boards (even the same BT Name). S132 and SDK15 is used.
Everything works great, exept that the central device receives the notifications with different frequencies. Data from the second sensor is received slower than the first.
On the Android site I have two BluetoothGattCallbacks for each sensor and a separate onCharacteristicChanged method is called when a new notification is received from a sensor. The sensor data frame is written to a separate blocking Queue for each Sensor: Queue0 and Queue1. A separate Thread is reading both Queues sequentially and waits if a queue is empty until at least one sensor frame is written. Thus, we allign the data from both sensors, so that the frame IDs from both sensors match.
However, one of the Queues progressively accumulates more sensor frames, since the thread is blocking on the other queue and waiting for a sensor frame from the other sensor. This means that we receive the notifications with different frequencies. Below is a Plot of the sizes of both Queues over the time.

Is it the non deterministic nature of BLE that makes synchronous reception of notifications not possible ? Do we have to set different connection parameters for each sensor connection, so that no collisions occur ? Currently, we test with PHY 2 (Android 8.1 on Samsung) and Connection Interval from 15 ms.
Any help is appreciated
Thanks
