VelocAI logo Bluetooth Explorer Documentation

Bluetooth GATT Characteristic Reference

Navigation (0x2A68)

org.bluetooth.characteristic.navigation

The Navigation characteristic is a variable length structure containing a Flags field, a Bearing field, a Heading field and, based on the contents of the Flags field, may contain a combination of data fields listed below.

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.

PropertyValue
NameNavigation
UUID0x2A68
Typeorg.bluetooth.characteristic.navigation
XML RootCharacteristic
Source Fileorg.bluetooth.characteristic.navigation.xml
Field Count6

Field Specification

Parsed field definitions from the source XML value structure.

Field Requirement Format Unit Exponent Notes
FlagsMandatory16bit---
BearingMandatoryuint16org.bluetooth.unit.plane_angle.degree-2Unit is in degrees with a resolution of 1/100
HeadingMandatoryuint16org.bluetooth.unit.plane_angle.degree-2Unit is in degrees with a resolution of 1/100
Remaining DistanceOptionaluint24org.bluetooth.unit.length.meter-1Unit is in meters with a resolution of 1/10
Remaining Vertical DistanceOptionalsint24org.bluetooth.unit.length.meter-2Unit is in meters with a resolution of 1/100
Estimated Time of ArrivalOptionalN/A--Smallest units in seconds

Bit Map

Bit-level enumerations extracted from the XML BitField definition.

Field Bit Size Name 0 Means 1 Means
Flags01Remaining Distance PresentFalseTrue
Flags11Remaining Vertical Distance PresentFalseTrue
Flags21Estimated Time of Arrival PresentFalseTrue
Flags32Position StatusNo PositionPosition Ok
Flags51Heading SourceHeading based on movementHeading based on magnetic compass
Flags61Navigation Indicator TypeTo WaypointTo Destination
Flags71Waypoint ReachedFalseTrue
Flags81Destination ReachedFalseTrue

Byte Layout and Decode

Payload length is profile-defined or variable based on field formats.

function decodePayload(dataView, offset = 0) {
  // Parse flags (16bit) according to Bluetooth format rules.
  const bearing = dataView.getUint16(offset + 0, true);
  const heading = dataView.getUint16(offset + 2, true);
  // Parse remaining_distance (uint24) according to Bluetooth format rules.
  // Parse remaining_vertical_distance (sint24) according to Bluetooth format rules.
  // Parse estimated_time_of_arrival (N/A) according to Bluetooth format rules.
  return { flags, bearing, heading, remaining_distance, remaining_vertical_distance, estimated_time_of_arrival };
}

Use Cases and Integration Notes

BLE Telemetry

Map characteristic values into dashboards and alerts for device observability.

Firmware Regression

Compare decoded fields across builds to detect protocol or scaling changes.

App Integration

Build stable parsing paths that convert raw payloads into typed app models.

Implementation Checklist

  • Validate payload length and mandatory fields before decode.
  • Decode with Bluetooth-specified signedness, unit, and exponent handling.
  • Convert units at presentation boundaries to avoid drift in business logic.
  • Persist raw packets and decoded values for reproducible troubleshooting.

FAQ

What is Navigation in Bluetooth GATT?

Navigation is defined as a Bluetooth GATT characteristic entry with type org.bluetooth.characteristic.navigation and UUID 0x2A68.

What UUID identifies Navigation?

The UUID for Navigation is 0x2A68.

How should I parse Navigation?

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.