Chapters

4 Bluetooth: Radio, Channels, and Piconets

networking
wireless
bluetooth
ble
iot

4.1 Start With the Decision

Bluetooth shares 2.4 GHz with Wi-Fi and other radios. Hopping and piconet rules help it keep a usable link.

4.2 Route Overview

This is part 2 of 2. Review Bluetooth: BLE Profiles and Operations for the preceding evidence.

4.3 Learning Objectives

  • Compare Classic and BLE channel maps.
  • Explain hopping, piconets, acquisition, and protected bits.

4.4 Chapter Roadmap

  • How Bluetooth Works: Radio, Channels, and Piconets
  • Figure Review: Classic Acquisition and Protected Bits
  • Summary
  • Key Takeaway
  • See Also

4.5 How Bluetooth Works: Radio, Channels, and Piconets

Behind the discovery-and-GATT behavior above sits a specific radio design. The title’s promise — how Bluetooth actually works — comes down to three ideas: the 2.4 GHz band, frequency hopping, and the piconet.

The 2.4 GHz ISM band, split into channels. Inspect Figure 4.1 to locate where discovery and connected traffic sit in the crowded band shared with Wi-Fi, Zigbee, and microwave ovens. Classic Bluetooth divides the band into 79 channels of 1 MHz; BLE uses 40 channels of 2 MHz, but the picture makes the three advertising channels’ deliberate spacing easier to reason about.

BLE 40-channel frequency map from 2402 to 2480 MHz, with advertising channels 37, 38, and 39 highlighted at the band edges and centre, plus example frequency-hopping arcs among the 37 data channels.
Figure 4.1: BLE channel map separating three advertising channels from 37 connected data channels

Read Figure 4.1 from advertising channels 37, 38, and 39 to the 37 data channels between them. Advertising uses the sparse trio to improve the chance that discovery avoids a busy Wi-Fi region; after connection, peers move across the data-channel set. That division sets up Figure 4.2: channels provide the available places, while the hopping sequence decides which place the link uses next.

Frequency hopping spread spectrum (FHSS). Rather than sitting on one channel, Bluetooth hops. Inspect Figure 4.2 to follow that motion through time instead of reading the band as a static allocation. Classic hops about 1,600 times per second across its channel set, following a sequence derived from the master’s clock and address; BLE also hops across its data channels after connection.

Frequency Hopping Spread Spectrum diagram showing nine numbered hop points across the 2.400–2.4835 GHz band, connected by arcs indicating the order in which Classic Bluetooth visits channels.
Figure 4.2: Classic Bluetooth frequency hops traced in time order across the 2.4 GHz band

In Figure 4.2, follow the numbered arcs in order rather than from low frequency to high frequency. A burst of interference damages only packets that land on the affected channel before the sequence moves on. Adaptive Frequency Hopping strengthens that behavior by excluding channels observed as busy, provided enough usable spectrum remains. This is the coexistence mechanism the site review must test; hopping improves resilience but does not make sustained wideband interference disappear.

Remi’s Signal Check

  • Band: 2.4 GHz ISM — Classic: 79 × 1 MHz channels; BLE: 40 × 2 MHz, three for advertising.
  • Trade: ~1,600 hops a second ride out interference bursts; AFH drops Wi-Fi-busy channels.
  • Room test: map the site’s active Wi-Fi channels — AFH needs clean channels left to hop to.

Classic Bluetooth’s physical layer uses Gaussian frequency-shift keying at the basic 1 Mbps rate, with enhanced data-rate modes using phase-shift keying for 2 and 3 Mbps payloads. Inspect Figure 4.3 to connect those rates to the scheduler: the carrier does not hop during one frame, and packets occupy one, three, or five 625 microsecond slots before the link moves on. A basic-rate packet also carries an access code and header before its payload.

Classic Bluetooth TDD schedule showing master and slave lanes on a 625-microsecond slot grid, with one-, three-, and five-slot packets followed by reply opportunities.
Figure 4.3: Classic Bluetooth master and slave transmissions on a 625-microsecond TDD slot grid

Read Figure 4.3 left to right across the 625-microsecond grid. The master opens the exchange, a slave replies in its scheduled direction, and a three- or five-slot packet holds one hop frequency for its full duration before the next transmission changes channel. The alternation connects topology to throughput: framing, reply opportunities, polls, and slot boundaries all consume airtime. Packet review must therefore count the access code, header, CRC, coding, and retransmissions before turning a nominal bit rate into an application transfer promise.

Put numbers behind that overhead. The preamble (4 bits), sync word (64 bits), and trailer (4 bits) fix the access code at 72 bits, and the 18-bit header is sent three times under 1/3-rate FEC, landing on the air as 54 bits — both fixed costs before a single payload byte moves. A slave sending 450 bytes (3,600 bits) at the 1 Mb/s basic rate needs 72 + 54 + 3,600 + 16 (CRC) = 3,742 bits, which already exceeds both the 3,125 microseconds a 5-slot packet allows and its 2,744-bit maximum payload. The remaining 856 bits need a second transmission: framed with its own access code, header, and CRC that comes to 998 bits, too big for 1 slot but well under 3, so it still only claims a single 625-microsecond slot’s worth of payload (483 bits) and leaves a 373-bit remainder for a third, 515-bit (515-microsecond) packet. Three transmissions plus two 625-microsecond master polls between them total 4,265 microseconds for 450 bytes — an effective throughput of about 844 kb/s against the nominal 1 Mb/s rate, purely from access-code, header, CRC, and slot-boundary overhead. FEC adds more of that overhead deliberately: Bluetooth’s 1/3 rate repeats every information bit three times (why the 18-bit header becomes 54 bits on air), and its 2/3 rate polynomial code adds roughly one redundant bit for every two information bits.

4.5.1 Classic access codes and synchronisation

Every Classic baseband packet begins by answering two questions: “is this a Bluetooth waveform?” and “does it belong to the procedure or piconet I am following?” The access code provides that acquisition boundary before the receiver attempts to decode the header. Its identity comes from a 24-bit Lower Address Part (LAP), but the transmitted access code also contains synchronization redundancy.

Access-code useLAP sourceWhat the receiver learns
Channel Access Code (CAC)The piconet master’s LAPThis packet belongs to the synchronized piconet
Device Access Code (DAC)The paged device’s LAPThis page or page response targets one device
General Inquiry Access Code (GIAC)Reserved general-inquiry LAPAny generally discoverable device may respond
Dedicated Inquiry Access Code (DIAC)One of the reserved dedicated-inquiry LAPsOnly devices serving the named limited inquiry class should respond

Construction is easiest to remember as a coding pipeline. Start with the 24 LAP bits and append one of two six-bit patterns; together with the LAP’s most-significant bit, that choice forms a seven-bit Barker sequence that improves autocorrelation. XOR the resulting 30 information bits with the information-covering part of the fixed PN overlay, generate the parity of the BCH code — an expurgated binary (64,30)(64,30) block code — assemble the 64-bit codeword, and then XOR the complete codeword with the full PN overlay. That final overlay leaves the LAP/Barker information recoverable while scrambling the parity structure. A four-bit alternating preamble is selected from the first sync-word bit so the transition into synchronization is unambiguous. When a packet header follows, a four-bit trailer continues the alternating pattern at the far edge. This produces the familiar 72-bit packet access code: 4-bit preamble, 64-bit sync word, and 4-bit trailer. ID packets used by inquiry and paging omit the following header and use the shorter access-code form appropriate to that packet.

The LAP remains recoverable from the known construction, so the access code is a synchronizer and correlator, not a confidentiality mechanism. A receiver correlates incoming symbols against the expected CAC, DAC, or IAC, obtains packet timing, and only then attempts the whitened and error-protected header. Confusing that acquisition code with authentication would let any radio that can synthesize the sequence masquerade as the expected piconet at the physical boundary.

4.5.2 Access-Code Knowledge Check

4.5.3 Classic header encoding pipeline

The logical Classic packet header is only 18 bits, but each bit has a distinct link-control job:

FieldBitsMeaning
AM_ADDR / LT_ADDR3Legacy active-member name and current logical-transport name for the active peripheral address; values 1–7 identify a peripheral and zero is broadcast
TYPE4Packet family, slot occupancy, payload interpretation, and payload coding choice
FLOW1Receiver-side ACL buffer flow indication; zero asks the peer to pause new ACL payloads
ARQN1Piggybacked positive/negative acknowledgement state for the preceding eligible payload
SEQN1Alternating sequence bit used to distinguish a new payload from a retransmission
HEC8Header Error Check calculated over the first ten header bits

For ordinary connected packets, the Header Error Check is generated by an eight-bit linear-feedback shift register initialized from the central’s Upper Address Part (UAP). Defined FHS exceptions use the peripheral UAP or the Default Check Initialization during page/inquiry response. That initialization supplies the right header-check context while still providing error detection rather than cryptographic integrity. The resulting 18 bits are whitened with the Classic whitening sequence, whose LFSR seed is normally derived from the central clock for the current slot; inquiry/page-response exceptions use their specified hopping input. Whitening prevents long runs and persistent spectral patterns; it does not hide the data from an observer who knows the public procedure.

Finally, 1/3-rate repetition coding sends each whitened header bit three times:

18 header bits×3=54 on-air bits.18\ \text{header bits}\times 3=54\ \text{on-air bits}.

At the receiver, majority decoding happens before dewhitening and HEC evaluation. That order matters during diagnosis: a correlation failure points toward the access code or timing, an HEC failure points toward a header that could not be recovered, and a later CRC failure points toward the payload path.

Remi’s Signal Check

  • Band: every basic-rate packet carries 72 bits of access code and 54 bits of header before one byte of payload.
  • Trade: slot boundaries and FEC redundancy are why a 1 Mb/s radio rarely delivers 1 Mb/s of payload -- 450 bytes landed at roughly 844 kb/s here.
  • Room test: budget airtime from the framed packet count and poll schedule, not the advertised bit rate, before promising a transfer-time number.

The piconet. A Bluetooth connection is organized as a piconet: one device is the master (BLE calls it the central) and owns the clock and hopping sequence; up to seven active slaves (BLE: peripherals) synchronize to it and hop in lockstep. In BLE, a peripheral first advertises on the three advertising channels; a scanning central hears it and opens the connection, after which both follow the shared data-channel hop sequence.

In Classic scatternets, a bridge device can participate in more than one piconet by taking different roles at different times, such as slave in one piconet and master in another. That does not create arbitrary peer-to-peer traffic. Each piconet still has its own clock, hop sequence, polling behavior, and active-member limit, so bridge behavior belongs in the capacity and latency evidence.

Stack and version landmarks. Baseband handles physical channels, hop selection, packets, paging, inquiry, and synchronous or asynchronous links. L2CAP sits above it for logical-channel multiplexing, segmentation and reassembly, and group abstractions — with a default 672-byte MTU and a 48-byte minimum every implementation must support — while RFCOMM builds a reliable virtual serial stream over that stack for Classic serial-style profiles. Historically, Bluetooth v1.2 established the stable early Classic baseline, v2.1 + EDR added Secure Simple Pairing and higher practical rates, v3.0 + HS used Bluetooth for setup while routing high-speed data over 802.11 when the +HS feature was actually present, and v4.0 separated Classic, high-speed, and Bluetooth Low Energy behavior.

BLE changes the link setup vocabulary. A peripheral advertises periodically, often somewhere between tens of milliseconds and several seconds depending on power and discovery needs. The common advertising packet types are ADV_IND for general connectable advertising, ADV_DIRECT_IND for a directed connection attempt, ADV_NONCONN_IND for broadcast-only information, and ADV_SCAN_IND when scan responses may add more data. Once connected, the peers agree on an access address, hop increment, channel map, and connection timing; private addressing and identity keys can keep the product from being tracked by a fixed radio address.

Bluetooth 5 added PHY choices that should be named in design evidence: LE 1M, LE 2M, and LE Coded. LE Coded uses redundancy for range, commonly described as S=2 around 500 kbit/s or S=8 around 125 kbit/s, while leaving the preamble and access-address handling visible as lower-layer evidence. The trade is deliberate: coded packets can survive weaker links, but the extra symbols stretch airtime and can reduce throughput or battery life if the product only needed a short-range link.

4.5.4 LE Coded encoder derivation

LE Coded begins with a rate-1/21/2, constraint-length-four convolutional encoder. Let uku_k be the current input bit and take all additions modulo two (XOR). The generator polynomials

G0(x)=1+x+x2+x3,G1(x)=1+x2+x3G_0(x)=1+x+x^2+x^3, \qquad G_1(x)=1+x^2+x^3

give the two encoder outputs

v0,k=ukuk1uk2uk3,v_{0,k}=u_k\oplus u_{k-1}\oplus u_{k-2}\oplus u_{k-3}, v1,k=ukuk2uk3.v_{1,k}=u_k\oplus u_{k-2}\oplus u_{k-3}.

Transmit v0,kv_{0,k} first and v1,kv_{1,k} second. Starting from an all-zero encoder state, the input bits 1 0 1 1 therefore produce pairs 11 10 00 10. The result is already twice as many coded bits as information bits. The receiver’s Viterbi decoder does not decide each pair independently; it searches the permitted state transitions for the most likely complete path, which is how redundancy repairs some symbol errors.

The pattern mapper then sets the final symbol expansion. With coding scheme S=2, each convolutional-encoder bit maps to one transmitted symbol, so one information bit becomes two symbols overall. With S=8, each encoder bit maps to four symbols (0 to 0011, 1 to 1100), so one information bit becomes eight symbols overall. For the example above, the first encoded pair 11 becomes 1100 1100 under S=8. The larger Hamming separation gives the receiver more evidence on a weak link, but it consumes four times the airtime of the S=2 mapping for the same convolutional output.

This derivation also explains the coding indicator. The first coded block must be decodable before the receiver knows whether the later PDU uses S=2 or S=8, so the access-address-following control block uses the fixed, robust S=8 path. Its coding indicator selects the mapper for the second block.

Remi’s Signal Check

  • Band: same 2.4 GHz band, three BLE PHYs — LE 1M, LE 2M, LE Coded.
  • Trade: Coded redundancy buys range — S=2 ~500 kbit/s, S=8 ~125 — and pays in airtime and battery.
  • Room test: measure throughput and battery at the real mounting distance before approving Coded.

LE Coded packets still start with ordinary synchronization evidence, but their coded portion adds fields that tell the receiver how to decode what follows. Inspect Figure 4.4 to locate that boundary before comparing S=2 and S=8; otherwise “coded PHY” hides which symbols receive which protection and how much airtime the choice adds.

LE Coded packet structure showing Preamble, Access Address, Coding Indicator, TERM1, PDU, CRC, and TERM2, grouped into an S=8-coded first FEC block and a second block using S=2 or S=8.
Figure 4.4: LE Coded packet fields divided between the fixed S=8 first block and selectable second block

Read Figure 4.4 from preamble and access address into FEC block 1, where the coding indicator and TERM1 are always protected with S=8. The indicator then selects S=2 or S=8 for the PDU and CRC in block 2 before TERM2 closes it. Stronger coding stretches airtime to improve weak-link robustness, so the choice must remain connected to throughput and battery evidence. Bluetooth direction finding adds a different extension after the CRC; its phase measurements still require antenna calibration, interference review, and link-layer trust rather than being accepted as self-authenticating position proof.

4.5.5 LE protected-bitstream pipeline

Packet processing has a strict direction. For a protected data-channel PDU, the transmitter first applies the link-layer encryption and message-integrity procedure to the protected payload, then calculates the packet CRC over the resulting PDU. The PDU and CRC are whitened so their transmitted symbols do not retain data-dependent DC patterns. On LE Coded PHY, the coded blocks then pass through the rate-1/21/2 convolutional encoder and the selected pattern mapper before GFSK modulation.

The receiver must undo those operations in reverse:

  1. Recover symbols and apply S=2 or S=8 pattern demapping.
  2. Viterbi-decode the convolutional code and use the terminators to return the trellis to its known state.
  3. Dewhiten the recovered PDU and CRC with the channel/clock-derived whitening state.
  4. Check the CRC before handing a corrupted PDU farther up the link layer.
  5. For an encrypted PDU, decrypt and verify its message-integrity code before releasing plaintext.

These stages protect different failure boundaries. FEC spends airtime to correct some channel errors. The CRC detects residual accidental corruption. Whitening shapes the transmitted spectrum. Encryption and the integrity code protect confidentiality and authenticity for the fields within their scope. None substitutes for the others, and not every field is covered: preamble, access address, and coding-control information must remain available early enough for acquisition and decoding.

Why BLE is low-power. The advertise-then-connect model, tiny packets, and long sleep intervals mean the radio is off most of the time — the battery-life evidence the review sections above check is a direct consequence of this radio design.

Remi’s Signal Check

  • Band: advertising uses three of 40 channels, repeating between tens of milliseconds and several seconds.
  • Trade: tiny packets and long sleeps keep the radio off — battery bought with discovery latency.
  • Room test: log the real advertising interval and sleep state; that is the battery evidence.

The worked encoder in Figure 4.5 makes the redundancy-to-airtime trade visible below the packet-field view.

An LE Coded PHY encoder turns input 101 into output pairs 11, 10 and 00. S=2 and S=8 mappings trade effective data rate and airtime for robustness and range.
Figure 4.5: A BLE convolutional encoder shifts input 101 through two generator-polynomial paths and compares S equals 2 with S equals 8 mapping.

Follow Figure 4.5 from INPUT · 1 0 1 through and to the g₀ = 1+D+D² and g₁ = 1+D² taps. The paired stream then reaches S = 2 or S = 8: both preserve the same information, but the larger symbol expansion spends more airtime to give the receiver more evidence on a weak link.

4.6 Figure Review: Classic Acquisition and Protected Bits

Classic Bluetooth acquisition begins with a synchronization identity before the receiver can interpret the protected header and payload.

Classic Bluetooth packet with 72-bit access code, 54-bit header, and payload, plus channel, device, general inquiry, and dedicated inquiry access-code purposes.
Figure 4.6: Classic Bluetooth access-code purposes and packet position.

In Figure 4.6, ACCESS CODE · 72 bits precedes the header and payload, while CAC, DAC, GIAC, and DIAC separate piconet acquisition, paging, and discovery roles from durable identity claims.

The access word and packet header then pass through different construction and protection stages.

Classic Bluetooth builds a sync word from LAP, then protects the packet header with HEC, whitening and rate-1/3 FEC. The 18-bit header becomes 54 transmitted bits.
Figure 4.7: Classic Bluetooth synchronization and header-encoding pipeline.

Figure 4.7 follows LAP · 24 bit → Barker extend → PN operation → SYNC WORD, then shows how the 18-bit PACKET HEADER gains HEC, whitening, and RATE 1/3 FEC to become 54 transmitted bits.

Encryption, integrity checking, coding, and RF mapping protect different failure boundaries and must remain in the correct order.

Bluetooth transmit protection adds encryption, CRC, whitening and selected FEC before RF mapping. Receive recovery reverses transforms; failed CRC or MIC stops payload delivery.
Figure 4.8: Bluetooth transmit and receive protected-bitstream pipelines.

The transmit side of Figure 4.8 places encrypt before CRC add, while the receive side performs CRC check · drop bad before decrypt · reveal; the labeled confidentiality and integrity boundaries show why FEC cannot substitute for encryption.

4.7 Summary

  • Bluetooth fundamentals review starts by naming the behavior: Classic stream, BLE advertising, BLE connection, GATT exchange, setup workflow, gateway handoff, or mesh control.
  • BLE supports low-power IoT designs when the actual advertising, connection, payload, sleep, retry, and recovery behavior fit the product goal.
  • Discovery, connection, GATT access, application meaning, security, power, and operations are separate evidence boundaries.
  • A useful design record names the role, receiver population, service model, timing, trust flow, recovery path, and retest trigger.
  • Approvals should stay bounded to the tested phones, firmware, enclosure, radio environment, application version, and ownership workflow.

4.8 Key Takeaway

Choose Bluetooth for IoT only when the reviewed mode, role, service model, timing, trust flow, power behavior, receiver scope, and recovery path match the product job.

4.9 See Also

Review the broader Bluetooth fit decision across Classic, BLE, roles, profiles, security, and operations.

Follow services, characteristics, permissions, notifications, indications, and GATT evidence in detail.

Review advertising, scanning, connection setup, pairing, bonding, parameters, and reconnection behavior.

Connect Bluetooth profile and service choices to interoperability, application meaning, and evidence records.

4.10 Continue Your Route

This final part closes the route from How Bluetooth Works: Radio, Channels, and Piconets through See Also. Return to Bluetooth: BLE Profiles and Operations or continue from the bluetooth-ble module index.