This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

16bit UUID Misunderstandings

Hello,

I have quite some difficulties understanding the 16 / 24 / 32 / 128 bit UUID concept. My understanding is as follows: All BLE Assigned Services / Characteristics / Descriptors / ... use the Bluetooth SIG Base UUID which is as follows: xxxxxxxx-0000-1000-8000-00805F9B34FB if they use a 16 bit UUID, they insert it into the Base UUID where the xxxx are: 0000xxxx-0000-1000-8000-00805F9B34FB. Now, there are some special UUIDs, e.g. the Assigned Characteristics (www.bluetooth.com/.../characteristics). These all seem to start somewhere around 0x2A##. Assigned Services on the other hand seem to start at 0x1800.

Now, there is the Member Program where each Member can buy one or more 16bit Service UUIDs for custom use (www.bluetooth.com/.../16-bit-uuids-for-members). This UUID is probably inserted the same way as other 16bit UUIDs for standardized services.

Vendor UUIDs are probably free to use any UUID, that does not clash with the Bluetooth SIG Base UUID (The part without the x has to be different)

Now my Problem is, what happens if the GATT table comes into play.

  • How can I add a standardized Characteristic (e.g. the Battery level 0x2A19 ) to my custom Service? E.g. I have a vendor specific service with this UUID: 00000000-e19a-4fb1-9706-de71d7e28e9b, can I now add the following attribute: 00002A19-0000-1000-8000-00805F9B34FB to my service? If yes, how would I do this using the sd_* calls? Adding a 16bit UUID used my vendor UUID as a template, how can I tell it to use the BLE SIG Base UUID?
  • What happens if I have my custom 16bit service (e.g. 0xFF00), the Service UUID will probably look like this 0000FF00-0000-1000-8000-00805F9B34FB. But how will I add my custom Attributes? DO I have to watch out that they do not clash with the BLE SIG defined attributes? Which range am I allowed to use?

Thanks a lot, Marius

Parents Reply Children
Related