128-bit UUIDs are definitely not required to be registered with BT SIG. Make sure that you are using a real random number. Do not reuse the sample value in Hello Sensor, because somebody else can do this mistake.
I generated mine from a uuid generator but then I see there is this link about some Bluetooth base address to adhere to. It gets confusing at times …
Here are my findings from this BT SIG entry
All the custom GATT based services and characteristics must use a 128 bit UUID. The Bluetooth_Base_UUID is: 00000000-0000-1000-8000 00805F9B34FB. All the 16-bit Attribute UUIDs defined in the adopted specifications use the above base. Generating a 128 bit UUID for custom profiles: For the 128 bit UUID, please refer to The ITU-T Rec. X.667. You can download a free copy of ITU-T Rec. X.667 from http://www.itu.int/ITU-T/studygroups/com17/oid/X.667-E.pdf. In addition if you go to http://www.itu.int/ITU-T/asn1/uuid.html, you can generate a unique 128-bit UUID. Latency: Refer to Core Spec V4.0, Vol 3, Part F - 3.3.1, which is "Ready by Type Request". If you look at the PDU, you have to send 2 bytes UUID for adopted profiels and 16 bytes UUID for custom profiles. There is additional 14 extra bytes over head for the custom profiles for "Ready By Type Request Method" Note: All attribute types are effectively compared as 128-bit UUIDs, even if a 16-bit UUID is provided in this request or defined for an attribute. (See Section 3.2.1.) A suggestive alternative will be to use a notification method, (see 126.96.36.199), where you don't need the 128 bit UUID or the indication method (see 188.8.131.52) Thanks, Muhammad
Seems like they recommend using this webpage to generate a UUID. Is this what Broadcom used also?
1 of 1 people found this helpful
If you generated random 128bit UUID you will be fine (and policy compliant). You cannot use 16bit UUID unless you purchase one from BT SIG (I believe they sell it for $5K). That might be a good step if you are planning to standardize your solution in the future.
There is a small penalty for using 128bit UUIDs. The database becomes slightly bigger. When peer discover your services few more bytes are exchanged. But these are pretty minor.