Bluetooth is a name synonymous with wireless devices. When people think about Bluetooth, they usually think about Headphones, Earbuds, and streaming music. This communications technology also lets people control home automation devices like light bulbs, toys, and medical devices. For a very detailed explanation of Bluetooth, check out our Practical Guide to Bluetooth.
How Bluetooth Works
For purposes of this discussion, we are going to focus on what happens after two devices pair. Pairing is the process of connecting two Bluetooth devices together so that they can communicate. You take both devices and make sure that you’ve enabled Bluetooth. Once both radios are on, you search for the name that represents the device you’re trying to pair. For example, if you’re pairing a car to a smartphone, look for the name of your phone on your radio. Click the name, enter the PIN and viola! You should now be able to stream music and call people in your contacts list.
What Happens Next?
Behind the scene, Bluetooth queries various services running on your device to understand more detailed and specific information about the device. In essence, it needs to know what “language” your device speaks so that it can help parley the right data so that each device understands the other. The Bluetooth specification breaks down devices into Major and Minor classes. Depending on the Class of Device (the combination of major and minor class IDs), the Bluetooth protocol loads profiles that determine how it communicates. There are 11 Major Service Classes, 32 Major class combinations, and 64 different Minor classes. Each major class and each minor class has its own class identifier in either binary or in hex.
Major Service Classes
- Audio devices like speakers, earbuds, headsets
- Capturing devices like microphones and scanners
- Information like web servers, wap servers
- Location identification and positioning
- Networking devices
- Rendering devices like printers
- Telephone communications like cordless telephony, modems, the headset service
- Transfer objects (v-inbox, v-folder)
Major Device Classes
According to the Bluetooth specifications, the Major Device Class segment is the highest level of granularity for defining a Bluetooth device. In Signils, users can sort their devices by this level of category. You can also see all of the devices that fit this category on our Statistics page.
- Computer (desktop, laptop, PDA, organizer)
- Phone (cellular phones, cordless, payphones, modems)
- LAN/Network Access Point
- Audio/Video (headsets, speakers, stereos, video displays, VCRs)
- Peripheral (mice, joysticks, keyboards)
- Imaging (printers, scanners, cameras, display)
- Uncategorized; device code not specified
As you can see, these numbers don’t total up to 32. The total number of 32 comes from combinations of Major Class IDs.
Minor Device Classes
According to the Bluetooth specifications, the Minor Device Class segment is the lowest level of granularity for defining a Bluetooth device. There are Minor Device Classes associated with each Major Class. We are in the process of implementing minor classes in Signils. Once we’re complete, users will be able to search, sort, and see popular devices using these more granular categories.
- Major Class: Computer (desktop, notebook, PDA, organizers, etc )
CoD: 000000000000000100000000 (bin) 0x100 (hex)
- Uncategorized, code for device not assigned
- Desktop workstation
- Server-class computer
- Handheld PC/PDA (clam shell)
- Palm sized PC/PDA
- Wearable computer (watch sized)
- Major Class: Phone (cellular, cordless, payphone, modem)
CoD: 000000000000001000000000 (bin) 0x200 (hex)
- Uncategorized, code for device not assigned
- Wired modem or voice gateway
- Common ISDN Access
- Major Class: LAN/Network Access point
CoD: 000000000000001100000000 (bin) 0x300 (hex)
- Fully available
- 1 – 17% utilized
- 17 – 33% utilized
- 33 – 50% utilized
- 50 – 67% utilized
- 67 – 83% utilized
- 83 – 99% utilized
- No service available
- Major Class: Audio/Video (headset, speaker, stereo, video display, etc)
CoD: 000000000000010000000000 (bin) 0x400 (hex)
- Uncategorized, code for device not assigned
- Wearable Headset Device
- Hands-free Device
- Portable Audio
- Car audio
- Set-top box
- HiFi Audio Device
- Video Camera
- Video Monitor
- Video Display and Loudspeaker
- Video Conferencing
- Major Class: Peripheral (mouse, joystick, keyboards etc )
CoD: 000000000000010100000000 (bin) 0x500 (hex)
- Not Keyboard / Not Pointing Device
- Pointing device
- Combo keyboard/pointing device
- sub-field for the device type
- Uncategorized device
- Remote control
- Sensing device
- Digitizer tablet
- Card Reader (e.g. SIM Card Reader)
- Major Class: Imaging (printing, scanner, camera, display etc)
CoD: 000000000000011000000000 (bin) 0x600 (hex)
- Major Class: Wearable
CoD: 000000000000011100000000 (bin) 0x700 (hex)
- Wrist Watch
- Major Class: Toy
CoD: 000000000000100000000000 (bin) 0x800 (hex)
- Doll / Action Figure
- Major Class: Miscellaneous
CoD: 000000000000000000000000 (bin) 0x (hex)
- Major Class: Uncategorized, specific device code not specified
CoD: 000000000001111100000000 (bin) 0x1F00 (hex)
And then based on the Service, Major and/or Minor Class of Device that the protocol discovers about the device, it then loads the correct Bluetooth profiles to appropriately support the technology.
A Bluetooth profile is a definition of how a manufacturer can implement Bluetooth for a particular use. A device must be able to interpret certain Bluetooth profiles, depending on the activity required. Profiles specify the behaviors that Bluetooth-enabled devices use to communicate with each other.
The SDP (service discovery protocol) defines actions for servers and clients of Bluetooth services. The specification defines a service as any feature that is usable by another (remote) Bluetooth device. See The Bluetooth Profiles—A Hierarchy of Groups). An SDP client communicates with an SDP server using a reserved channel on an L2CAP link to find out what services are available. When the client finds the desired service, it requests a separate connection. The reserved channel is dedicated to SDP communication so that a device always knows how to connect to the SDP service on any other device. An SDP server maintains its own SDP database, which is a set of service records that describe the services the server offers. Along with information describing how a client can connect to the service, the service record contains the service’s UUID, or universally unique identifier.
Bluetooth profiles are organized into a hierarchy of groups, with each group depending upon the features provided by its predecessor.
Here is a sample of the most popularly used profiles:
Advanced Audio Distribution Profile (A2DP) – transmission or streaming of high-quality stereo audio. Portable audio players, recorders, headphones, and car stereos.
A/V Remote Control Profile (AVRCP) – remote control of Bluetooth devices alongside A2DP to allow a remote speaker or headphones to tell the audio-sending device to fast-forward, rewind, etc. Also used to control TVs, Hi-Fi equipment, etc.
Attribute Profile (ATT)
Basic Imaging Profile (BIP) – sending images between cameras or smartphones to storage devices.
Basic Printing Profile (BPP) – send texts, emails, or vCards to printers. Requires no printer device drivers.
Cordless Telephony Profile (CTP) – designed to work with cordless phones to that it could use a Bluetooth CTP gateway connected to a landline when within a home and the mobile phone network when out of range.
Device ID Profile (DIP) – allows a device to be identified beyond the limitations of Device Class. Allows the identification of manufacturer, product ID, product version, and the version of Device ID specification being met.
Fax Profile (FAX) – interface between a mobile phone or fixed line phone and a PC with fax software installed.
File Transfer Profile (FTP) – the way in which files and folders on a server can be browsed by a client device or transferring files between devices.
Generic Audio/Video Distribution Profile (GAVDP) – basis for A2DP and VDP.
Generic Access Profile (GAP) – provides the basis for other profiles. GAP defines how two Bluetooth units discover and establish a connection with each other.
Generic Attribute Profile (GATT) – provides profile discovery and description services for the Bluetooth Low Energy profile.
Generic Object Exchange Profile (GOEP) – transfer an object from one device to another. Exchange of vcards between smartphones, PDAs, etc.
Health Device Profile (HDP) – health thermometer profile (HTP), Heart Rate Profile (HRP) fall under this profile. Facilitates the transmission and reception of medical device data.
Hands-Free Profile (HFP) – facilitates placing calls from a Bluetooth device – used with car infotainment systems to support wireless calls.
Headset Profile (HSP) – allows for calls to be answered, ended, and volume adjusted from a headset. Used with A2DP so that users can switch between listening to music and making calls.
Human Interface Device (HID) – mice, keyboards, joysticks.
Mesh Profile (MESH) – allows for many-to-many communication over Bluetooth. Smart lighting, sensors, etc.
Message Access Profile (MAP) – allows exchange of messages between devices.
Phone Book Access Profile (PBABP PBA) – allows exchange of phone book objects between devices.
SIM Access Profile (SAP, SIM, rSAP) – allows car phones with built-in GSM transceivers to connect to a SIM card in a Bluetooth enabled phone, therefore the car itself doesn’t require a separate SIM.
Service Discovery Application Profile (SDAP) – how an application should use the Service Discovery Procedure (SDP) to discover service on a remote device.
Synchronization Profile (SYNC) – used in conjunction with GOEP to enable synchronization of calendar and address information items between Bluetooth enabled devices.
Video Distribution Profile (VDP) – how a Bluetooth enabled device can stream video over a Bluetooth connection.