Timing of retransmissions

Hi there,

We are currently developing a system, where around 480 kbytes of data are transmitted over BLE. Throughput is supposed to be as high as possible.

We are using Notifications, DLE enabled, 2M PHY and an ATT MTU of 247 Bytes.

The ATT Payload is 240 Bytes.

Platform is nRF54L15 using Zephyr.

We are wondering, what connection interval would be a good value. As the peripheral device is moving and there may be interference, we expect transmission failures.

What exactly happens, when there is no ACK packet received? Does the current transmission of packets stop until a new connection interval begins?

If that is the case I would assume, that the minimum value of 7.5ms would be a useful choice because the waiting time for the retransmission is minimal.

What do you think?

Regards

Jonas

  • Hello,

    You can look into the throughput sample found in NCS\nrf\samples\bluetooth\throughput, and use this on 2 DKs to play with the connection parameters. You have already picked up most of it. The idea is that you increase the MTU to 247, use 2MBPS PHY, and enable DLE. The question is the connection interval. Shorter connection intervals give shorter packets, while longer connection intervals give longer packets. In general longer packets means a lower header/payload throughput, which is good for throughput. 

    But streching the connection interval too long is not good either, because it means that if a packet is lost (the receiver gets a bit flipped resulting in a wrong CRC), then the devices needs to wait for the beginning of the next connection interval to retransmit that packet, before it can continue transmitting. I would say that you should experiment with connection intervals of 50, 100 and 200ms in an environment that is close to what the environment where your devices will operate, to see what gives you the ideal throughput. 

    A connection interval of 7.5ms is too short. It gives a too high header/payload throughput ratio. Check out the throughput sample (and try with 7.5ms as well, to verify). You can also see, if you experiment with the online power profiler, that setting the connection interval = 7.5ms, and setting a high data throughput will use more than 7.5ms per connection interval:

    I believe the optimal connection interval is roughly 100-150ms, where you should see (in a quiet environment) you should see a throughput close to the theoretical maximum, somewhere between 1.3 and 1.4 Mbps. 

    Best regards,

    Edvin

Related