I want to build a simple Bluetooth Low Energy-based application using a custom profile. The adopted profiles / services / characteristics / descriptors use 16-bit UUIDs as seen on the official site.
The 16-bit UUIDs are shortcuts for a corresponding 128-bit UUID and is translated as
128-bit UUID = 16-bit Attribute UUID * 2^96 + Bluetooth_Base_UUID
with Bluetooth_Base_UUID
being 00000000-0000-1000-8000-00805F9B34FB
. (Source: Bluetooth Core Specification Vol 3 Part F Section 3.2.1)
Since I am using a custom profile, I'm wondering what UUIDs I am allowed to use.
In short, you can use UUID as a secret password for sharing files between any two Bluetooth devices.
The 16-bit UUID Numbers Document contains a list of 16-bit Universally Unique Identifier (UUID) values, previously available on other webpages on bluetooth.com. The 16-bit UUID Numbers Document is updated when new values are assigned.
A BLE profile serves as an application layer for specific and already defined use cases. Generally speaking, a BLE profile is a standard collection of services for a specific use case.
So, to create a UUID for your custom services and characteristics you would: Use a website such as GUID Generator to generate a UUID (or multiple UUIDs) Make sure it does not conflict with a reserved UUID (avoid any containing XXXXXXXX-0000-1000-8000-00805F9B34FB where XXXXXXXX is any number)
All of the 16-bit and 32-bit UUIDs above the base UUID that you show above are reserved for items in the spec (or future specs). So vendor apps are free to use any 128-bit UUID less than the base UUID. There is no reserved space for vendors to use 16-bit or 32-bit UUIDs.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With