
BLE Throughput Calculator
Estimate ATT throughput across PHY, connection interval, MTU, data length, and packets per event, then calibrate the result for your target platform.
Planning estimate
585.6 kbps
73.20 kB/s at 75% utilization · modeled ceiling 780.8 kbps
- ATT value / PDU
- 244 B
- LL fragments / PDU
- 1
- App bytes / LL packet
- 244.0 B avg
- Data packets / event
- 6
- Estimated bytes / event
- 1098.0
- Events / s
- 66.67
- Avg packet exchange
- 1424 µs
- Limited by
- Packets scheduled per event
- PHY
- LE 2M
- Avg LL payload
- 251.0 B
- The 251 B L2CAP PDU fits in one Link Layer packet, including its 4 B L2CAP header.
- 75% scheduling utilization is an explicit planning assumption, not a platform benchmark. Replace it with a measured value when you have one.
Validate the estimate in your application
Use the SimpleBLE write and notify examples to measure the transfer path on the devices you plan to support.
What this calculator estimates
This is a planning model for application bytes sent through ATT notifications or writes without response on an established BLE connection. It does not model advertising, acknowledged GATT writes, indications, retransmissions, coexistence, or LE Audio.
The tool separates two ideas that are often blurred together: a protocol-and-air-time ceiling, and a planning estimate produced by the visible scheduling utilization input. The utilization is an assumption you own, not a hidden claim about a phone or operating system.
The knobs that actually matter
- PHY — LE 1M is the baseline; LE 2M shortens on-air time. Coded PHY trades speed for range.
- Connection interval — how often connection events occur. Shorter intervals can increase throughput and power use.
- ATT MTU — the negotiated ATT PDU size. The default 23-byte MTU carries a 20-byte value after the 3-byte notification or write-command header.
- Max TX octets — the maximum Link Layer data payload. Larger values reduce the number of Link Layer fragments needed for one L2CAP/ATT PDU.
- Packets per event — how many Link Layer data packets the controller actually schedules in a connection event.
- Scheduling utilization — the percentage of modeled event capacity you expect the complete host/controller/application path to sustain.
MTU and DLE solve different problems
An ATT PDU is carried inside an L2CAP PDU. L2CAP adds a 4-byte header, then the controller fragments that PDU across Link Layer packets when it exceeds max TX octets. The receiver recombines those fragments before handing the ATT PDU upward.
That means a 247-byte ATT MTU does not suddenly become a 244-byte value only when DLE reaches 251. With the 27-octet Link Layer default it still carries a 244-byte ATT value, but it consumes many more Link Layer packets and much more air time. The calculator reports that fragment count instead of silently truncating the ATT PDU.
Turn the ceiling into a defensible estimate
Start at 100% to inspect the model ceiling. Then time a known-size transfer on the target hardware and calculate observed utilization as measured throughput divided by that ceiling. Put the observed percentage back into the calculator for planning.
Common reasons the measured value is lower include:
- The requested MTU, data length, PHY, or interval was not accepted.
- The controller schedules fewer packets per event than expected.
- Wi-Fi coexistence, scanning, retries, or background throttling.
- Acknowledged writes or indications add application-level round trips.
- The producer or consumer cannot keep the GATT queue full.
Capture what was actually negotiated before changing application code. Mobile APIs may hide some values, so a controller log or over-the-air trace is often the fastest route to the truth.
Measure the real transfer path
Use the SimpleBLE write and notify examples to exercise the same operations across desktop and mobile platforms. For the discovery side, decode service data with the advertisement decoder or resolve an identifier with the GATT UUID lookup.