128 bit vendor UUID

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

Does a vendor service or vendor characteristic denoted by a 128 UUID actually need to be registered with the Bluetooth SIG?

My inclination is that it does not need to be …

But I would like to know definitively …

For example, your Hello Sensor app has a 128 bit vendor service/characteristic .. did the UUID that was used need to be registered by SIG?

Thanks

0 Likes
1 Solution
VictorZ_46
Employee
Employee
5 comments on blog 25 sign-ins 250 likes received

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.

View solution in original post

3 Replies
VictorZ_46
Employee
Employee
5 comments on blog 25 sign-ins 250 likes received

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.

Anonymous
Not applicable

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 3.4.7.1), where you don't need the 128 bit UUID or the indication method (see 3.4.7.2) Thanks, Muhammad

https://developer.bluetooth.org/Community/Lists/Community%20Discussion/Flat.aspx?RootFolder=%2fcommunity%2fLists%2fCommunity%20Discussion%2f16%20bit%20UUID%20vs%2e%20128%20UUID&FolderCTID=0x01200200E2F0E56E3D53004DBA96BDF0C357551F

Seems like they recommend using this webpage to generate a UUID. Is this what Broadcom used also?

http://www.itu.int/ITU-T/asn1/uuid.html#registration

0 Likes

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.