The UUID is a unique 128-bit (16 byte) ID used to identify different service or characteristics on the BLE device.
The 128-bit (16-byte) UUID as a human readable const-string. Format: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX Upper and lower case supported. Hyphens are optional, but only upto four of them. The UUID is stored internally as a 16 byte array, LSB (little endian), which is opposite from the string.
For efficiency, and because 16 bytes would take a large chunk of the 27-byte data payload length of the Link Layer, the BLE specification adds two additional UUID formats: 16-bit and 32-bit UUIDs. These shortened formats can be used only with UUIDs that are defined in the Bluetooth specification (listed by the Bluetooth SIG as standard Bluetooth UUIDs).
To reconstruct the full 128-bit UUID from the shortened version, insert the 16-bit short value (indicated by xxxx, including leading zeros) into the Bluetooth Base UUID:
Shortening is not available for UUIDs that are not derived from the Bluetooth Base UUID. Such non-standard UUIDs are commonly called vendor-specific UUIDs. In these cases, you’ll need to use the full 128-bit UUID value at all times.
The UUID is a unique 16-bit (2 byte) ID used to identify different service or characteristics on the BLE device.