This can be found in the Bluetooth 4.0 Core Vol specification . 3 - Core System . See list of accepted specifications .
In Part B, covering service discovery protocol (SDP) in Chapter 2.5.1 "Search Services / UUID" will explain how to calculate the UUID.
The full 128-bit value of a 16-bit or 32-bit UUID can be calculated by a simple arithmetic operation.
128_bit_value = 16_bit_value * 2^96 + Bluetooth_Base_UUID 128_bit_value = 32_bit_value * 2^96 + Bluetooth_Base_UUID
A 16-bit UUID can be converted to a 32-bit UUID format by zero-expanding a 16-bit value to 32 bits. An equivalent method is to add a 16-bit UUID to a 32-bit zero-value UUID.
Note that in another section there is a convenient mnemonics:
Or, more simply, the 16-bit attribute UUID replaces xs in the following order, ING:
0000xxxx-0000-1000-8000-00805F9B34FB
In addition, the 32-bit attribute UUID replaces x as follows:
xxxxxxxx-0000-1000-8000-00805F9B34FB
The same equations apply to UUID attributes. See Part F covering the Attribute Protocol (ATT) in Section 3.2.1, βProtocol Requirements / Concepts . β The 32-bit UUID attributes are first specified in the Bluetooth Core 4.1 specification.
source share