Konubinix' opinionated web of thoughts

Bluetooth Low Energy

Fleeting

Introduction to Bluetooth Low Energy

The peripheral is known as the GATT Server, which holds the ATT lookup data and service and characteristic definitions, and the GATT Client (the phone/tablet), which sends requests to this server

https://learn.adafruit.com/introduction-to-bluetooth-low-energy/gatt

All transactions are started by the main device, the GATT Client, which receives response from the secondary device, the GATT Server

https://learn.adafruit.com/introduction-to-bluetooth-low-energy/gatt

Generic Attribute Profile

All Bluetooth Low Energy devices use the Generic Attribute Profile (GATT).

https://en.wikipedia.org/wiki/Bluetooth_Low_Energy

GATT has the following terminology:

https://en.wikipedia.org/wiki/Bluetooth_Low_Energy

Client A device that initiates GATT commands and requests, and accepts responses, for example, a computer or smartphone.

https://en.wikipedia.org/wiki/Bluetooth_Low_Energy

Server A device that receives GATT commands and requests, and returns responses, for example, a temperature sensor

https://en.wikipedia.org/wiki/Bluetooth_Low_Energy

Service A collection of related characteristics, which operate together to perform a particular function. For instance, the Health Thermometer service includes characteristics for a temperature measurement value, and a time interval between measurements.

https://en.wikipedia.org/wiki/Bluetooth_Low_Energy

Descriptor A descriptor provides additional information about a characteristic. For instance, a temperature value characteristic may have an indication of its units (e.g. Celsius), and the maximum and minimum values which the sensor can measure. Descriptors are optional – each characteristic can have any number of descriptors.

https://en.wikipedia.org/wiki/Bluetooth_Low_Energy

Identifiers

Edit

Services, characteristics, and descriptors are collectively referred to as attributes, and identified by UUIDs.

https://en.wikipedia.org/wiki/Bluetooth_Low_Energy

implementer may pick a random or pseudorandom UUID for proprietary uses, but the Bluetooth SIG have reserved a range of UUIDs (of the form xxxxxxxx-0000-1000-8000-00805F9B34FB[53]) for standard attributes.

https://en.wikipedia.org/wiki/Bluetooth_Low_Energy

efficiency, these identifiers are represented as 16-bit or 32-bit values in the protocol, rather than the 128 bits required for a full UUID. For example, the Device Information service has the short code 0x180A, rather than 0000180A-0000-1000-… .

https://en.wikipedia.org/wiki/Bluetooth_Low_Energy

full list is kept in the Bluetooth Assigned Numbers document online

https://en.wikipedia.org/wiki/Bluetooth_Low_Energy

characteristic

Characteristic A data value transferred between client and server, for example, the current battery voltage.

https://en.wikipedia.org/wiki/Bluetooth_Low_Energy

Notes linking here