Common Characteristics and Notes
This section contains the description of the custom BLE Profile and the various services included in it.
GATT Description Table
You can find the [GATT Description Table] here.
Common Characteristics and Descriptors
Some features and some descriptors are common to most services. To avoid repetition, they are described in this section. Any variations will be described where necessary.
It's a descriptor that contains a short text string. It's useful to identify the associated feature, especially when debugging and testing.
This descriptor is defined by a specific standard Bluetooth GATT, Characteristic User Description, and has not been modified.
All the implemented features include this descriptor.
Characteristic Client Configuration (CCC)
It's a descriptor that enables notifications / instructions for the related feature.
The time interval is usually specified in the characteristic Notifind Period.
This descriptor is defined by a specific standard Bluetooth GATT, Characteristic Client Configuration, and has not been modified.
It's a feature with a Boolean field that enables (
1) or disables (
0) the sensor related to the service it belongs.
0is for Disabled
1is for Enabled
The default value is usually
It's necessary to enable the sensor before using it.
Reading the value of a disabled sensor returns
0. It's a custom feature with a 128-bit UUID.
It's a feature used to specify the time interval for notifications and / or directions. It's expressed in units of 10 ms. The Value attribute is a 16 bits unsigned integer.
Allowed values are between
6000 (maximum interval: 60s ).
The notification / indication is automatically disabled when
0 is written.
The default value is
10 (or 100 ms).
Notes on the values of the UUID and attributes
16 and 128 bit UUID
The UUID values shown in the tables are always indicated by 16-bit (short UUID). In fact, all the custom services and attributes are represented by 128 bits. For these custom services / attributes we defined a base UUID:
0xD7720000-79C6-452F-994C-9829DA1A4229 (base UUID)
To switch from a 16-bit UUID to the corresponding 128-bit value we need to replace the third and fourth bytes with the short UUID value.
For example, the short UUID of the of the temperature Resolution characteristic service is
0x69BB, therefore its full UUID is:
In the [table of attributes], shorts UUID of personalized services are indicated by an asterisk (*).
Inversion of attribute bytes
The CC2650 microcontroller operates in little-endian mode, but the transmission is performed in big-endian (network byte order) mode. For that reason, the values of the attributes longer than 1 byte are transmitted in the reverse order: the least significant byte (LSB) is transmitted as first and the most significant bit (MSB) as last. In values composed by multiple fields, the field order is preserved, but longer fields than byte are also inverted. Take for example:
- The attribute GATT Primary Service Declaration, whose value is
0x1800, but is transmitted as
- The Value attribute of GreenLed characteristic, composed by the two "status fields" and "blink_period" - default values are
0x05: they are transmitted as
- The Accelerometer service attributes, consisting of three fields (X, Y, and Z) of two bytes each, are transmitted as XLSB: XMSB: YLSB: YMSB: ZLSB: ZMSB.