Bluetooth is a a open specification wireless protocol that operates in the unlicensed 2.4GHz spectrum (2.45GHz to be exact), along with the popular 802.11b/g or "Wi-Fi" networking protocol. It allows seamless voice and data connections between cell phones, personal computers, handhelds, headsets, keyboards, mice, and many other peripherals. Connected devices have a 1 megabit channel between them for both a voice channel and a 768 kilobit data channel. Maximum range on most devices ranges from 10 to 30 feet (Class 1), although there are 100 foot (Class 2) and 1000 foot (Class 3) adapters in existance as well. The technology is seen as a replacement for infrared ports found on many of today's cell phones, laptops, and handhelds.

The Bluetooth name was taken from Harold Bluetooth, the king of Denmark in the late 900s. He united Denmark and a portion of Norway into a single kingdom while simultaneously introducing Christianity. It was selected because a large number of communications companies from the Baltic region were involved in the making of the specification, and the organizations wanted to emphasize their importance in the creation of the new wireless protocol.

To handle the wide range of devices that it can connect to, Bluetooth relies on a series of hardware profiles in order to determine how to handle the incoming data. At the time of this writing, there were 13 official profiles and 12 profiles currently being approved. As the unofficial profiles are approved, they will be included in this guide.

Official Profiles
GAP - General Access Profile
GAP handles the discovery of Bluetooth devices and how connections are made. It also defines and controls the various security levels Bluetooth supports.
SDAP - Service Discovery Application Profile
SDAP allows applications in a Bluetooth device to discover what services another Bluetooth device supports.
CTP - Cordless Telephony Profile
CTP allows connections between cordless phones and other Bluetooth devices. It is most often used to connect handsets to a Bluetooth-enabled base station instead of some other radio frequency technology.
IP - Intercom Profile
IP performs many of the secondary functions that CTP requires to function. The two profiles operate in tandem with each other most of the time. It is also used for "walkie-talkie" types of features.
SPP - Serial Port Profile
SPP allows for emulated serial port connections between two devices. For all due purposes, two devices connected with the SPP profile can be assumed to be communicating over a wireless RS-232 cable.
HS - Headset Profile
HS allows the use of headset functionality (microphone + audio) between devices. It is required for headset use on mobile phones and handhelds.
DNP - Dial-up Profile
DNP allows the use of a cell phone or Bluetooth-enabled modem to be used as a wireless modem for connecting to dial-up internet access providers and for cell phones to recieve and send data calls.
FP - Fax Profile
FP allows cell phones and modems to be used by computers as wireless fax modems that can send and recieve faxes.
LAP - Local Area Network Access Profile
LAP allows Bluetooth devices to access a Local Area Network over PPP. It can also be used to form a LAN between two Bluetooth devices.
GOEP - General Object Exchange Profile
GOEP is the foundation for all of the other data access profiles. It allows Synchronization, File Transfer, and Object Push to function by providing all of the information needed to use the OBEX protocol.
OPP - Object Push Profile
OPP allows the pushing/pulling of data objects (such as business cards and PIM information) between Bluetooth devices.
FTP - File Transfer Profile
FTP allows the browsing, manipulating, and transfering of data objects on or with another Bluetooth device.
SP - Syncronization Profile
SP allows two Bluetooth devices to exchange Personal Information Manager data with each other and keep both up-to-date.

Versions of Bluetooth

To date, there have been three version of Bluetooth with a fourth on the way.

Version 1.0/1.0b
The initial release of Bluetooth was 1.0, but 1.0b was released some time after to address interoperability issues between devices. This significantly hindered the early adoption of the specification, as it was extremely difficult to get devices from different manufacturers to work properly. 1.0b also allowed certain parts of the Bluetooth hardware to be turned off when not in use to conserve power.

Version 1.1
Bugfixes, plus a speed boost to the data channel. What was once a 460 kilobits/second data channel was increased to 721 kilobits/second.

Version 1.2
On November 6, 2003, the Bluetooth SIG announced the specifications for the new version 1.2 revision of the Bluetooth specification. As of this date, there are few 1.2 devices on the market. Most notable are two headsets from Motorola, the HS810 and the HS820, one phone, the Siemens S65, and a handful of USB adapters from various companies. 1.2 offers the following improvements.

-Higher quality transmissions. This is important for voice communication as older Bluetooth headsets were notorious for their poor voice quality.
-Adaptive Frequency Hopping, which decreases the chance that Bluetooth, 802.11b/g, and other 2.4GhZ signals will interfere with each other. AFH will take the transmissions of other devices on the band into account and switch transmission channels automatically.
-Enhanced voice handling for headsets will improve transmission quality and decrease the adverse effects of background noise.
-Slight speed improvements have decreased the time it takes for the standard handshake method to occur. This makes for slightly faster device connection speeds.

Your Bluetooth devices may or may not be upgradable, depending on your manufacturer. It has been noted that 8MB of flash memory may be needed for the new features, and that most of today's devices have only 4MB. Your mileage may vary.

Version 2.0 (planned)
-Non-hopping narrowband channels will allow the advertising of many devices' Bluetooth profiles at once, eliminating the handshaking process which currently takes about 1 second per device. It will also allow transmission of unencrypted public data to devices moving at a physically high speed.
-Higher connection speeds
-Multiple speed levels a la Ethernet (10 megabits, 100 megabits, 1000 megabits)

This writeup is an enhanced and expanded version of my orignal Version 1.2 writeup, and would not have been possible without the assistance of the Bluetooth entry on the Wikipedia (for version 2.0 information) and the Bluetooth SIG website. Thanks to kwerkey for pointing out some abbreviation errors.