Physical Channel
625 µs slots, TDD
3 Transports
ACL · SCO · eSCO
Beginner Friendly
Clear diagrams
Interview Ready
Key concepts
Why This Topic Matters
Hello students welcome to this bluetooth development course in c, here in this chapter i will explain you about what is Bluetooth Baseband what are bluetooth logical transport, When two Bluetooth devices talk to each other — say, your phone and a wireless headset — there is a whole stack of layers working silently underneath. The Baseband Controller sits right at the bottom of this stack and is responsible for the actual radio scheduling, timing, and data delivery.
If you are an embedded engineer building Bluetooth firmware, debugging connection issues, or writing BlueZ-based applications, understanding what happens at the Baseband level saves you hours of confusion. This tutorial walks you through the key building blocks: how devices share roles, how the physical radio time is sliced, how a physical link is set up, and why three different logical transport types exist instead of one.
- 1. Master and Slave Roles in a Piconet
- 2. What is a Role Switch?
- 3. Bluetooth Data Transport Architecture
- 4. Physical Channel — The Radio Layer
- 5. Physical Link — Point-to-Point Connection
- 6. Logical Transports — ACL, SCO, eSCO
- 7. ACL — Asynchronous Connection Oriented
- 8. SCO — Synchronous Connection Oriented
- 9. eSCO — Extended Synchronous Connection Oriented
- 10. Wide Band Speech (WBS)
- 11. ACL vs SCO vs eSCO — Quick Comparison
- 12. Summary and Key Takeaways
A piconet is the fundamental network unit in Bluetooth Classic. It consists of one Master device and up to seven active Slave devices. Think of it like a small star topology — all satellites (Slaves) communicate only through the central hub (Master).
The Master’s job goes beyond just initiating communication. It acts as the timing reference for the entire piconet. All Slaves synchronise their clocks and their frequency-hopping patterns to match the Master. Without this synchronisation, devices would be transmitting on different frequencies at different times and would never hear each other.
PICONET STRUCTURE
=============================================
[Slave 1] [Slave 2]
\ /
[Slave 6]--\---------/--[Slave 3]
\ /
-------[ MASTER ]--------
/ \
[Slave 5]--/---------\--[Slave 4]
/ \
(up to 7 active Slaves)
All Slaves sync their clock + hop pattern
to the Master's reference clock.
=============================================
Roles are not permanent. Once a connection is up, the Slave can request a role swap so that it becomes the Master. This is called a Role Switch. Either the Master or the Slave can trigger this process. The HCI command used is HCI_Switch_Role.
A role switch can happen either during the connection setup phase or any time after the connection is fully established.
ROLE SWITCH SEQUENCE
=============================================
Device A (Master) Device B (Slave)
| |
| HCI_Switch_Role |
|<-----------------------|
| (Slave initiates) |
| |
[Negotiation & re-sync happen here]
| |
| |
Device A (Slave) Device B (Master)
| |
| Now B provides clock|
| and hop reference |
=============================================
Before jumping into individual layers, it helps to see the full picture. The Bluetooth data transport system is built in layers, each sitting on top of the previous one:
BLUETOOTH DATA TRANSPORT ARCHITECTURE
============================================================
+------------------------------------------------------+
| L2CAP Channels |
| (User data multiplexed over ACL-U links) |
+------------------------------------------------------+
|
+------------------------------------------------------+
| Logical Links |
| ACL-C (LMP Control) | ACL-U (L2CAP User Data) |
| | SCO-S (Voice Stream) |
+------------------------------------------------------+
|
+------------------------------------------------------+
| Logical Transport |
| ACL (data + control) | SCO / eSCO (voice) |
+------------------------------------------------------+
|
+------------------------------------------------------+
| Physical Link |
| One per Master-Slave pair |
+------------------------------------------------------+
|
+------------------------------------------------------+
| Physical Channel |
| 625 µs time slots, pseudo-random frequency hop |
+------------------------------------------------------+
Suffix: C = Control, U = User, S = Streaming
============================================================
Each layer adds a specific capability. The Physical Channel handles the radio timing. The Physical Link ties two devices together. Logical Transports carry different types of traffic (voice vs data). Logical Links separate control from user data. And finally, L2CAP channels allow multiple upper-layer protocols to share the same connection.
The Physical Channel is the lowest level of the Bluetooth communication model. It defines how radio time is divided and how devices take turns transmitting so that they never talk over each other.
Time Slots and TDD
Time in a Bluetooth physical channel is divided into fixed-size units called slots, each lasting 625 microseconds. Full-duplex communication (both directions at once) is achieved using Time Division Duplex (TDD) — the Master transmits in even-numbered slots and the Slave responds in odd-numbered slots.
TIME DIVISION DUPLEX (TDD) ON PHYSICAL CHANNEL
============================================================
Slot: | S0 | S1 | S2 | S3 | S4 | S5 | S6 | S7 |
|<-->| 625µs
Master TX: |S0 | |S2 | |S4 | |S6 | |
| | | | | | | | |
Slave TX: | |S1 | |S3 | |S5 | |S7 |
Packet types occupy 1, 3, or 5 slots:
1-slot: |[pkt]| |[pkt]|
| | | |
3-slot: |[------pkt------]| |[------pkt------]|
| | | |
5-slot: |[-----------pkt-----------]|
Frequency changes with each new packet (not each slot).
============================================================
The Four Physical Channel Types
Bluetooth defines four distinct physical channels, each used for a specific purpose:
No — a device can only be on one physical channel at any given moment. But it can rapidly switch between channels using time-division multiplexing. For example, a device already in a piconet can still appear discoverable by quickly switching between its piconet channel and the inquiry scan channel.
TIME-DIVISION MULTIPLEXING OF CHANNELS
============================================================
Timeline:
------[piconet slots]---[inquiry scan]---[piconet slots]---
A device slices its time between channels to support
multiple operations simultaneously:
- Stay connected (piconet channel)
- Stay discoverable (inquiry scan channel)
============================================================
Once a physical channel is in place, a Physical Link can be formed between two specific devices. Think of it this way: the physical channel is like a road, and the physical link is the vehicle that travels on it between two specific endpoints.
There is always exactly one physical link between any Master-Slave pair, no matter how many logical channels are built on top of it. You cannot have two physical links to the same device at the same time.
PHYSICAL LINK IN A PICONET
============================================================
[Slave A] -----PhyLink-A------ [Master]
[Slave B] -----PhyLink-B------ [Master]
[Slave C] -----PhyLink-C------ [Master]
- Each Master-Slave pair has exactly one Physical Link
- Slaves CANNOT communicate directly with each other
- Direct Slave-to-Slave communication is NOT permitted
If Slave A and Slave C need to talk:
1. Both disconnect from current Master
2. One of them becomes the new Master
3. They form a new piconet between themselves
============================================================
The physical link provides two important services at the hardware level:
- Link Supervision — a heartbeat-like mechanism that detects when the connection is lost (device moved out of range, powered off, etc.)
- Encryption — the physical link supports encrypting all packets that flow over it, protecting your data from eavesdroppers.
A physical link can carry more than one type of traffic. A Logical Transport is built on top of the physical link to handle a specific traffic category. The reason multiple types exist is straightforward: voice and data have very different needs.
Data transmission (file transfers, commands) can tolerate some delay as long as every byte arrives correctly — so retransmissions are acceptable. Voice calls are the opposite: a tiny drop in quality is fine, but a late packet is useless. These two requirements demand different transport mechanisms.
LOGICAL TRANSPORT: WHY THREE TYPES?
============================================================
PHYSICAL LINK (between Master and Slave)
|
|------ ACL (Async, packet-switched, retransmits)
| Used for: commands, file data, L2CAP
|
|------ SCO (Sync, circuit-switched, no retransmit)
| Used for: 64 kbps voice (narrow-band)
|
|------ eSCO (Enhanced sync, limited retransmit)
Used for: HD voice (wideband), better QoS
All three can coexist on the same physical link.
============================================================
ACL is the default logical transport in Bluetooth. The moment a device joins a piconet, an ACL transport is automatically created between it and the Master. No special setup is needed.
ACL works like a classic packet-switched network. Data is sent whenever a slot is free and whenever there is something to send. There is no guaranteed slot reservation. If a packet gets corrupted on the air, the receiver asks for a retransmission and the sender resends it — this ensures every byte eventually reaches the other side with full integrity.
ACL TRANSPORT — SLOT USAGE
============================================================
Slots: | S0 | S1 | S2 | S3 | S4 | S5 | S6 | S7 |
^ ^
ACL sends Retransmit if
when free packet lost
Higher layers (L2CAP, SDP, HFP, A2DP...) all share this
single ACL transport via multiplexing.
+-------------------+
LMP Control --> | ACL Logical Link |
L2CAP Data --> | (shared channel) |
+-------------------+
|
[ACL Transport]
============================================================
Between a given Master-Slave pair there is always only one ACL logical transport. Multiple higher-layer protocols such as L2CAP, SDP, HFP (hands-free profile), and A2DP (audio streaming) all share this same transport. L2CAP handles the multiplexing so that each protocol gets its own logical channel on top.
When a SCO or eSCO transport is active at the same time, those voice transport slots take priority. The ACL transport gets whatever time remains in between. This ensures voice quality is never impacted by data traffic.
SCO is purpose-built for real-time voice streaming. Unlike ACL, which sends data when a slot is available, SCO reserves time slots at the moment the connection is set up and holds them for the lifetime of the transport. This makes it behave like a circuit-switched connection — predictable and constant.
SCO carries 64 kbps of voice data in both directions symmetrically. This matches standard narrow-band telephony quality — the kind you hear on a regular phone call.
SCO TRANSPORT — RESERVED SLOT MODEL
============================================================
Slots: | S0 | S1 | S2 | S3 | S4 | S5 | S6 | S7 |
|SCO | ACL|SCO | ACL|SCO | ACL|SCO | ACL|
^^^ ^^^ ^^^ ^^^
Reserved for SCO (guaranteed spacing)
- SCO slots are evenly spaced (periodic guarantee)
- ACL traffic fills the gaps
- No retransmission on SCO — late voice = dropped
============================================================
SCO Slot Limits
The spec allows the following simultaneous SCO links:
- A Master can hold up to three SCO links simultaneously — either all to the same Slave or spread across different Slaves.
- A Slave can hold up to three SCO links if they all come from the same Master, or up to two SCO links if they originate from two different Masters (scatternet scenario).
When you pair a mono Bluetooth headset with a phone, the phone creates both an ACL transport and a SCO transport to the headset at the same time. ACL carries profile commands (connect, volume up/down, disconnect). SCO carries the actual voice stream. Both coexist on the same physical link.
eSCO was introduced in Bluetooth Core Specification version 1.2 as a smarter, more capable version of SCO. It addresses two main weaknesses of SCO: there is no recovery from corrupted packets, and it only supports symmetric traffic.
What eSCO Adds Over SCO
eSCO SLOT STRUCTURE — RETRANSMISSION WINDOW
============================================================
Reserved slots + optional retransmission slots:
| TX | RX | [ReTX?]| [ReRX?]| TX | RX |
^------^ ^--------^
Main Used ONLY if CRC fails
reserved slots (capped count)
TX = Master transmit
RX = Slave transmit (Master receive)
ReTX = Retransmit slot (optional, bounded)
Asymmetric example (3-slot fwd, 1-slot rev):
|[---3-slot TX---| RX |[---3-slot TX---| RX |
============================================================
Traditional telephone audio is limited to the 200–3400 Hz frequency range. This is called Narrow Band Speech. According to the Nyquist theorem, this band requires a sampling rate of 8 kHz to represent faithfully. While functional, this range cuts off a lot of natural vocal tone — conversations sound flat and slightly muffled.
Human speech actually contains energy all the way up to around 7000 Hz. Wide Band Speech expands the usable range to roughly 50–7000 Hz, which is sampled at 16 kHz. The result is a noticeably fuller, more natural-sounding voice — the kind often marketed as “HD Voice” in modern smartphones and headsets.
NARROW BAND vs WIDE BAND SPEECH
============================================================
Frequency (Hz): 0 200 1000 3400 7000 16000
| | | | | |
[===Narrow Band===]
200 Hz to 3400 Hz
Sampled at 8 kHz
Classic phone call quality
[===========Wide Band Speech===========]
50 Hz to 7000 Hz
Sampled at 16 kHz
HD Voice — more natural, richer tone
Bluetooth transport used: eSCO
============================================================
Modern cellular networks support wide-band voice natively. But if the audio path goes through a Bluetooth headset, the headset must also support WBS — otherwise the call audio gets downsampled back to narrow band at the Bluetooth handoff point, cancelling the benefit of the network upgrade. That is why WBS support in Bluetooth headsets became essential with 3G rollout.
| Feature | ACL | SCO | eSCO |
|---|---|---|---|
| Connection type | Packet-switched | Circuit-switched | Circuit-switched |
| Slot reservation | No — uses free slots | Yes — reserved at setup | Yes — reserved at setup |
| Retransmission | Yes — full | No | Yes — limited |
| Traffic type | Asymmetric / bursty | Symmetric only | Symmetric or asymmetric |
| Typical use | Commands, file transfer, L2CAP data | 64 kbps voice (narrow band) | HD voice, WBS, higher quality audio |
| L2CAP multiplexing | Yes — multiple protocols share it | No | No |
| Created automatically? | Yes — on piconet join | No — explicitly requested | No — explicitly requested |
| Introduced in BT version | 1.0 | 1.0 | 1.2 |
HCI_Switch_Role. BLE does not support this.In the next part of this series, we will go up the stack and explore Logical Links (ACL-C, ACL-U, SCO-S), then move into L2CAP channels and see how upper-layer Bluetooth profiles ride on top of everything you just learned.
Keep Climbing the Bluetooth Stack 🚀
This article is part of the EmbeddedPathashala Bluetooth Lower Layers series — designed for engineers who want real depth, not just surface-level overviews.
so i hope in this you have learnt what is Bluetooth Baseband what are bluetooth logical transport.
