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