This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

16 bit UUID Inquiry

This is in the BLE 4.2 Core Specifications:

16 bit and 32 bit UUIDs shall only be used if they are assigned by the Bluetooth SIG. The Bluetooth SIG may assign 16 bit and 32 bit UUIDs to member companies or organizations.

 


Any insight into this? Are we not supposed to use 16-bit UUIDs like the ones in the TI BLE Stack Examples, or is there some process that needs to be taken in order to abide by the BLE standards if we do use the 16-bit UUID format? Is there any disadvantage or problems that could be encountered by using 16-bit UUID format?

Thanks,

Peyton

  • Also, would this entail changing all the UUIDs for every service including the advertisement data?

  • Hi Payton,

    Generally UUIDs can be created by anyone - and used to describe Attributes. As you have found, there's sets of UUIDs that are blocked out for known purposes. These purposes are fairly common use cases, such as figuring out which Attributes are Service Declarations or which are Characteristic Declarations, etc.

    For more information, checkout Part G, Section 2.5.4 of Volume 3 of the Bluetooth Core Spec.

    In regards to your questions - there's a process to get custom 16bit and 32bit uuids : www.bluetooth.com/.../assigned-numbers

    These need to be purchased from Bluetooth SIG. If you're wondering why we used 16bit UUIDs, we did it for example/illustrative purposes in Simple Bluetooth Peripheral.Look at Project Zero for an example of how 128bit UUIDs are used.

    In general you can make your own 128 UUIDs without problems - it's just slightly more information to transmit.

    The biggest advantage of going with 16bit UUIDs is that you'll have to transmit less information.

    Regards,
    -Rebel

  • Thanks for the information, this is helpful!

    What about in the case of Advertisement Data, I haven't found anything specifically defining what would be needed for custom advertisement packets (such as varying lengths for payload data). Is it sufficient to use and 16-bit UUID for Advertisement Data, or are there specific ones for this as well?

    -Peyton
  • No worries, you can place whatever you want in Advertisement Data. There's other fields in the Advertisement PDU that need to follow a particular format, but the Advertisement Data is all yours to mess with. (32 bytes!)

    You can read up on it in the Bluetooth core spec, Vol 6, Section 2.3.

    Did you mean the Addresses? These are BDADDRs and Random Addresses, which are not related to UUIDs. BDADDRs are vendor specific (atleast the top 24 bits are), and Random Addresses are random. (Vol 6, Part B, Section 1.3)

    Regards,
    -Rebel