Latency of BLE GATT Read Value Operation
The BLE central and peripheral exchange data at regular connection intervals. The connection interval is controlled by the central device. Although the peripheral can request the intervals it prefers, it's up to the central to decide, as it may be managing multiple peripheral connections at once.
If the central is a smartphone, you're limited to what the smartphone/OS allows. Android can go as fast as 7.5 mSec, while iOS prefers nothing faster than 20 mSec. If you're writing the firmware for the central (e.g., your Laird BL654 dongle) and the peripheral, then you can go faster but you're eventually limited by the length of the BLE transmission (2 - 3 mSec). You might get down to a 5 mSec connection interval if no other activities interfere.
Even knowing the connection interval, your latency will vary. It's like catching a bus that runs at regular intervals. If you get lucky and a request occurs right before a connection interval, you step right on the bus, and get back the result in that same connection, with latency ~3 mSec. If, instead you just barely &quot;miss the bus&quot;, you have to wait for the next one, so latency would be 3 mSec plus the full connection interval. On average, you'll see about 1/2 the connection interval for latency.
Also, you talked about the peripheral requesting data from the central. Usually it's the other way around. If the request really is originating from the peripheral, I think you'll always have to wait for the next connection to get the result from the central. So average latency would be 1.5x the connection interval in this configuration.
Hope this helps you!