I need to understand how a multi-link configuration can achieve real-time transmission - its all about latency.
In my nRF52840 application I have several body-worn Inertial Measurement Units (IMU's) - the Peripherals, each taking turn in a "Round Robin" manner to send a data sample in real-time to a PC Dongle - the Central. For this app the sample rate is 180sps so the sample period is therefore 5.56ms and all IMU's ideally transmit one 26 byte sample to the Dongle within this period - so Data Length Extension has been enabled to ensure that all 26 bytes fit into the ATT Payload of one frame. To ensure this 180sps sample rate and allow the full capacity of up to 20 IMU's (peripherals) I am using the 2Mbps PHY.
Because the minimum Connection Interval is 7.5ms the 5.56ms sample rate cannot consistently be met in real-time, however, the application can tolerate a few sample periods of latency - say 27.5ms (22 units of 1.25ms) and so I am setting the Connection Interval to 27.5ms and packing five 26 byte samples into each transmission - this results in an average sample period of 5.5ms but introduces latency - the most recently collected sample is sent by the IMU "on time", the one collected before this has a 5.5ms delay, ... and the 5th sample in the frame arrives at the Central 27.5ms "late" but that is ok for this app, but no more latency than that please!. Of course my MTU is set to allow one frame to accommodate all 5 samples in one single transmission.
The multi-link Application Question
If I have say 20 IMU's (Peripherals) transmitting one-by-one (#1 sends its frame, then #2, then #3..., then #20, repeat - #1, then #2, then #3, .... and so on) to the Dongle (Central),
From my understanding, this consideration of how multi-link works with Connection Intervals determines if real-time data transmission is feasible. If (1) applies then it is not, if (2) applies then it generally is. Can somebody please shed light on this question. Does Nordic Semi have any written documentation that can answer the question? Does the SDK support the use of multiple Peripherals transmitting within each Connection Interval?
Many thanks in advance !!!
From my understanding, there are two consepts that needs to be distinguised: connection interval and "connection event length"
Connection interval: how often one device can transmit data
"Connection event length": the time it takes for each device to transmit data (I'm not sure if "connection event length" is the correct name)
Depending on the connection interval used, there can be multiple "connection events" (for different device) within on connection interval.
To get a better understanding, I would recommend you to read the Scheduling chapter in the softdevice specification.