900  Classic Bluetooth vs Bluetooth Low Energy

900.1 Learning Objectives

By the end of this chapter, you will be able to:

  • Understand the fundamental differences between Classic Bluetooth (BR/EDR) and Bluetooth Low Energy (BLE)
  • Calculate power consumption for different advertising and connection configurations
  • Choose the right Bluetooth variant based on application requirements
  • Avoid common pitfalls when designing BLE-based IoT devices

900.2 Prerequisites

Before diving into this chapter, you should be familiar with:

900.3 The Evolution of Bluetooth

ImportantThe Challenge: Low-Power Wireless for Wearables

The Problem: Classic Bluetooth wasn’t designed for IoT:

  • Connection setup: 100ms+ (too slow for brief sensor interactions)
  • Always-on connection: Drains coin cell batteries in hours, not months
  • Complex profiles: Designed for audio streaming, not simple sensor data
  • Power consumption: 30-100mW continuous (smartphone-class, not sensor-class)

Why It’s Hard:

  • Wearables and beacons need coin cell batteries lasting months to years
  • Beacons must broadcast continuously without requiring pairing
  • Sensors send small data bursts (50-200 bytes) infrequently (once per minute)
  • Must work with every smartphone (iOS, Android) without special hardware

The Solution: Bluetooth Low Energy (BLE) - a low-power Bluetooth mode with its own protocol stack, GATT-based data model, and aggressive power management.

900.3.1 Historical Context

Understanding Bluetooth’s 30-year evolution helps explain why BLE is fundamentally different from Classic Bluetooth—not just a “low power mode,” but an entirely new protocol stack designed from scratch for IoT.

Original Problem (1994): Ericsson engineers wanted to eliminate the tangle of cables connecting mobile phones to accessories. The “MC-Link” project aimed to replace RS-232 serial cables with a short-range wireless link that could handle voice and data.

First Generation (1998-2004): Bluetooth 1.0-2.0 focused on cable replacement:

  • 1998: Bluetooth 1.0 released (named after Harald “Bluetooth” Gormsson, a 10th-century Viking king who united Denmark)
  • 1 Mbps data rate, primarily for voice headsets and file transfer
  • 2004: Bluetooth 2.0 + EDR (Enhanced Data Rate) boosted speeds to 3 Mbps
  • Enabled stereo audio streaming (A2DP profile) and faster syncing

The Low Energy Revolution (2010): Bluetooth 4.0 introduced BLE as a completely new protocol:

  • Why “new”? BLE is not backward compatible with Classic—it uses different modulation, different packet formats, and different connection procedures
  • Coin cell operation: Designed for low-duty-cycle devices targeting multi-month to multi-year battery life
  • Connection setup: Optimized for short exchanges, but discovery/connection time still depends on advertising/scan intervals
  • Sleep current: Can be in the single-digit microamp range depending on the radio and MCU
  • Key enabler: Apple’s iBeacon (2013) triggered the retail beacon explosion

Mesh Networking Era (2017): Bluetooth Mesh extended BLE to building-scale deployments:

  • Supports up to 32,767 nodes in a single network
  • Enables smart lighting, HVAC, and sensor networks across entire buildings
  • Uses managed flooding for message relay (no routing tables needed)

Modern Evolution (2020-Present): Bluetooth 5.x continues enhancing IoT capabilities:

Version Year Key Features IoT Impact
5.0 2016 2x speed, 4x range, 8x advertising Long-range industrial sensors
5.1 2019 Direction finding (AoA/AoD) Indoor positioning to <1m accuracy
5.2 2020 LE Audio, LC3 codec, EATT Hearing aids, multi-stream earbuds
5.3 2021 Connection subrating, periodic advertising Reduced power, better coexistence
5.4 2023 PAwR (Periodic Advertising with Responses) Electronic shelf labels at scale
Auracast 2022 Broadcast audio sharing Public venues, accessibility

900.4 Classic Bluetooth vs BLE: Core Differences

Bluetooth comes in two main types, designed for different purposes:

Aspect Classic Bluetooth Bluetooth Low Energy (BLE)
Purpose Streaming data (like music) Sending small bits of data
Power Use Higher (constant connection) Very low (sleep most of the time)
Battery Life Days to weeks Months to years
Discovery/Setup Often slower and more user-driven Often faster, but depends on advertising/scan settings
Best Analogy Phone call (continuous) Text messages (quick bursts)
IoT Use Audio devices Sensors, beacons, wearables

Analogy: Phone Call vs. Text Message

  • Classic Bluetooth is like a phone call — you establish a connection and keep talking continuously (streaming music)
  • BLE is like texting — you send a quick message and then your phone goes back to sleep (fitness tracker sending heart rate)

900.4.1 Why BLE Changed Everything for IoT

Before BLE, battery-powered sensors were impractical because Bluetooth drained batteries too fast. BLE solved this:

Battery Impact:

  • Classic Bluetooth: Always on -> Battery lasts days/weeks
  • BLE: Wake briefly, then sleep -> Battery lasts months/years!

Real-World Impact:

  • Coin cell battery (like in a watch): ~230 mAh capacity
  • Classic Bluetooth: Would drain it in 1-2 weeks
  • BLE sensor: Can run for 2-5 years!

The Misconception: Bluetooth Low Energy is Classic Bluetooth with power optimizations.

Why It’s Wrong:

  • BLE is a completely different protocol (incompatible PHY and stack)
  • Classic: Continuous connection, streaming audio
  • BLE: Burst transmission, attribute-based data model
  • Different radio characteristics (channels, modulation)
  • A Classic-only device CANNOT communicate with BLE-only device

Real-World Example:

  • Classic Bluetooth headphones: Continuous audio stream, hours of battery
  • BLE heart rate monitor: 1-second updates, months of battery
  • Trying to stream audio over BLE: Impossible (no A2DP profile)
  • Trying to read heart rate from Classic: Impossible (no GATT)

The Correct Understanding:

Feature Classic Bluetooth BLE
Connection Persistent Burst
Data model Profiles (SPP, A2DP) GATT attributes
Latency Higher Lower (ms)
Throughput Higher (Mbps) Lower (kbps)
Power Higher Much lower
Use case Audio, file transfer Sensors, beacons

BLE is a different technology that shares only the Bluetooth brand.

900.5 Detailed Technical Comparison

Table 900.1: Comparison of Bluetooth, Zigbee, and Wi-Fi wireless technologies {#tbl-bluetooth-comparison}

900.6 Wireless Technology Comparison

Feature Bluetooth Classic Bluetooth 4.0 Low Energy (BLE) Zigbee Wi-Fi
IEEE Standard 802.15.1 802.15.1 802.15.4 802.11 (a, b, g, n)
Frequency (GHz) 2.4 2.4 0.868, 0.915, 2.4 2.4 and 5
Maximum raw bit rate (Mbps) 1-3 1 0.250 11 (b), 54 (g), 600 (n)
Typical data throughput (Mbps) 0.7-2.1 0.27 0.2 7 (b), 25 (g), 150 (n)
Maximum (Outdoor) Range (Meters) 10 (class 2), 100 (class 1) 50 10-100 100-250
Relative Power Consumption Medium Very low Very low High
Example Battery Life Days Months to years Months to years Hours
Network Size 7 Undefined 64,000+ 255
Feature Classic Bluetooth (BR/EDR) Bluetooth Low Energy (LE)
Power profile Higher average for continuous streams Lower average for low-duty-cycle sensors
Range Environment-dependent (often tens of meters) Similar; coded PHY can extend range at lower data rates
Data rate Higher application throughput (audio-friendly) Lower effective throughput (sensor-friendly)
Discovery/setup Often more user-driven Advertising-based; timing depends on intervals
Best for Audio streaming, peripherals Sensors, beacons, wearables

900.7 Common Pitfalls

CautionPitfall: Assuming BLE Connection Interval Equals Update Rate

The Mistake: Setting the BLE connection interval to match your desired sensor update rate (e.g., 5-second connection interval for 5-second sensor readings), then wondering why the connection is unstable or data is missed.

Why It Happens: Developers confuse “connection interval” (radio scheduling parameter, 7.5ms to 4s max) with “application update rate” (how often your code sends data). The BLE specification limits connection intervals to 4 seconds maximum, so you cannot have a “5-minute connection interval.”

The Fix: Use a reasonable connection interval (100-500ms for sensors) combined with peripheral latency to skip connection events when there’s no data. Send sensor readings via notifications at your desired application rate, independent of the connection timing:

// Correct approach: connection params for power efficiency
ble_gap_conn_params_t conn_params = {
    .min_conn_interval = 80,   // 100ms (80 * 1.25ms)
    .max_conn_interval = 160,  // 200ms
    .slave_latency = 4,        // Skip up to 4 events when idle
    .conn_sup_timeout = 400    // 4 second timeout
};

// Application sends data at its own rate
void sensor_timer_callback() {
    // Triggered every 5 minutes by app timer
    send_temperature_notification(read_sensor());
}
CautionPitfall: Not Accounting for BLE Radio Startup Time in Power Calculations

The Mistake: Calculating battery life based only on TX current and transmission duration, ignoring the significant power consumed during radio startup, calibration, and post-TX settling.

Why It Happens: Datasheets highlight peak TX current (8-15mA), but the radio requires 1-3ms of startup time at similar current before transmitting. For short packets, startup overhead can exceed actual TX time, doubling power consumption.

The Fix: Include the full radio event duration in power calculations, not just packet airtime:

Actual power per BLE event:
- Radio startup/calibration: 1.5ms @ 12mA = 18 uAs
- TX packet (31 bytes):      0.3ms @ 15mA =  4.5 uAs
- RX window (if connected):  1.0ms @ 12mA = 12 uAs
- Post-processing:           0.5ms @  5mA =  2.5 uAs
----------------------------------------
Total per event:             3.3ms        = 37 uAs

Common mistake calculation:  0.3ms TX only = 4.5 uAs
Actual vs estimated:         8x difference!

For 1-second advertising (3 channels):
- Naive estimate:    3 x 4.5 uAs  = 13.5 uAs/s = 48.6 uAh
- Real consumption:  3 x 37 uAs   = 111 uAs/s  = 400 uAh

Always measure actual current with an oscilloscope or power analyzer, or use vendor-provided power profiling tools.

CautionPitfall: Not Negotiating MTU Size Before Transferring Large Payloads

The Mistake: Sending sensor readings, firmware updates, or log files using the default 23-byte ATT MTU (20 bytes usable payload), resulting in excessive fragmentation, 5-10x slower transfers, and significantly higher power consumption due to per-packet overhead.

Why It Happens: The default BLE MTU (Maximum Transmission Unit) is 23 bytes for legacy compatibility. Many developers don’t realize they must explicitly request a larger MTU after connection—it’s not automatic. Without negotiation, a 200-byte sensor reading requires 10+ BLE packets instead of 1.

The Fix: Request MTU exchange immediately after connection establishment. Most modern BLE stacks support 247-512+ byte MTU:

// Central (phone/gateway) initiates MTU exchange after connection
void on_ble_connected(uint16_t conn_handle) {
    // Request maximum MTU supported by this stack (e.g., 247 or 512 bytes)
    ble_gattc_mtu_exchange_request(conn_handle, 247);
}

void on_mtu_exchanged(uint16_t conn_handle, uint16_t negotiated_mtu) {
    // Both sides agree on minimum of requested MTUs
    // Usable payload = negotiated_mtu - 3 (ATT header)
    uint16_t max_payload = negotiated_mtu - 3;  // e.g., 244 bytes

    // Now can send larger chunks efficiently
    log_info("MTU negotiated: %d bytes, payload: %d bytes",
             negotiated_mtu, max_payload);
}

// Throughput impact example (200-byte sensor reading):
// Default MTU (23):  10 packets x 3.3ms = 33ms, 10x radio events
// MTU 247:           1 packet  x 4.5ms =  4.5ms, 1x radio event
// Power savings:     ~7x fewer radio wake-ups for same data
CautionPitfall: Keeping BLE Radio in Connected Mode When Data Transfer Is Infrequent

The Mistake: Maintaining a persistent BLE connection for a sensor that only sends data every 5-30 minutes, draining battery on connection event overhead when advertising + on-demand reconnection would be more efficient.

Why It Happens: Connection-based communication feels simpler—connect once, send whenever needed. But BLE connections require periodic “keep-alive” exchanges (connection events) at the negotiated interval. Even with 4-second intervals and peripheral latency, a device maintaining connection 24/7 wastes power on events where no data is exchanged.

The Fix: Compare connection maintenance cost vs. advertising + reconnection cost. For infrequent data (>1-2 minute intervals), advertising mode is often more power-efficient:

Power analysis for 5-minute sensor reporting:

OPTION A: Persistent Connection
- Connection interval: 4s (max allowed)
- Peripheral latency: 4 (skip 4 events when idle)
- Effective event rate: 4s x 5 = every 20s minimum
- Events per 5 minutes: 15 events
- Power per event (idle): ~25 uAs (wake + RX + sleep)
- Total: 15 x 25 = 375 uAs per 5 minutes

OPTION B: Advertising + Reconnect
- Advertising interval: 1000ms
- Advertising power: ~3 uAs average
- Time advertising before reconnect: ~2-3 seconds typical
- Connection + data exchange: ~100 uAs
- Total: 3 uAs x 3s + 100 uAs = ~109 uAs per 5 minutes

Recommendation:
- Data interval < 30 seconds: Use persistent connection
- Data interval 30s - 2 min: Test both approaches
- Data interval > 2 minutes: Consider advertising mode
- Data on external trigger: Use advertising (unpredictable timing)

900.8 BLE vs Wi-Fi vs Zigbee: Choosing the Right Protocol

TipProtocol Selection Guide

Choose BLE when:

  • Battery life is critical (years on coin cell)
  • Smartphone connectivity needed (BLE built into all phones)
  • Short-range communication (10-50m) is sufficient
  • Periodic data transmission (every few seconds to minutes)
  • You can tolerate controller/app limits on concurrent connections (implementation-dependent)
  • Example: Fitness tracker, smart door lock, medical wearable

Choose Wi-Fi when:

  • High data rate required (>1 Mbps sustained)
  • Devices are mains-powered
  • Internet connectivity essential
  • Integration with existing network infrastructure
  • Example: Security camera, smart speaker, video doorbell

Choose Zigbee when:

  • Mesh networking needed (self-healing, multi-hop)
  • Large-scale deployment (100s-1000s of nodes)
  • Low data rate acceptable (250 Kbps max)
  • Home automation standard (compatibility with hubs)
  • Example: Smart lighting, building HVAC sensors, industrial monitoring

Trade-off summary: BLE for phone-connected wearables, Wi-Fi for bandwidth-intensive devices, Zigbee for large meshed sensor networks.

900.9 BLE PHY Modes (Bluetooth 5.0+)

CautionPitfall: Assuming 2M PHY Always Improves Performance

The Mistake: Enabling BLE 5.0 2M PHY (2 Mbps) mode expecting double throughput and half power consumption, then experiencing worse range, more disconnections, and no battery improvement in real deployments.

Why It Happens: The 2M PHY doubles the raw bit rate but uses the same transmit power, resulting in ~6dB less link margin (receiver sensitivity is worse at higher data rates). In marginal RF conditions, this causes more retransmissions and connection failures that offset any throughput gains.

The Fix: Choose PHY mode based on your environment and use case. Test in real conditions before deployment:

PHY selection guide:

1M PHY (default):
- Sensitivity: -96 dBm typical
- Range: Baseline (10-50m indoor)
- Use case: General purpose, reliable default

2M PHY (speed):
- Sensitivity: -90 dBm typical (6dB worse)
- Range: ~60% of 1M PHY
- Use case: High throughput in good RF (OTA updates, close range)
- Power: Similar per-bit, but transfers complete faster

Coded PHY S=2 (range):
- Sensitivity: -103 dBm typical (7dB better than 1M)
- Range: ~2x of 1M PHY
- Throughput: 500 kbps (half of 1M)
- Use case: Long-range sensors, outdoor deployments

Coded PHY S=8 (maximum range):
- Sensitivity: -107 dBm typical (11dB better than 1M)
- Range: ~4x of 1M PHY
- Throughput: 125 kbps (1/8 of 1M)
- Use case: Extreme range, building penetration

Best practice:
- Start with 1M PHY as baseline
- Use 2M PHY only for short-range, high-throughput scenarios
- Use Coded PHY when range is the priority
- Implement PHY fallback: try 2M, fall back to 1M if connection unstable
PHY Mode Data Rate Range Power Use Case
LE 1M 1 Mbps ~50m Baseline Default, balanced
LE 2M 2 Mbps ~30m Slightly higher High throughput, short range
LE Coded (S=2) 500 kbps ~100m Lower Extended range
LE Coded (S=8) 125 kbps ~200m Lowest Maximum range

900.10 Summary

This chapter covered the fundamental differences between Classic Bluetooth and Bluetooth Low Energy:

  • Classic Bluetooth is designed for continuous streaming (audio, file transfer) with higher power consumption
  • BLE is optimized for intermittent, low-power sensor data with months to years of battery life
  • BLE is not backward compatible with Classic Bluetooth—they are separate protocols
  • Power calculations must account for radio startup time, not just TX current
  • MTU negotiation is essential for efficient large data transfers
  • PHY mode selection (1M, 2M, Coded) trades off speed, range, and reliability

900.11 What’s Next

The next chapter, Bluetooth Topologies, explores the different network configurations available in Bluetooth—from simple star topologies and broadcast beacons to complex mesh networks for building automation.