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

Do I need a custom 128-bit UUID if I delete one or more Characteristic from an Adopted Service

Do I need a custom 128-bit UUID if I delete one or more Characteristic from an Adopted Service I do not modify the remaining Characteristics

For instance: Sniffing with Master Control Panel \nRF5_SDK_13.0.0_04a0bfd\examples\ble_peripheral\ble_app_hrs\pca10040\s132\

One of the services used is Generic Access, but only three (3) of the 5 Characteristics are used. But then a Characteristic Central Address Resolution UUID 0x2AA6 shows up under the Service

Should not this then be a Custom Service, with a 128 bit UUID? Device Name UUID 0x2A00 Appearance UUID 0x2A01 Peripheral Preferred Connection Parameters UUID 0x2A04 Central Address Resolution UUID 0x2AA6

  • If these are standard Services and Characteristics defined by BT SIG Core specifications (and amendments) then it must use assigned 16-bit UUID, otherwise GATT Clients cannot understand it. Why you would define custom UUID so only your app would understand the hierarchy under its tree?

  • Keep in mind that for standard services the service profile will indicate if a characteristic is optional or mandatory. Optional characteristics can be omitted from a standard service if allowed. For example all of the characteristics in the Device Information Service are optional.

  • Very true. For minimal GATT Server compliant with GAP and GATT you need GAP primary service with Device Name and Appearance characteristics and GATT primary service. Things like Central Address Resolution, Preferred Peripheral Connection Parameters, Service Changed characteristics, Device Information service (with all characteristics) and many others are conditional or optional depending on other features you want to use (or specifications you want to be compliant with such as Apple Bluetooth guidelines...)

  • endnode, I understand, thanks. I do not want to use a custom UUID if I don't have to, but the example from Nordic seems to add Characteristic Central Address Resolution UUID 0x2AA6 under the Generic Access Service. So that implies that the Generic Access Service has to be a custom Service, is it not. If I use Bluetooth Developer Studio to add Characteristic Central Address Resolution UUID 0x2AA6 to the Service Generic Access UUID 0x1800, then it forces this service to be Custom Local, and assigns some higher 16-bit UUID. I assume this assigned 16-bit UUID should be added to the 128-bit Base UUID. Regards

  • Central Address Resolution Characteristic must be only one on the GATT Server and it must be under GAP Service. As I don't see this specifically used anywhere in SDK I assume that Security manager layer inside BLE stack (Soft Device) automatically exposes this Characteristic if you enable privacy with address resolution through other SVN (Soft Device API) function calls. So no need to manage it yourself, it is OK that you see it as GATT Client if this is enabled on GATT Server and it's a pitty if you want to support address resolution but hide this characteristic because it's mandated by BT SIG Core specification and thus Soft Device handles it automatically. But this is just my assumption. Is it in-line with your observation?

Related