Bluetooth low energy data throughput

This chapter outlines achievable Bluetooth low energy connection throughput for GATT procedures used to send and receive data in stated SoftDevice configurations.

The throughput numbers listed in this chapter are based on measurements in an interference-free radio environment. Maximum throughput is only achievable if the application, without delay, reads data packets as they are received and provides new data as packets are transmitted. The SoftDevice may transfer as many packets as can fit within the connection event as specified by the event length for the connection. For example, in simplex communication, where data is transmitted in only one direction, more time will be available for sending packets. Therefore, there may be extra TX-RX packet pairs in connection events. Additionally, more time can be made available for a connection by extending the connection events beyond their reserved time. See Connection timing with Connection Event Length Extension for more information.

All data throughput values apply to packet transfers over an encrypted connection using maximum payload sizes. Maximum LL payload size is 27 bytes unless noted otherwise. The following table shows maximum data throughput at a connection interval of 7.5 ms for a single peripheral or central connection.

Table 1. Data throughput for a single connection with 23 byte ATT MTU
Protocol ATT MTU size Event length Method Maximum data throughput (LE 1M PHY) Maximum data throughput (LE 2M PHY)
GATT Client 23 7.5 ms Receive Notification 192.0 kbps 256.0 kbps
Send Write command 192.0 kbps 256.0 kbps
Send Write request 10.6 kbps 10.6 kbps
Simultaneous receive Notification and send Write command 128.0 kbps (each direction) 213.3 kbps (each direction)
GATT Server 23 7.5 ms Send Notification 192.0 kbps 256.0 kbps
Receive Write command 192.0 kbps 256.0 kbps
Receive Write request 10.6 kbps 10.6 kbps
Simultaneous send Notification and receive Write command 128.0 kbps (each direction) 213.3 kbps (each direction)
GATT Server 158 7.5 ms Send Notification 248.0 kbps 330.6 kbps
Receive Write command 248.0 kbps 330.6 kbps
Receive Write request 82.6 kbps 82.6 kbps
Simultaneous send Notification and receive Write command 165.3 kbps (each direction) 275.5 kbps (each direction)
GATT Client 23 3.75 ms Receive Notification 64.0 kbps 106.6 kbps
Send Write command 64.0 kbps 106.6 kbps
Send Write request 10.6 kbps 10.6 kbps
Simultaneous receive Notification and send Write command 64.0 kbps (each direction) 85.3 kbps (each direction)
GATT Server 23 3.75 ms Send Notification 64.0 kbps 106.6 kbps
Receive Write command 64.0 kbps 106.6 kbps
Receive Write request 10.6 kbps 10.6 kbps
Simultaneous send Notification and receive Write command 64.0 kbps (each direction) 85.3 kbps (each direction)
GATT Client 23 2.5 ms Receive Notification 42.6 kbps 64.0 kbps
Send Write command 42.6 kbps 64.0 kbps
Send Write request 10.6 kbps 10.6 kbps
Simultaneous receive Notification and send Write command 21.3 kbps (each direction) 42.6 kbps (each direction)
GATT Server 23 2.5 ms Send Notification 42.6 kbps 64.0 kbps
Receive Write command 42.6 kbps 64.0 kbps
Receive Write request 10.6 kbps 10.6 kbps
Simultaneous send Notification and receive Write command 21.3 kbps (each direction) 42.6 kbps (each direction)

The following table shows the maximum data throughput for a single peripheral or central connection. The event length is equal to the connection interval.

Table 2. Data throughput for a single connection with 247 byte ATT MTU
Protocol ATT MTU size LL payload size Connection interval Method Maximum data throughput (LE 1M PHY) Maximum data throughput (LE 2M PHY)
GATT Server 247 2511 50 ms Send Notification 702.8 kbps 1327.5 kbps
Receive Write command 702.8 kbps 1327.5 kbps
Simultaneous send Notification and receive Write command 390.4 kbps (each direction) 780.8 kbps (each direction)
GATT Server 247 251 400 ms Send Notification 771.1 kbps 1376.2 kbps
Receive Write command 760.9 kbps 1376.2 kbps
Simultaneous send Notification and receive Write command 424.6 (each direction) 800.4 kbps (each direction)
Raw Link Layer data N/A 251 400 ms N/A 803 kbps 1447.2 kbps

A connection interval of 20 ms and an event length of 2.5 ms allows up to eight connections. The maximum throughput per connection for this case, using 23 byte ATT MTU, is shown in Data throughput for up to 8 connections.

For connections with longer event length, a longer connection interval would need to be used for each connection to prevent connection events from overlapping. See Scheduling for more information on how connections can be configured.

Throughput may be reduced if a peripheral link is running because peripheral links are not synchronized with central links. If a peripheral link is running, throughput may decrease to half for up to two central links and the peripheral link.

Table 3. Data throughput for up to 8 connections
Protocol Event length Method Maximum data throughput (LE 1M PHY)
GATT Client 2.5 ms Receive Notification 16.0 kbps
Send Write command 16.0 kbps
Send Write request 4.0 kbps
Simultaneous receive Notification and send Write command 8.0 kbps (each direction)
GATT Server 2.5 ms Send Notification 16.0 kbps
Receive Write command 16.0 kbps
Receive Write request 4.0 kbps
Simultaneous send Notification and receive Write command 8.0 kbps (each direction)
1 Assumming that the peer device accepts the increased ATT and LL payload sizes.