Hi,
In my current project based on SDK 15.3 and sd140, I am using nrf52840 in both peripheral and central devices. I need to be able to maintain 10 concurrent connections and transfer multi KB sensory data over encrypted NUS. So far the connection and transfer works great for all 10 connections.
The biggest hurdle that I am trying to tackle is some unexplained delay (I am sure someone who reads this can explain) after BLE_GAP_EVT_LESC_DHKEY_REQUEST is received by the Peripheral, depending on the number of connections on the Central side, a significant delay can be injected before the Peripheral receives BLE_GAP_EVT_CONN_SEC_UPDATE (~900 ms per connection). I do see that the Peripheral immediately responds with sd_ble_gap_lesc_dhkey_reply(...) but then after that there is a period of inactivity (900ms * connections).
Ultimately the secure connection succeeds and the pair start their data exchange. However, this delay causes the Peripheral to consume its precious battery, which will become worse as more devices attach. The sequence of events received in the Peripheral side is exactly as depicted in
nRF52 Series > SoftDevices > S140 SoftDevice > S140 SoftDevice v6.1.0 API > API Reference > Generic Access Profile (GAP) > Message Sequence Charts > Peripheral Security Procedures > Peripheral LESC Pairing (Bonding: Passkey Entry, Peripheral Displays)
Any feedback would be greatly appreciated.
Cheers,