Throughput with Bluetooth Low Energy Technology#

Introduction#

This page describes the maximum achievable bitrates on Blue Gecko devices (EFR32BGxx) with different Bluetooth SDK versions. However, the principles can also be applied to legacy devices (BLExxx), taking into account their parameters.

The application-level data, throughput with Bluetooth Low Energy is affected by many factors. In particular, two operations below have a different throughput calculation:

1. Acknowledged data transfer. In this use case, the reception of all data packets is acknowledged by the receiver. The receiver sends a response for every read/write request in the next connection interval. The connection is reliable but the throughput is low.

Acknowledged data transferAcknowledged data transfer

2. Unacknowledged data transfer. In this use case, packets can be sent sequentially without waiting for acknowledgment from the other side. This ensures much higher throughput, but a less reliable connection.

Unacknowledged data transferUnacknowledged data transfer

Acknowledged and unacknowledged operation can be mixed on the same connection by sending packets of different types. The following packet types result in acknowledged operation:

  • Read (read request)

  • Write (write request)

  • Indication

  • Prepare write

  • Signed write

The following packet types result in unacknowledged operation:

  • Write without response (write command)

  • Notification

Throughput Calculation for Acknowledged Data Transfer#

For acknowledged data transfer, the throughput depends on the following parameters:

  • Connection interval

  • MTU size

  • Attribute protocol operation

Connection Interval#

The connection interval specifies the frequency of sending data, which varies between 7.5 ms up to 4000 ms. After the sender sends data (or request), the sender has to wait for the receiver to send an acknowledgment. Therefore, one (GATT) operation takes two connection intervals.

The lower the connection interval, the higher the potential data rate. For example, using the smallest connection interval of 7.5 ms e.g., with 125-byte useful payload / connection interval, the radio can (assuming no lost packets and no re-transmissions) achieve a theoretical data rate, as follows:

1000 ms / (2 * 7.5 ms) * 125 bytes = 8,333 bytes/sec = 66,666 bps

On the other hand, when using the largest connection interval of 4000 ms e.g., with 22-byte useful payload, data rate will be reduced to:

1000 ms / (2 * 4000) ms * 22 bytes = 2.75 bytes/sec = 22 bps

MTU Size#

Maximum Transfer Unit (MTU) specifies the number of bytes that can be sent within one GATT operation. In other words, it's the number of bytes that can be sent within two connection intervals. MTU size can be set for each connection. However, it has an upper limit, which varies with Bluetooth stack versions. The maximum MTU size for each Bluetooth stack version is summarized in the following table

Bluetooth Stack Version

Maximum MTU Size

For legacy devices (BLExxx)

<= 1.5.0

23

For Blue Gecko devices

1.0.x

23

2.0.x

58

2.1.x

126

2.3.x or later

250

Note that the MTU size depends on both sides. For example, if the remote device supports a smaller MTU size, the smaller MTU size will be used. The higher the MTU size, the higher the throughput. Twice the MTU size doubles the throughput.

Attribute Protocol (ATT) Operation#

MTU size includes the GATT header, which has a variable length and means that the useful payload is a bit smaller than the MTU. The size of the GATT header depends on the operation type, hence the maximum useful payload is different for different operations. This is summarized in the following table:

ATT Operation

Max Useful Data / ATT Operation

Read 

MTU - 1 bytes

Write 

MTU - 3 bytes

Indication 

MTU - 3 bytes

Prepare write 

MTU - 3 bytes

Signed write 

MTU - 15 bytes

Maximum Achievable Throughput with ACK#

For acknowledged operations, the maximum throughput can be achieved with the following parameters:

  • Connection interval: 7.5 ms

  • MTU size: 250 bytes

  • Attribute protocol operation used: Read

This results in a maximum throughput of

1000 ms / (2 * 7.5 ms) * (250 - 1) bytes = 16,600 bytes/sec = 132,800 bps

Throughput Calculation for Unacknowledged Data Transfer#

For unacknowledged data transfer, the throughput depends on the following parameters:

  • Packet size

  • Attribute protocol operation

  • PHY (physical layer) bitrate

  • Connection interval

Packet Size#

Data over Bluetooth is sent in packets. Multiple packets can be sent within one connection interval sequentially (with 150 µs inter-frame spacing). Packets have variable length, but their length has an upper limit. The maximum PDU (protocol data unit) size of a packet depends on the Bluetooth stack version, as summarized in the following table:

Bluetooth Stack Version

Bluetooth Standard

Maximum PDU Size

For legacy devices (BLExxx)

<=1.5.0

4.0

27 byte

For Blue Gecko devices

1.0.x

 4.0

 27 byte

2.0.x

4.2

38 byte

2.1.x

 4.2

 38 byte

2.3.x

 5.0

 128 byte

2.4.x

 5.0

 160 byte

2.6.x or later

 5.0

 251 byte