Bluetooth Low Energy (BLE) Generic Attribute Profile (GATT) Sample Overview
In this sample we will discover how to work with Bluetooth Low Energy devices using the GATT profile and a TI CC2541 SensorTag. You can find the source code in our git repository, and navigating to the
Information on Bluetooth support for Windows IoT Core devices can be found on the Bluetooth site.
This sample is supported on all Windows IoT Core devices. DragonBoard 410c has the added advantage of onboard Bluetooth, meaning you will not need an additional Bluetooth USB dongle to complete this or other Bluetooth samples.
This sample works only with Visual Studio 2017.
Bluetooth Low Energy (BLE), or Bluetooth Smart, is a wireless protocol that is part of the Bluetooth 4.0 core specification. The key feature of BLE is its low power consumption, leading to its widespread adoption by IoT and wearable devices.
Generic Attribute Profile (GATT) is the Bluetooth Profile that BLE devices will use to communicate with each other. Data is organized into nested objects called Profiles, Services, and Characteristics, as illustrated in the diagram below:
It is strongly suggested to have a good grasp on these concepts before continuing. Adafruit has a great overview of how Bluetooth Low Energy (BLE) & the GATT profile work here.
In this sample we will be pairing and connecting a Windows IoT Core device with the Texas Instruments CC2541 SensorTag Development Kit via BLE. The SensorTag is a BLE device powered with the TI CC2541 chip, which features a programmable Bluetooth 4.0 stack. On the device are also the following 6 sensors, which are exposing data through the GATT profile:
Contactless IR temperature sensor (Texas Instruments TMP006)
Humidity Sensor (Sensirion SHT21)
Gyroscope (Invensense IMU-3000)
Accelerometer (Kionix KXTJ9)
Magnetometer (Freescale MAG3110)
Barometric pressure sensor (Epcos T5400)
This sample needs Visual Studio Update 1 with SDK version 10586 to build and run on the latest version of IoT Core OS on the device.
For the sample, we are running firmware version 1.4.1 on the SensorTag. More detailed information about the SensorTag can be found at the TI SensorTag site.
Please find a list of supported Bluetooth dongles in the Hardware Compatibility List. Note: a Bluetooth dongle is not required for the DragonBoard 410c and the Raspberry 3 board.
Using and Dissecting the Code — Learn how to use the sample along with a walkthrough of the code.