The error: A developer selects BLE for a wireless camera streaming 640×480 video at 15 FPS, reasoning “BLE 5.0 has 2 Mbps PHY, which should be enough.”
Required bandwidth calculation:
- Resolution: 640 × 480 pixels
- Color depth: 16-bit (RGB565) = 2 bytes/pixel
- Frame size: 640 × 480 × 2 = 614,400 bytes
- Frame rate: 15 FPS
- Required bandwidth: 614,400 × 15 = 9,216,000 bytes/sec = 73.7 Mbps
Even with JPEG compression (10:1 ratio): - Compressed: 73.7 ÷ 10 = 7.37 Mbps required
BLE 5.0 actual throughput:
| 1M PHY |
1 Mbps |
50% (headers, ACKs, intervals) |
~500 kbps |
| 2M PHY |
2 Mbps |
40% |
~1.2 Mbps |
Result: BLE can deliver only 1.2 Mbps with 2M PHY, but 7.37 Mbps is needed for JPEG video. BLE is 6× too slow.
What the developer should have chosen:
| Wi-Fi |
50+ Mbps |
10-30 ms |
High |
Video streaming ✓ |
| Classic Bluetooth |
1-2 Mbps |
50-100 ms |
Medium |
Audio streaming only |
| BLE |
0.5-1.2 Mbps |
10-50 ms |
Low |
Sensors, beacons |
| USB |
480 Mbps |
<1 ms |
N/A (wired) |
High-res video |
The fix:
Use Wi-Fi for the camera with MJPEG or H.264 streaming: - Wi-Fi 4 (802.11n): 50 Mbps typical throughput - Video at 7.37 Mbps uses only 15% of available bandwidth - Supports multiple simultaneous camera streams
Real product that made this mistake:
A Kickstarter project for a “BLE baby monitor camera” promised wireless video over BLE. After raising $250,000: - Discovered BLE throughput was 1/6th of needed bandwidth - Pivoted to Wi-Fi (required hardware redesign) - Delayed shipping by 18 months - 40% of backers requested refunds
Rule of thumb: BLE throughput is suitable for: - Sensor data: <10 kbps (temperature, accelerometer) - Compressed audio: ~60 kbps (voice with mSBC) - Low-res images: <500 kbps (QR codes, thumbnails)
For anything needing >1 Mbps sustained, use Wi-Fi or Classic Bluetooth A2DP.