Arm Mbed OS support forum

BLE: Cordio Peripheral - Multiple Central Connections?

I am writing some integration tests for a BLE UARTService using the mbed-os-bluetooth-integration-testsuite.

I am now writing tests where multiple clients are connected to the GattServer hosting the UARTService to test simultaneous reads/writes.

I’m encountering an issue where after the first GattClient connects (as a central, ie: it initiates the connection to the DUT) the second GattClient that attempts to connect is not able to until the first connection is terminated.

Since Cordio is BLE5+ compliant, shouldn’t multiple central connections to one peripheral be supported? My understanding is that this extension to BLE was introduced in BLE4.2

I have the DUT (peripheral) starting to advertise after both disconnection and connection. How can multiple central to peripheral connections be achieved in Mbed + Cordio?

This seems to have helped:

Instead of starting advertisement upon connections/disconnections you must restart advertisement when advertisement ends: