GATT Characteristic

<\/script>\n
'; }, get iframeSnippet() { const domain = '{ SITE_DOMAIN }'; const type = '{ embed_type }'; const slug = '{ embed_slug }'; return ''; }, get activeSnippet() { return this.method === 'script' ? this.scriptSnippet : this.iframeSnippet; }, copySnippet() { navigator.clipboard.writeText(this.activeSnippet).then(() => { this.copied = true; setTimeout(() => { this.copied = false; }, 2000); }); } }" @keydown.escape.window="open = false" @click.outside="open = false">

Embed This Widget

Theme


      
    

Widget powered by . Free, no account required.

A data value within a GATT service, with properties (read, write, notify, indicate) and optional descriptors.

Also known as: Characteristic BLE Characteristic

What Is a GATT Characteristic?

A ATT">gatt-characteristic/" class="glossary-term-link" data-term="GATT Characteristic" data-definition="Data value within a BLE service with R/W/N properties." data-category="GATT & ATT">GATT Characteristic is the fundamental data unit inside a BLE service. It represents a single value -- such as a temperature reading, device name, or control point command -- together with metadata that describes how the value can be accessed and observed.

Characteristic Structure

Each characteristic is composed of three or more attributes in the ATT database:

  1. Characteristic Declaration (UUID 0x2803) -- contains the properties bitmask, the value handle, and the characteristic UUID.
  2. Characteristic Value -- the actual data payload, addressed by the value handle.
  3. Descriptors (optional) -- additional metadata such as the CCCD, Characteristic User Description, or Characteristic Presentation Format.

Properties Bitmask

The declaration includes an 8-bit properties field that advertises what operations the characteristic supports:

Bit Property Description
0 Broadcast Value included in advertising data
1 Read Client can read the value
2 Write Without Response Client can write without acknowledgment
3 Write Client can write with acknowledgment
4 Notify Server can push updates without acknowledgment
5 Indicate Server can push updates with acknowledgment
6 Authenticated Signed Writes Write with data signing
7 Extended Properties Additional properties in descriptor

SIG-Defined vs. Custom Characteristics

The Bluetooth SIG maintains a registry of standardized 16-bit characteristic UUIDs. Heart Rate Measurement (0x2A37), Battery Level (0x2A19), and Temperature Measurement (0x2A1C) are common examples. Custom characteristics use full 128-bit UUIDs and can carry arbitrary payloads up to the negotiated MTU minus the ATT header.

Data Flow

For read-heavy use cases (e.g., configuration values), the client issues ATT Read Requests. For streaming sensor data, the server typically uses notifications or indications, which requires the client to first enable them by writing to the CCCD. Write operations can be acknowledged (Write Request) or fire-and-forget (Write Command), depending on reliability requirements.

Design Tips

Keep characteristic payloads compact. If a sensor produces multiple related values (X, Y, Z axes), consider packing them into a single characteristic rather than creating three separate ones, because each additional characteristic adds service-discovery overhead and consumes ATT handles. Document the byte layout clearly so that client developers can parse the raw payload without ambiguity.

Related Terms

Understanding BLE Architecture: Protocol Stack Overview

Getting Started

…Host Business logic, user data GATT Host Service/characteristic data model ATT Host Attribute read/write protocol SMP Host…

BLE GATT Server Implementation Guide

Development

…existing standard definitions before creating custom ones. Characteristic Properties Property Bit Meaning Read 0x02 Client can read…

Web Bluetooth API: BLE from the Browser

Development

…}); The GATT hierarchy — server → service → characteristic → descriptor — mirrors the native BLE stack exactly. MTU…

Python BLE with Bleak: Cross-Platform BLE Scripting

Development

…returns a BleakGATTServiceCollection with full service/ characteristic / descriptor hierarchy. Reading, Writing, and…

BLE OTA DFU: Over-the-Air Firmware Updates

Development

…bootloader partition) receives images via a dedicated GATT characteristic and validates them using GBL (Gecko Bootloader) image…

flutter_blue_plus: Read, Write & Notify in Flutter

Development

…${c.uuid} props: ${c.properties}'); } } GATT service and characteristic UUIDs can be matched against the UUID Generator for…

GATT UUID & Descriptors (0x2902) Explained — BLE

Protocols & Profiles

…Characteristics , which hold the actual data values. A characteristic declaration attribute (always the first handle in the…

BLE in Healthcare: Medical Devices and Patient Monitoring

Industry Applications

…scales These profiles use SIG-assigned UUIDs and defined characteristic formats, ensuring app interoperability without custom…

Frequently Asked Questions

Our glossary covers 90+ BLE technical terms organized by category. Each term includes a definition, related terms, and links to relevant chips and guides.