Bluetooth Classic Audio#
Bluetooth Classic (BR/EDR) remains the dominant transport for wireless audio โ headphones, speakers, car infotainment, and hands-free calling all run over BR/EDR audio profiles rather than BLE. The reason is bandwidth: BLE was designed for low-duty-cycle sensor data, not continuous 16-bit audio streams. A2DP over BR/EDR delivers 328 kbps of SBC-encoded audio (enough for near-CD quality), while HFP carries narrowband or wideband voice over dedicated SCO links with guaranteed timing. These profiles are mature, widely supported by consumer devices, and available on dual-mode platforms like the ESP32.
This section covers Bluetooth Classic audio from the embedded firmware perspective โ building A2DP source and sink pipelines, implementing HFP for voice calls, and integrating AVRCP for playback control. BLE-specific content (advertising, GATT, BLE audio / LC3) lives in Networking โ Bluetooth & BLE.
Pages#
Bluetooth Classic for Audio โ BR/EDR vs BLE for audio, SCO/ACL links, ESP32 as the primary embedded platform, stack options (Bluedroid, BTstack), and dual-mode coexistence.
A2DP Audio Streaming โ A2DP source and sink roles, SBC encoding (mandatory), optional codecs (AAC, LDAC), I2S-to-A2DP pipeline construction, and buffer management.
HFP & Hands-Free Voice โ HFP/HSP profiles, SCO link setup, CVSD and mSBC codecs, echo cancellation, and the mic-to-SCO-to-speaker pipeline.
AVRCP Playback Control โ Transport controls, track metadata, target vs controller roles, notification events, and AVRCP + A2DP integration.