27 06, 2017

Bluetooth GATT: How to Design Custom Services & Characteristics [MIDI device use case]

By | 2017-09-04T09:10:50+00:00 June 27th, 2017|Categories: BLE technology, GATT|Tags: , , , , , , |2 Comments

I’m sure you’re aware that implementing Bluetooth Low Energy (BLE) for devices that interact with smartphones is one of the best ways to achieve a great user experience for your IoT device. However, designing BLE devices can be a daunting process! You're probably thinking: "Where do I even start??" One thing I wish I had when I started developing for BLE is more blog posts that walk you step-by-step on how to tackle the different phases of the system design and implementation. The Bluetooth GATT (Generic Attribute Profile) is the foundation for the design of any BLE system and [...]

19 10, 2016

How do I choose a UUID for my custom services and characteristics?

By | 2017-06-19T17:23:13+00:00 October 19th, 2016|Categories: BLE technology|Tags: , , , |0 Comments

First, a few things to know:"A UUID is a universally unique identifier that is guaranteed to be unique across all space and all time" (Bluetooth 4.2 spec, Vol 3, Part B, section 2.5.1 UUID)A UUID is a 128-bit value.There are reserved UUIDs by the Bluetooth SIG that are generally represented by their 16-bit aliases. These aliases are used for convenience and represent a 128-bit value computed as follows:128-bit value = 16-bit-value * 2^96 + BluetoothBaseUUIDwhere the BluetoothBaseUUID is 00000000-0000-1000-8000-00805F9B34FBExamples include: 0x180F -> Battery Service UUID (128-bit UUID: 0000180F-0000-1000-8000-00805F9B34FB) 0x2A00 -> Device Name Characteristic UUID (128-bit UUID: 00002A00-0000-1000-8000-00805F9B34FB)The reserved UUIDs cannot be used for [...]