What is a Profile?

A profile is a formal specification that defines two or more devices and how they can work together. TThis article focuses on profiles for Bluetooth implementations.

The Bluetooth Special Interest Group (SIG) defines a number of standard profiles called adopted profiles. I will explain why later. Examples include the Proximity Profile, the Heart Rate Profile, and the newly released Continuous Glucose Monitoring Profile. You can find the full list on the adopted specification.

A key component of the Bluetooth Smart architecture is the Generic Attribute Profile (GATT). It defines the types of state data that a device exposes and how that data can be used. It does this in terms of structures known as services, characteristics and descriptors. Amongst other things, a Bluetooth profile must define the GATT services that each device of this type must (mandatory) or may (optional) implement. There is a many-to-many relationship between profiles and services so particular services may be used by multiple, distinct profiles. This is a simple but powerful idea and one that saves time and money for developers implementing device firmware, since it supports and promotes reuse of code across different device types.

Services are self-contained descriptions (at the specification level) or implementations (at the code level) of a set of closely related behaviors and device data. They’re completely decoupled from the profile they’re used by and so, having no “awareness” of the type of device they’re used in, can be thought of as completely self-contained components—this is what makes them perfect for reuse. For example, you’ll find the Device Information Service and the Battery Service used in a whole range of different profiles.

The data which services contain is expressed as a series of GATT characteristics. For example, the Device Information Service contains a characteristic called Serial Number, whilst the Battery Service contains a characteristic called Battery Level. Profiles, services and characteristics are three of the fundamental technical aspects of the Bluetooth architecture, defined by GATT.

Adopted vs. Custom

Those profiles, services, and characteristics defined and published by the Bluetooth SIG are termed adopted. Bluetooth SIG working groups develop and maintain adopted specifications that eventually become industry standard.

The Bluetooth SIG designed Bluetooth technology with innovation in mind. In addition to the adopted profiles and services published by the Bluetooth SIG, third-party developers are permitted to define their own profiles using the GATT architecture. We call these custom profiles. It’s permissible to define your own custom services and characteristics too.

Custom vs. Standard

If you create a custom profile, service, or characteristic, does it mean your device will be non-compliant with the Bluetooth standards? Happily, the answer is a resounding NO! This is the power and beauty of custom profiles — you can invent your own device types and device behaviors, define and implement them as a custom profile, and are still compliant with the relevant Bluetooth standards. How incredible is that?

So adopted profiles are standard profiles created and maintained by the Bluetooth SIG while custom profiles are ones created by third parties. Both categories of profiles are fully compliant with Bluetooth SIG standards.

A Closer Look at Custom Profiles

With custom profiles, you have complete flexibility. You may incorporate both adopted services and custom services in the same custom profile. The same applies to custom services; they can contain a mixture of adopted services from the Bluetooth SIG and custom services that you invented. You may also create a custom profile by assembling a new combination of previously adopted services.

How Do You Create a Custom Profile?

Watch the video above for a detailed review of the process of creating a custom profile. Your target Bluetooth chip or module will provide a software developer kit (SDK) that should include a mechanism by which you can define and implement your device’s profile and its constituent services. For a hands-on introduction to the topic, I recommend you download the Bluetooth Starter Kit and work through the labs. You will implement a custom profile using an Arduino board with Bluetooth shield plus one or more mobile applications that use that profile.

To Publish or Not to Publish?

That is the question, or at least one of them. Adopted profiles benefit from the fact that the Bluetooth SIG publishes their specification, so it’s easy for developers to work with devices that implement them. There’s a thriving third-party app developer ecosystem for smartphones and tablets where we see the result of this openness applications.

Some manufacturers choose to publish details of their custom profiles for other third-party developers to exploit, while others do not. This is a business decision not a technical one.

Custom Profiles in 2015

While the concept of custom profile creation allows for great flexibility from a developer’s point of view, the Bluetooth SIG is studying ways to make it even easier for developers to share, discover, and reuse custom profiles. Since custom and adopted profiles are structured the same way — via services and characteristics — the advent of a creation tool of these elements is definitely possible. We are currently working on something to make the process of using adopted profiles, or creating custom profiles, in a consistent and easy way in the near future.

What is Channel Sounding?

Distance measurements via Bluetooth is getting a big improvement with the upcoming Channel Sounding…

Robust Indoor Distance Estimation Algorithms for Bluetooth® Channel Sounding

Bluetooth Channel Sounding is a powerful feature setting a clear and solid foundation for…

What’s New with Bluetooth® Technology: Channel Sounding, Upcoming Features, and Key Technology Trends

With over 5 billion devices shipping each year, Bluetooth technology is the most widely…

Bluetooth® Core 6.0: What's New In The Latest Bluetooth Release?

Bluetooth technology is constantly growing, not only enhancing existing applications but also enabling entirely…

Bluetooth PAwR in a Large-Scale Test Network

In the ever-evolving, dynamic landscape of Bluetooth-connected smart devices, efficient interconnection and reliable communication…

Bluetooth Channel Sounding: How It Works and What It MeansBluetoothチャネルサウンディング:その仕組みと意義

Bluetooth® Channel Sounding is a new secure, fine-ranging capability that promises to enhance the…

Receiver Blocking Resilience Test Suite

This Test Suite tests the receiver blocking resilience of a Bluetooth implementation. It is…

Now Available: New Version of the Bluetooth® Core SpecificationBluetoothコア仕様の新バージョンがリリース

Thanks to the dedication and hard work of the Bluetooth community, Bluetooth® technology is…

Channel Sounding: Technical Overview (Pt 2)

In Part 1 we introduced the new Bluetooth distance measurement innovation known as Channel…

The Bluetooth Roadmap: Bluetooth Specifications in ProgressBluetoothのロードマップ:策定中のBluetooth仕様

Though not commonly known among many consumers, Bluetooth® technology is constantly and consistently advancing to…

Bluetooth® Channel Sounding: A Technical Overview

This paper provides a detailed technical overview of Bluetooth® Channel Sounding, a secure fine ranging…

The Bluetooth® Mesh Primer

An introduction and explanation of important Bluetooth® Mesh concepts.

Bluetooth® Technology for Linux Developers

Learn how to use the interprocess communication system D-Bus and the BlueZ APIs to create Bluetooth applications for Linux computers.

Designing and Developing Bluetooth® Internet Gateways

Learn about Bluetooth® internet gateways, how to make them secure and scalable, and design and implement your own...

The Bluetooth® LE Security Study Guide

Learn about fundamental security concepts, the security features of Bluetooth Low Energy, and gain some hands-on experience using those features in device code.

 Get Help