VelocAI logo Bluetooth Explorer Documentation

Bluetooth GATT Descriptor Reference

Characteristic Presentation Format (0x2904)

org.bluetooth.descriptor.gatt.characteristic_presentation_format

One or more Characteristic Presentation Format descriptors may be present. If multiple of these descriptors are present, then a Aggregate Formate descriptor is present. This descriptor is read only and does not require authentication or authorization to read. This descriptor is composed of five parts: format, exponent, unit, name space and description. The Format field determines how a single value contained in the Characteristic Value is formatted. The Exponent field is used with interger data types to determine how the Characteristic Value is furhter formatted. The actual value = Characteristic Value * 10^Exponent.

Quick Summary

Payload length is 7 bytes. This page is generated from official GATT XML and presented as implementation-ready guidance.

At a Glance

Key reference details for BLE implementation, interoperability testing, and AI-assisted troubleshooting.

PropertyValue
NameCharacteristic Presentation Format
UUID0x2904
Typeorg.bluetooth.descriptor.gatt.characteristic_presentation_format
XML RootDescriptor
Source Fileorg.bluetooth.descriptor.gatt.characteristic_presentation_format.xml
Field Count5

Field Specification

Parsed field definitions from the source XML value structure.

Field Requirement Format Unit Exponent Notes
FormatMandatory8bit---
ExponentMandatorysint8---
UnitMandatoryuint16--The Unit is a UUID.
NamespaceMandatory8bit--The Name Space field is used to indentify the organization that is responsible for defining the enumerations for the description field.
DescriptionMandatory16bit--The Description is an enumerated value from the organization identified by the Name Space field.

Byte Layout and Decode

Payload length is 7 bytes.

function decodePayload(dataView, offset = 0) {
  // Parse format (8bit) according to Bluetooth format rules.
  const exponent = dataView.getInt8(offset + 0);
  const unit = dataView.getUint16(offset + 1, true);
  // Parse namespace (8bit) according to Bluetooth format rules.
  // Parse description (16bit) according to Bluetooth format rules.
  return { format, exponent, unit, namespace, description };
}

Use Cases and Integration Notes

Descriptor Validation

Verify descriptor presence and format during integration and interoperability testing.

Client Configuration

Use descriptor semantics to configure notifications, indications, or presentation metadata.

Debug Diagnostics

Capture descriptor values alongside characteristic data for deeper BLE troubleshooting.

Implementation Checklist

  • Read descriptor metadata after characteristic discovery to confirm behavior contracts.
  • Respect descriptor read/write requirements before ATT operations.
  • Document descriptor values in exported BLE session logs for reproducibility.
  • Keep descriptor handling aligned with Bluetooth SIG format definitions.

FAQ

What is Characteristic Presentation Format in Bluetooth GATT?

Characteristic Presentation Format is defined as a Bluetooth GATT descriptor entry with type org.bluetooth.descriptor.gatt.characteristic_presentation_format and UUID 0x2904.

What UUID identifies Characteristic Presentation Format?

The UUID for Characteristic Presentation Format is 0x2904.

How should I parse Characteristic Presentation Format?

Payload length is 7 bytes.

Where does this definition come from?

This page is generated from the Bluetooth SIG mirror XML in the oesmith/gatt-xml repository.

How does this page support BLE implementation?

The page combines structured tables, practical Q&A, and JSON-LD metadata to help teams validate integrations and troubleshoot consistently.