Bluetooth protocol operates at 2.4GHz, same as ZigBee and WiFi, working in the same unlicensed ISM frequency band.
Each network (Piconets) consist of a coordinating Master and many connecting Slaves.
Bluetooth profile is like the many various protocol of bluetooth communication. Some profile are for keyboards, some for storage, some for audio. Here are a list of commonly used profiles.
- Serial Port Profile (SPP), or sometimes known as UART
- Human Interface Device (HID)
- Hands-Free Profile (HFP)
- Headset Profile (HSP)
- Advanced Audio Distribution Profile (A2DP)
- A/V Remote Control Profile (AVRCP)
- Generic Attribute Profile (GATT), custom profile communication using Attribute Protocol (ATT) between the master and slave.
GATT is typically used for proprietary project that uses custom communication through the use of exchanging attribute data (Attribute Protocol, ATT).
A temperature sensor device can be acting as a server providing a service to expose the temperature reading.
A mobile smart phone is this case is a client, sending commands, requests and accepts incoming notifications/indications from the server.
The ATT attributes is made up of 4 components.
- Attribute Handle (the address of this attribute during the connection session)
2 bytes address (0x0001-0xFFFF)
- Attribute Type (UUID Universally Unique Identifier)
2 or 16 bytes
- Attribute Value
Variable length data.
- Attribute Permissions
- Bluetooth v1.2
- Bluetooth v2.1 + EDR (enhanced data rate)
- Bluetooth v3.0 + HS
- Bluetooth v4.0 (BLE, Bluetooth Low Energy)
Reverse Engineering (Bluetooth)