Hey, I'm working on a real-time body motion capture project and using nRF52832 as BLE MCU. In the system I have 3 IMU sensors to transmit sensor data to an Android device (central device), each sensor packet is 20 Bytes long.
My goal is to achieve >= 30Hz overall pose refresh rate, i.e. transmission of 3 packets from the 3 IMU sensors should be completed within 33ms. Theoretically this is possible since the connection interval can be as low as 7.5ms. But I'm wondering is there a way to guarantee the 30Hz rate? I'm asking this because there multiple connections to the central device, while Android does not always schedule notification events in the same order.
Another related question, in the multilink scenario how does the central device handle multiple notifications received at the same time slot from different peripherals? If 3 peripherals sending notify to the central simultaneously, only the one whose connection interval is active will be correctly received. Is this understanding correct?
Instead of notify I'm also thinking about using read, using which the Android device can send read request every 7.5ms to each of the sensors. But in this case the read response from sensor may not always be in time according to https://devzone.nordicsemi.com/f/nordic-q-a/25036/why-a-ble-read-takes-significantly-longer-than-the-connection-interval
I'm quite new to BLE and would highly appreciate if anyone could share some tips to lower latency in multiple-connection scenario.