Map The Database
Services, characteristics, and descriptors are all ATT attributes with handles. Discovery finds the handles a client will use later.
Explore BLE services, characteristics, descriptors, ATT operations, CCCD subscriptions, and MTU limits.
Step through how a BLE client discovers a server's attribute database, reads and writes characteristics, enables the CCCD, and chooses Notify or Indicate while the ATT MTU limits each packet.
Services, characteristics, and descriptors are all ATT attributes with handles. Discovery finds the handles a client will use later.
Read pulls a value, Write configures the server, Notify pushes updates, and Indicate pushes with an ATT confirmation.
The server cannot start GATT notifications or indications for a characteristic until the client writes the CCCD.
Characteristic properties say what is possible; permissions and MTU decide whether a specific transfer succeeds.
The client discovers primary services first, then characteristics and descriptors so later packets can use handles instead of names.
Use these cards as the compact memory aid after interacting with the workbench.
The GATT client sends ATT requests, commands, and confirmations. The server stores the attribute database and sends responses or server-initiated value updates.
Discovery maps UUIDs to handles. Later packets usually target handles because they are compact and unambiguous inside that connection.
A primary service such as 0x180D Heart Rate contains characteristics such as 0x2A37 Heart Rate Measurement.
Descriptors can describe format, name, valid range, or client configuration. The CCCD 0x2902 enables Notify or Indicate.
Notification is efficient for frequent values. Indication adds an ATT confirmation when the application needs an explicit received signal.
With the default 23 byte ATT_MTU, Notify, Indicate, and Write Request carry up to 20 value bytes in this teaching model.
A characteristic can advertise Read or Write while still requiring encryption, authentication, or authorization before access succeeds.
Bluetooth SIG 16-bit UUIDs are assigned numbers. Custom services should use implementer-controlled 128-bit UUIDs unless a short UUID is officially assigned.
ATT_MTU - 3 as the teaching payload budget for notifications, indications, and simple write requests because the ATT opcode and attribute handle consume three bytes.