MTU
Maximum Transmission Unit -- the largest ATT payload that can be sent in a single packet (default 23 bytes, negotiable up to 512).
What Is MTU in BLE?
The Maximum Transmission Unit (MTU) defines the largest ATT Protocol Data Unit (PDU) that can be exchanged between a GATT client and server. A larger MTU means more application data per packet, fewer round trips, higher throughput, and lower power consumption per byte transferred.
Default and Negotiated Values
The BLE specification mandates a default ATT_MTU of 23 bytes. After subtracting the 3-byte ATT header (1-byte opcode + 2-byte handle), this leaves only 20 bytes of usable payload -- a severe constraint for applications transferring images, audio, or firmware. The Exchange MTU procedure, initiated by the client immediately after connection, allows both sides to agree on a larger ATT_MTU. The negotiated value is the minimum of the two proposed MTUs. Modern chips commonly support 247 or 512 bytes.
Relationship to DLE
MTU and Data Length Extension (DLE) are complementary but independent. MTU governs the ATT-layer payload size, while DLE controls the link-layer packet size. If the MTU is 247 bytes but DLE is left at the default 27 bytes, the ATT PDU must be fragmented across multiple link-layer packets (a process called L2CAP fragmentation), adding latency and overhead. For best performance, both MTU and DLE should be negotiated to their maximum supported values simultaneously.
Platform-Specific Behavior
| Platform | Default MTU | Maximum MTU | Notes |
|---|---|---|---|
| iOS | 23 | 512 | Auto-negotiates on connection |
| Android | 23 | 512 | App must call requestMtu() explicitly |
| Zephyr RTOS | 23 | CONFIG_BT_L2CAP_TX_MTU | Set at compile time |
| Nordic SDK | 23 | NRF_SDH_BLE_GATT_MAX_MTU_SIZE | RAM allocation scales with MTU |
Android's requirement for explicit MTU negotiation is a common source of performance issues. If the app developer forgets to call requestMtu(), all GATT operations are constrained to 20-byte payloads.
RAM Impact
On resource-constrained SoCs, the BLE stack must allocate TX and RX buffers proportional to the configured MTU. A 512-byte MTU with support for two simultaneous connections can consume over 4 KB of RAM just for ATT buffers. Firmware developers should balance the MTU size against available memory, especially on chips with 32 KB or 64 KB of RAM.
Write and Read Segmentation
For writes exceeding MTU minus 3 bytes, ATT provides the Prepare Write / Execute Write (queued write) procedure. For reads, the Read Blob Request allows reading beyond the first MTU-3 bytes by specifying an offset. Both mechanisms introduce additional round trips, so maximizing MTU remains the most effective optimization for large transfers.
Related Terms
Related Content
BLE GATT Server Implementation Guide
Development…notification */ bt_gatt_notify(conn, attr, data, len); MTU and Throughput The default ATT MTU is 23 bytes, yielding…
Android BLE Development: From Scanning to Data Transfer
Development…pitfalls around connection management, threading, and MTU negotiation. This guide covers production-grade patterns.…
Web Bluetooth API: BLE from the Browser
Development…→ descriptor — mirrors the native BLE stack exactly. MTU negotiation is handled by the browser; you get up to 512…
Python BLE with Bleak: Cross-Platform BLE Scripting
Development…to know which the peripheral supports. MTU negotiation is automatic; Bleak requests 512 on…
BLE OTA DFU: Over-the-Air Firmware Updates
Development…Gain Use LE 2M PHY ~2× throughput vs 1M PHY Maximize MTU (512 bytes) Fewer L2CAP PDUs per image byte Write Without…
GATT UUID & Descriptors (0x2902) Explained — BLE
Protocols & Profiles…setup Fixed L2CAP CID 0x0004 Dynamic L2CAP eCBM Minimum MTU 23 bytes 65 bytes Security requirement None Encrypted link…
BLE in Healthcare: Medical Devices and Patient Monitoring
Industry Applications…too long introduces visible latency in clinical displays MTU negotiation : Request MTU = 247 bytes; avoids segmentation…
BLE Smart Home: Locks, Sensors, and Home Automation
Industry Applications…The commissioning BLE service uses standard GATT MTU of 247 bytes (after negotiation) to transfer certificate…
Frequently Asked Questions
Our glossary covers 90+ BLE technical terms organized by category. Each term includes a definition, related terms, and links to relevant chips and guides.