BLE Stack

Device Types

  • Central - discovers and connects to peripherals

    • E.g. your phone

    • Think “client”

  • Peripheral - accepts connections from central. Advertises information about itself.

    • E.g. your smart watch

    • Think “server”

  • Broadcaster - Advertises information but does not accept connections

    • E.g. In-store location beacons

  • Observer - discovers peripherals and broadcasters but does not accept connections.

    • Uncommon

HCI

This layer abstracts away the differences in chipsets from the operating system.

L2CAP

GAP

GATT

The Generic Attribute Profile is abbreviated as GATT.

Think of GATT like TCP/UDP. There are services and characteristics supported by a peripheral device and the central device can read and write to them. This is very similar to TCP/UDP ports concept.

One of many Bluetooth Low Energy layers

Most important for interoperability with apps

Comprised of Services & Characteristics & Descriptors

Services, Characteristics, and Descriptors Oh My

Services

Basic device functionality

Groups of characteristics by function

“Generic Access”, “Device Information”

“Battery Services”, “Apple Notification Center Service”

Characteristics

UUID & Value pair

Read, Write, Notify, Indicate

“Manufacturer Name String”

“Model Number String”

Descriptors

These are information about the data in the characteristic.

UUID

Random number

Many are assigned by the Bluetooth SIG

Vendor / Service / Characteristic

Last updated

Was this helpful?