Baseband packets

A Bluetooth packet is called a BB_PDU (BaseBand Packet Data Unit). Each packet can be considered part of one logical link:

Data values are transmitted with the least significant bit first.

Access Code (72 bits).

Preamble (4 bits); depends on the first (i.e. least significant) bit of the sync word: either 0101(0...) or 1010(1...).

Sync Word (64 bits); depends upon the type of access code, one of:
CAC (Channel Access Code): used when connected, generated from the LAP of the master device.
DAC (Device Access Code): used for paging, generated from the LAP of the paged device.
IAC (Inquiry Access Code): used for inquiring. For general inquiries, the GIAC (General IAC) is used, generated from the reserved LAP of 9E8B33.

Trailer (4 bits); depends on the last (i.e. most significant) bit of the sync word: either (...1)0101 or (...0)1010.

Header (54 bits). Actually consists of 18 bits, but each bit is transmitted three times.

AM_ADDR (3-bits): Active Member Address, the address of the active slave to which this packet is directed or from which it is being sent. An address of zero is reserved for a "broadcast" message to all active slaves.

TYPE (4 bits): Type code; definition is different for ACL and SCO links.

FLOW (1 bit): Flow control over the ACL link; 0=stop, 1=go.

ARQN (1 bit): Acknowledgement indication; 0=NAK, 1=ACK.

SEQN (1 bit): Sequence number. This bit is toggled for consecutive packets.

HEC (8 bits): Header Error Check, an integrity check value calculated from the other 10-bits of the header.

Only for Enhanced Data Rate packets: guard time, of 5 µs (±0.25 µs), while switching from GFSK to DPSK modulation.

Only for Enhanced Data Rate packets: synchronisation sequence (11 symbols). One reference symbol (of arbitrary phase) followed by a fixed sequence of 10 symbols.

Payload.

Only for Enhanced Data Rate packets: trailer (2 symbols), containing all zero data.

An ID (identity) packet consists of just the preamble and sync word, a total of 68 bits.