This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Central: multiple connection at the same time

Hi,

I'm using S130 with PCA10028 and I would like to connect my central device to multiple peripheral at the same time.

According to my understanding, the only way I have to achieve this goal is to use whitelist. However, once the first device acknowledge my connect, scanning seems to stop and no more connections are done.

Is my understanding correct ? and if yes why ? Where come from this limitation ? (SDK, Bluetooth, hardware...)

Does I have any way to continue connection on other devices without recalling sd_ble_gap_connect again ?

Thanks for your support

  • How would you achieve this with a whitelist? If you use whitelist only advertising reports from the devices in it will be received.

  • I think you are talking about sd_ble_gap_scan_start. however, I'm talking about sd_ble_gap_connect which can be use in 2 way:

    • Either provide a peer address and it will connect to this specific peer address
    • or you can provide a whitelist and it will connect to the first device found in this list.

    I didn't find in the documentation the exact behavior of this function when we provide a whitelist (maybe I missed something) but I noticed this function will connect to the first device found then stop everything. What I expected when I found this function is to call sd_ble_gap_connect 1 time and receive many BLE_GAP_EVT_CONNECTED events for every devices specified in the whitelist.

    So, I just want to make sure if my understanding is correct and I would like to know if it's a BLE behavior or Nordic behavior ?

  • This is just how it is implemented in the SoftDevice, it will connect to the first device found in the whitelist then it will stop scanning. Then you can for example call sd_ble_gap_connect() again when you get the BLE_GAP_EVT_CONNECTED event.

    There is no limitation on this, it could have been implemented the way you describe, but it is not. I will add this as a feature request/improvement internally.

  • Great, thank you for your reply.

    Just one more question, regarding connect behavior, I notice it's not possible to connect to 2 devices in the same time. We have to wait for previous CONNECT ACK before requesting a new connect. Is it also a Nordic behavior ? Or a BLE behavior ?

  • When the central receives an advertising packet from one of the devices in the whitelist, it will send a connection request. Then there are certain timings that needs to be followed when before the peripheral answers. For more information see Vol. 6, Part B, Section 4.5.3 in the Bluetooth Core spec 4.2. The timings depend on the connection interval, but normally you have a short connection interval on initial connection. So the connection should be established quickly compared to the advertising interval of the second device you want to connect to. My point is that it shouldn't be necessary to send another connection request before the previous connection is established.

Related