| PHY | Symbol rate | Best for | Watch out |
|---|---|---|---|
| LE 1M | 1 Mbps | compatibility: every BLE device supports it | nothing special |
| LE 2M | 2 Mbps | throughput, shorter airtime per byte (less energy per byte) | slightly less range than 1M; needs Bluetooth 5 on both sides |
| LE Coded S=2 | 500 kbps | more range with moderate data rate | longer airtime, more energy per byte |
| LE Coded S=8 | 125 kbps | maximum range (sensitivity around -103 dBm in typical implementations) | 8× airtime of 1M; many phones don't support it |
Range is a link budget, not a spec number
Range depends on transmit power (Bluetooth allows -20 to +20 dBm), receiver sensitivity, path loss (walls, bodies, rain) and antenna gain on both ends. The Bluetooth SIG's own guidance puts real-world range anywhere from under a meter to over a kilometer. Coded PHY improves sensitivity; a better antenna or more TX power can matter just as much.
Choosing
- Sensor → phone: stay on 1M for compatibility; switch to 2M after connecting if both support it (PHY update procedure).
- Firmware updates / logs: 2M + Data Length Extension + large MTU. Measured application throughput reaches about 1.4 Mbps in optimized 2M setups; typical phone links are much lower.
- Long-range fixed installations (gateway ↔ sensor you control on both ends): Coded PHY, with extended advertising, since legacy advertising only uses 1M.
- Battery: energy per byte is lowest on 2M; Coded costs the most airtime per byte. For small, infrequent payloads the difference is minor compared to connection interval and advertising settings.
Verify
Log the PHY your stack actually negotiated. Many centrals, especially phones, silently stay on 1M or don't support Coded.