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

What Service data can be added to the Advertising package?

We are looking to add some device info into the advertising package, or scan response package depending on space. When looking for a way to do this in a standardised way I stumbled upon a Nordic example which is adding Battery Service Data and Termometer Data to the advertising package (https://github.com/NordicSemiconductor/nrf51-ble-app-temp/blob/master/main.c)

The relevant section looks like this:

service_data[0].service_uuid = BLE_UUID_BATTERY_SERVICE;
service_data[0].data.size    = sizeof(battery_data);
service_data[0].data.p_data  = &battery_data;

service_data[1].service_uuid = BLE_UUID_HEALTH_THERMOMETER_SERVICE;
service_data[1].data.size    = sizeof(temperature_data);
service_data[1].data.p_data  = (uint8_t *) &temperature_data;

My question is if this is really valid with the standard to put a 16 bit Service UUID in the service data like this? From what I have learned there are only very limited set of valid UUIDs that can go into the Advertising Package and anything else should be implemented as a 128bit custom service.

Can anyone with deeper knowledge of BLE and Bluetooth standards please clarify?

Related