BLE Throughput Optimization: Maximizing Data Transfer Speed
Tuning MTU, PHY, and connection events for maximum throughput
BLE Throughput Optimization: Maximizing Data Transfer Speed
The theoretical maximum BLE throughput on LE 2M PHY with DLE is approximately 1.4 Mbps. Real-world applications achieve 100–800 kbps depending on PHY selection, MTU size, connection interval, and protocol overhead. This guide walks through each layer of the stack to eliminate bottlenecks.
Throughput Budget Analysis
BLE 2M PHY raw bitrate: 2 Mbps
LL overhead per packet:
Preamble + Access Address + CI + MIC + CRC = 11 bytes × 8 bits = 88 µs
Max LL payload (DLE): 251 bytes = 1008 µs
Max LL efficiency: 1008 / (1008 + 88) = 92%
→ 2 Mbps × 92% = 1.84 Mbps LL
GATT overhead:
ATT header: 3 bytes (opcode + handle)
L2CAP header: 4 bytes
Available data per packet: 251 − 7 = 244 bytes
With 15 ms connection interval, 2 packets per event:
244 bytes × 2 × (1000/15) ≈ 32,500 bytes/s = 260 kbps
With 7.5 ms CI, 6 packets per event (DLE + 2M PHY):
244 × 6 × (1000/7.5) ≈ 195,200 bytes/s = 1.5 Mbps (theoretical)
Step 1: Upgrade to 2M PHY
If both devices support Bluetooth 5.0+, negotiate LE 2M PHY after connection:
// Nordic nRF Connect SDK
bt_conn_le_phy_update(conn, BT_CONN_LE_PHY_PARAM_2M);
// Callback
static void on_phy_updated(struct bt_conn *conn,
struct bt_conn_le_phy_info *param) {
if (param->tx_phy == BT_GAP_LE_PHY_2M) {
LOG_INF("PHY updated to 2M");
}
}
LE 2M PHY doubles the bitrate at the cost of reduced range (−3 dB sensitivity). For throughput-critical applications within 10 m, always prefer 2M PHY.
Step 2: Data Length Extension (DLE)
DLE increases the LL PDU payload from 27 to 251 bytes, reducing per-packet overhead from 30% to 4%:
// Request DLE — both peers must support BT 4.2+
bt_conn_le_data_len_update(conn, BT_LE_DATA_LEN_PARAM_MAX);
// BT_LE_DATA_LEN_PARAM_MAX: TX/RX 251 bytes, 2120 µs
Without DLE, a 512-byte write requires 20 packets (27 bytes each). With DLE, it fits in 3 packets (251 bytes each) — a 6.7× reduction in air time and corresponding improvement in throughput.
Step 3: MTU Negotiation
After DLE, negotiate MTU to match the LL PDU size:
| DLE Payload | Optimal MTU | ATT Data per Packet |
|---|---|---|
| 27 bytes (no DLE) | 23 bytes | 20 bytes |
| 251 bytes (DLE max) | 247 bytes | 244 bytes |
// iOS — request MTU implicitly via maximumWriteValueLength
// iOS auto-negotiates MTU to 185 or 517 bytes depending on device
let chunkSize = peripheral.maximumWriteValueLength(for: .withoutResponse)
Step 4: Connection Event Optimization
Each connection event can carry multiple packets if the controller's transmit queue is full and the peer ACKs quickly. The number of packets per event is limited by connSupervisionTimeout / connInterval and the controller's max event length parameter:
// nRF: set event length budget
NRF_BLE_CONN_EVT_LEN_EXT_ENABLED = 1
ble_conn_params_t.max_conn_evt_len_extension = 5 // 5 extra packets per event
Write Without Response vs Write With Response: WWR (0x52 opcode) eliminates the ACK round-trip and can sustain 3–4× higher throughput than Write With Response — at the cost of no delivery confirmation. Use WWR for streaming sensor data; use Write With Response for critical commands.
Step 5: Connection Subrating (BT 5.3)
Connection Subrating (Core Spec 5.3, Section 4.5.18) allows the connection interval to temporarily increase without renegotiation, then snap back to a fast interval for bursts:
Base interval: 7.5 ms (high throughput mode)
Subrate factor: 100 (×100 = 750 ms during idle)
Min/max subrate: 1–500
Effect: 99% reduction in idle connection events,
instant switch to 7.5 ms when data arrives
Throughput Benchmark Summary
| Config | Typical Throughput |
|---|---|
| 1M PHY, no DLE, 20 ms CI | 40–80 kbps |
| 1M PHY, DLE, 15 ms CI | 150–250 kbps |
| 2M PHY, DLE, 15 ms CI | 300–500 kbps |
| 2M PHY, DLE, 7.5 ms CI, 4 pkt/event | 700–900 kbps |
| 2M PHY, DLE, 7.5 ms CI, EATT, 6 pkt/event | 1.0–1.4 Mbps |
Use the Power Estimator to understand the battery cost of high-throughput modes before optimizing for maximum speed. See BLE Connection Issues for debugging connectivity problems that surface during throughput testing.
Frequently Asked Questions
Yes, our guides range from beginner introductions to advanced topics. Each guide indicates its difficulty level and prerequisites so you can find the right starting point.