Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries. Thanks for all your past and future contributions.
The main reason for use of Bluetooth is the cheap connection cost and the ability to connect to a range of electronic devices, not just PC's and other mobile phones, so most Bluetooth devices do not need an Operating System to support them. It is possible because the technology is profile-based which defines a set of protocols for each feature enabled.
These are some of the defined profiles:
- GAP: Generic Access Profile (mandatory for all devices - enables inquiry, service discovery, etc.)
- PAN: Personal Area Network Profile
- SPP: Serial Port Profile (over RFCOMM emulates RS-232)
For more profiles visit: PaloWireless
If there is a group of Bluetooth devices supporting the PAN profile, they can create a network where one device is the 'master' and the rest of devices are 'slaves'. This network is called "Piconet" and it has 1 master and a max of 7 slaves. It is possible for a slave from a given piconet, to become master for a different piconet. Then, it is possible to merge piconets creating a "Scatternet". It is possible to create a max of 10 Scatternets.
A common use of Bluetooth is to connect a Bluetooth headset to a phone. It means you do not need wires to connect to your phone. One of the latest development is to use specific mobile phones as stereo music players via Bluetooth using specific headphones which support the Advanced Audio Distribution Profile (A2DP) for Bluetooth 2.0.
These are some example devices that use Bluetooth to communicate:
- Headsets (Audio Profile)
- GPS (SPP)
- Printers (SPP)
- Virtual Cards, Notes (OBEX)
Brief Technical View
- 2.4GHz (ISM) frequency
- 79MHz band and 79 channels (1MHz per channel)
- Frequency hop and TDM (Time Division Multiplexing) - 1,600 hops/second
- Class 1: 100 meters (300 feet)
- Class 2: 10 meters (30 feet)
- Class 3: 1 meter (3 feet)
Rate: 1MBps (Theorical)
Rate: ~700KBps (Real - approximated and with no overhead)
Data/Voice simultaneous capability
Establishing a connection
MASTER is always the one who PERFORMS connection;
SLAVES awaits for connections. (The slave wakes up every 1.28sec to listen to one of 32 available slots)
- Master performs the INQUIRY
- Slaves (in LIAC or GIAC mode) answers with a key and clock. If a device is in NOT DISCOVER mode, it won't answer that.
- Master sends PAGE command and await for ACK
- Slave sends ACKnowledges
Looking for Services
- Master queries for available services (using Service Discovery Protocol - SDP)
- Slave answers with services UUID's (a 128 bit key)