Bluetooth GATT Descriptor Reference
Valid Range (0x2906)
If the Characteristic Value to which this descriptor is attached has a fixed exponent, then the values in this descriptor have the same exponent. The first value in the Valid Range descriptor represents the lower inclusive value of the range. The second value represents the higher inclusive value of the range. The data type and units for lower inclusive value and the upper inclusive value are identical to the data type and units of the characteristic for which it is used.
Quick Summary
Payload length is profile-defined or variable based on field formats. 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.
| Property | Value |
|---|---|
| Name | Valid Range |
| UUID | 0x2906 |
| Type | org.bluetooth.descriptor.valid_range |
| XML Root | Descriptor |
| Source File | org.bluetooth.descriptor.valid_range.xml |
| Field Count | 2 |
Field Specification
Parsed field definitions from the source XML value structure.
| Field | Requirement | Format | Unit | Exponent | Notes |
|---|---|---|---|---|---|
| Lower inclusive value | Mandatory | characteristic | - | - | The lower bound is the same format as the characteristic the descriptor describes. |
| Upper inclusive value | Mandatory | characteristic | - | - | The upper bound is the same format as the characteristic the descriptor describes. |
Byte Layout and Decode
Payload length is profile-defined or variable based on field formats.
function decodePayload(dataView, offset = 0) {
// Parse lower_inclusive_value (characteristic) according to Bluetooth format rules.
// Parse upper_inclusive_value (characteristic) according to Bluetooth format rules.
return { lower_inclusive_value, upper_inclusive_value };
}
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 Valid Range in Bluetooth GATT?
Valid Range is defined as a Bluetooth GATT descriptor entry with type org.bluetooth.descriptor.valid_range and UUID 0x2906.
What UUID identifies Valid Range?
The UUID for Valid Range is 0x2906.
How should I parse Valid Range?
Payload length is profile-defined or variable based on field formats.
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.