How do I choose a UUID for my custom services and characteristics?

First, a few things to know:

  • “A UUID is a universally unique identifier that is guaranteed to be unique across all space and all time” (Bluetooth 4.2 spec, Vol 3, Part B, section 2.5.1 UUID)
  • A UUID is a 128-bit value.
  • There are reserved UUIDs by the Bluetooth SIG that are generally represented by their 16-bit aliases. These aliases are used for convenience and represent a 128-bit value computed as follows:

128-bit value = 16-bit-value * 2^96 + BluetoothBaseUUID

where the BluetoothBaseUUID is 00000000-0000-1000-8000-00805F9B34FB

Examples include:
0x180F -> Battery Service UUID (128-bit UUID: 0000180F-0000-1000-8000-00805F9B34FB)
0x2A00 -> Device Name Characteristic UUID (128-bit UUID: 00002A00-0000-1000-8000-00805F9B34FB)

  • The reserved UUIDs cannot be used for any custom services or characteristics, so you need to avoid them.
  • You can actually purchase and reserve a 16-bit alias from the Bluetooth SIG here for a fee of $2,500, which would allow you to use the alias instead.

So, to create a UUID for your custom services and characteristics you would:

  1. Use a website such as GUID Generator to generate a UUID (or multiple UUIDs)
  2. Make sure it does not conflict with a reserved UUID (avoid any containing  XXXXXXXX-0000-1000-8000-00805F9B34FB where XXXXXXXX is any number)
By | 2017-06-19T17:23:13+00:00 October 19th, 2016|Categories: BLE technology|Tags: , , , |0 Comments

About the Author:

Mohammad Afaneh
Mohammad has a strong passion for developing Bluetooth Low Energy and IoT applications. He helps developers develop for BLE faster through detailed technical tutorials, articles, and videos. He enjoys playing sports, spending time with his wife and kids, and reading non-fiction books. Connect with him on LinkedIn at https://www.linkedin.com/in/mafaneh.

Leave A Comment