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

Minimum connection interval

Hi all,

Does in any chip with some constellation (different SD) the device allows less than 7.5ms for the connection interval? Or is this value the absolute minimum?

  • Hi,

    The 7.5ms limit is defined by the Bluetooth Specification. From the BLUETOOTH SPECIFICATION Version 5.0 | Vol 6, Part B (page 2683):

    The connInterval shall be a multiple of 1.25 ms in the range of 7.5 ms to 4.0 s.

  • I have seen some chips that can achieve less and that is why I was asking. Just please edit the answer to be page 2638, because there is where is the quote ;)

  • Yes, the nRF5 series chips can achieve much lower latency than 7.5 ms. It's the BLE Specification that set's this limit. If you go proprietary(e.g. use ESB) you can achieve latency down to at least 0.5 ms.

  • Thank you Sigurd, Can you give my information where I can find this information (page or file)? I want to check all the possibilities for my project.

  • For your reference you can find the relevant Radio timing numbers in the spec, along with details of the Transmit sequence and Receive sequence.

    In the best case the latency of sending or receiving a short package will be in the order of 50-60 us (nRF52). This is essentially the sum of TX radio ramp-up time, TX chain delay, RX chain delay and the time it takes to transmit the payload and overhead (9 bytes) at 2 Mbps.

    Let’s say you want a 32 byte user payload (approx 9 bytes overhead depending on setting), and 2 MBit on-air datarate, the latency of a successful transfer is approx:

    Ttx = Tsettling+ (41 bytes * 8) / 2Mbit = 130 + 164 = 294 us

    Trx = Tsettling + 9 bytes * 8 / 2Mbit = 130 + 36 = 166 us

    Ttotal = Ttx + Trx = ~ 460 us for the nRF51.

    Note that the nRF52 radio has a "fast ramp-up time" feature. This enables the radio to go into either RX or TX in ~40 us, compared to 130 us in the nRF51.

    So with nRF52 in both ends on the link, you get Ttotal = 204 + 76 = ~280 us for a 32 byte user payload.

    Note that this calculation relies on a perfect link, so some data will occasionally be lost on air with a real-life application. There will always be some re-transmissions. You will also see that the above number may vary depending on CPU load.

    In order to realize this link there are a few options:

    1. Create your proprietary protocol from scratch. This does not have to be very complicated for a simple protocol. The Radio Transmitter Example and Radio Receiver Example shown how to manually configure the radio.

    2. Use ESB, though you may not want to enable some features such as ACK/retransmission due to latency. For the low power esb, the latency should be around 2ms. For the normal ESB on nRF52832, it is only ~0.3ms

    In both cases you would have to implement frequency hopping scheme manually, if that is required. If you can tolerate 7.5 ms latency, you can always go for BLE :)

Related