This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2642R: Scanning multiple peripherals with low connection interval

Part Number: CC2642R

Hi All
I'm following up this previous thread https://e2e.ti.com/support/wireless-connectivity/bluetooth/f/538/t/959539.

My app requires latency as low as possible, as it exchanges MIDI over BLE, in addition to this, my central should be able to connect to 4 peripherals at the same time.
In order to follow my latency specification, the central is set with conn interval min 7.5ms and conn interval max 15ms, peripheral latency = 0

Any connection update from the peripheral is rejected, and central sends connection update requests to peripherals.

I played with scan interval/window/duration in order to find the best strategy to scan new peripherals while already in connection with other peripherals.
What I found is as follow :

I'm using scan window = 2.5ms, scan interval = 5ms, scan duration of 2,5sec, if no peripheral is found, and if there is room to add one more peripheral, the scan is restarted.
I can connect easily to 4 peripherals when they are all advertising while the central is switched on.
Once all 4 connections are active, if I switch off one peripheral, then switch on again, my central has some difficulties to find it again.

What I observe in the above situation is, sometimes the MR_EVT_SCAN_DISABLED is not received after the scan duration has passed, or it is received much later than expected.
Any idea what could cause this issue ?

Also, in my special case (keep latency as low as possible, support up to 4 peripherals), what would be the best strategy regarding scan interval/window/duration ?
Thanks to all.
 

  • Hi Jerome,

    To begin, it would be interesting for you to see how much free time the radio has. To do so you can map the RF output to a pin (please see the debugging guide for details).

    jerome d. said:
    What I observe in the above situation is, sometimes the MR_EVT_SCAN_DISABLED is not received after the scan duration has passed, or it is received much later than expected.
    Any idea what could cause this issue ?

    This is probably because the stack does not manage to schedule the scan command (because the radio is not available)

    jerome d. said:
    Also, in my special case (keep latency as low as possible, support up to 4 peripherals), what would be the best strategy regarding scan interval/window/duration ?

    What is the advertisement interval on the peripheral side? Could you try to decrease it?

    Best regards,