Coming soon: PowerScope, power-profiling for VS Code
Bluetooth® Low Energy Protocol · · 1 min read

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

Learn how to choose a UUID for custom Bluetooth LE GATT services and characteristics, avoid reserved UUIDs, and understand the Bluetooth Base UUID format.

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

First, a few things to know:

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)

These reserved UUIDs cannot be used for any custom services or characteristics, so you need to avoid them.

Note: you can actually purchase and reserve a 16-bit alias from the Bluetooth SIG here for a fee of $3,000, 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)

Helpful Resources:

💡
Insider Tip: Want to master Bluetooth LE GATT services and characteristics design? Take it hands-on with Bluetooth LE Unplugged: two USB dongles ship with the course, and you build working Bluetooth LE devices without an SDK or a line of embedded C.

Read next

Get Started with Bluetooth LE

Download the free Intro to Bluetooth Low Energy eBook — the quickest way to understand the fundamentals.

No spam. Unsubscribe with one click.