I’ve seen more and more Bluetooth 4.0 LE devices in the last few months including RFDuino, Wimoto Motes, TI SensorTag, and Scadanu Scout, so I thought it would be good to write a bit about Bluetooth. First, I’ll write about the different version of Bluetooth, since I was still confused with the practical implications between the versions, and then I’ll show some development kits and software resources to play around and/or develop Bluetooth 4.0 LE applications both on devices and hosts.
- Bluetooth v1.0 and v1.0B
The Bluetooth 1.0 Specification was released in 1999, and according to an entry in Wikipedia, 1.0 and 1.0B devices had many issues, mainly interoperability issues. You won’t find any Bluetooth 1.0 device today.
- Bluetooth v1.1
Bluetooth v1.1 was ratified as IEEE Standard 802.15.1-2002 in 2002. It fixed many issues found in the previous specifications, added the option to use non-encrypted channels, as well as Received Signal Strength Indicator (RSSI). This standard has been superseded by v1.3, and there are now very few devices that only support Bluetooth 1.1.
- Bluetooth v1.2
Bluetooth v1.2 (IEEE Standard 802.15.1–2005) is backward compatible with 1.1, and according to Wikipedia, it brings the following main enhancements:
- Faster Connection and Discovery
- Adaptive frequency-hopping spread spectrum (AFH), which improves resistance to radio frequency interference by avoiding the use of crowded frequencies in the hopping sequence.
- Higher transmission speeds in practice, up to 721 kbit/s, than in v1.1.
- Extended Synchronous Connections (eSCO), which improve voice quality of audio links by allowing retransmissions of corrupted packets, and may optionally increase audio latency to provide better concurrent data transfer.
- Host Controller Interface (HCI) operation with three-wire UART.
- Introduced Flow Control and Retransmission Modes for L2CAP.
Although the standard is still active, I’m struggling to find many devices based on this version.
- Bluetooth v2.0 + EDR
Bluetooth v2.0 + EDR specification was released in 2004. v2.0 is backward compatible with v1.2, and the main difference is the introduction of Enhanced Data Rate (EDR) for theoretical data rates of about 3 Mbit/s (around 2.1Mbit/s in practice). EDR can also provide a lower power consumption.
EDR is an optional feature, so some products may support “Bluetooth v2.0”, but not EDR. One example was HTC TyTN phone. There are still many Bluetooth v2.0 products sold today, usually with EDR, but you may prefer devices with Bluetooth v2.1 + EDR.
- Bluetooth v2.1 + EDR
Bluetooth Core Specification Version 2.1 + EDR adopted on July 26, 20007, is fully backward compatible with 1.2, and the key improvement is the addition of Secure Simple Pairing (SSP). This improves pairing user-friendliness as no, or limited, user interaction is needed, and increases the use and strength of security. Other improvements include “Extended inquiry response” (EIR), which provides more information during the inquiry procedure, and sniff subrating, which reduces the power consumption in low-power mode.
The majority of low bandwidth Bluetooth devices, such as headsets, speakers, mouse and speakers, use this version of the standard.
- Bluetooth v3.0 + HS
Version 3.0 + HS of the Bluetooth Core Specification adopted by the Bluetooth SIG on April 21, 2009. provides theoretical data transfer speeds of up to 24 Mbit/s thanks to the HS (High Speed) in its name. This feat is not achieved over the Bluetooth link itself, but via an 802.11 link, usually Wi-Fi. Bluetooth is used for pairing. Like with EDR in the previous specifications, HS is optional, so you may find Bluetooth 3.0 devices without HS.
Other improvements include L2CAP enhanced modes, Unicast connectionless data, and enhanced power control. There are also many devices compliant with Bluetooth v3.0, not always with HS, including input devices such as keyboards and mice, and I fail to see why you’d ever need Bt 3.0 HID devices. Maybe it’s just a marketing trick, or I missed something. Bluetooth v3.0 + HS is the minimum version to select if you plan to transfer large files between your devices. I understand that although functionality and performance should be similar to Wi-Fi Direct, Bluetooth 3.0 +HS should consume less as the Wi-Fi link is only enabled during transfer.
- Bluetooth v4.0
The latest Bluetooth Core Specification version 4.0 adopted on June 30, 2010, includes Classic Bluetooth, Bluetooth high speed and Bluetooth Low Energy protocols. Bluetooth high speed is based on Wi-Fi in a similar (same?) fashion as Bluetooth 3.0 + HS, and Classic Bluetooth consists of legacy Bluetooth protocols.
Bluetooth low energy (BLE), previously known as WiBree or Bluetooth ULP, is aimed at ultra low power applications running off a coin cell, just like the 4 devices I mentioned at the top of this post. Instead of BLE, you’re more likely to see “Bluetooth Smart Ready” and “Bluetooth Smart” logos, respectively for hosts (e.g. PC, tablets, smartphones…) and sensors.
Bluetooth 4.0 also adds support for the Generic Attribute Profile (GATT), and Security Manager (SM) services with AES Encryption, both of which are used for BLE.
There seems to a lots of “Bluetooth 4.0” devices on sites such as Amazon, but most of them don’t show the logos “Bluetooth Smart Ready” or “Bluetooth Smart”, and they may not support BLE, or HS, so you’ll have to be smart, and make sure they support what you need. AFAIK, currently only iOS, Mac, Windows and some HTC and Samsung devices support Bluetooth 4.0 LE, but it will come to Android 4.3 (API Level 18). Some devices such as Samsung Galaxy S4 are said to support BLE, but I understand only the hardware is capable, and you’ll have to wait for a firmware upgrade to actually connect to Bluetooth 4.0 LE sensors.
Bluetooth 4.0 Low Energy Development Resources
There are two types of Bluetooth 4.0 LE chipsets:
- Single mode implementation where the low energy protocol stack is implemented solely. CSR1010, Nordic Semiconductor nRF8001, and Texas Instruments CC2540 are examples of such ICs. Those are to be used in “Bluetooth Smart” devices.
- Dual-mode implementation where Bluetooth LE is combined with a Classic Bluetooth controller. I understand those are used in “Bluetooth Smart Ready” computers and mobile devices, and USB dongles.
You’ll need different type of hardware depending on whether your develop a Bluetooth device, or a Bluetooth applications.
If you’re developing a Bluetooth device, you can consider the kits below:
If you’re developing a Bluetooth application, you can currently use the following:
- An Apple Mac OS X Lion with XCode with iOS 5.1 SDK and PTS Low Energy Radio Module
- Apple iPhone 4S
- HTC One X+, Droid DNA, or the HTC One which support Bluetooth Low Energy API via a proprietary API.
- Windows 8 machine with Bluetooth 4.0 Controller
Using Texas Instruments Sensortag to test your application could also be a good development tool.
Once you’ve sorted out the hardware you need the easiest way to get started is probably to download the “Bluetooth Quick Start Kit v2” which is available after a free registration, and provides the following:
- Bluetooth Low Energy Fundamental Concepts
- Custom Profile – ‘Hello Bluetooth’ Example
- “Hello World” Source Code for TI CC2540, Nordic nRF8001, iOS, Android , and Windows 8 custom profile.
- Air Interface Traces captured for the ‘Hello Bluetooth’ profile using Ellisys Bluetooth Explorer 400 and Frontline FTS4BT Bluetooth Protocol Analyzer and Packet Sniffer.
- GATT Schema Documentation & Tutorial
For Linux support, you may want to check “Bluetooth Smart Devices and Low Energy support on Linux” presentation at ELCE 2012, which explains the progress at the time (November 2012), and BLE support in BlueZ.
Comments pointing to errors, and/or providing interesting additions are more than welcome.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
13 Replies to “Bluetooth Versions Walkthrough, and Bluetooth 4.0 Low Energy Development Resources”
Samsung does have a SDK to support Bluetooth low energy on Android 4.2 Devices http://developer.samsung.com/ble
> Maybe it’s just a marketing trick
A lot about Bluetooth is just a marketing trick, and Bluetooth SIG is fully supportive of fooling consumers with all that “optional” functionality in later standard versions. That essentially allows to call a device 4.0 if it’s functionality is actually at 2.1 level. Hack, I found that Secure Simple Pairing is actually pretty botchedly implemented, ans SSP is a *must*, without it BT is one big security hole with attacks known since 2005. Other standard features, like park mode (support for more than 7 devices in piconet) are just spit at by vendors – most time it’s not implemented, and when implemented, never interoperatable and right (see my small investigation at http://pfalcon-oe.blogspot.com/2012/01/bluetooth-park-mode-exposed.html).
BLE brings new hope, yeah. Except that to start with you’ll probably need to buy a dozen of “4.0” dongles before you find one which supports BLE. (All that “Bluetooth Smart” is another marketing gimmick – that’s supposed to be stamped on $200+ useless crap which nobody buys, and thus nobody sees, including Chinese guys. So, their stuff doesn’t have it, and when it will, it won’t mean much of course).
I’ve seen your blog, and you seem pretty knowledgeable about the subject 🙂
Are there any known-to-work BT 4.0 BLE USB dongles?
If you’re looking for a low cost USB BLE dongle, search for “BD-401 bluetooth” on eBay. I’ve used one with a SensorTag, works fine.
Thanks! It looks like it’s also on dealextreme: http://dx.com/p/bd-401-mini-bluetooth-v4-0-usb-dongle-white-135873
Edit: But some sellers are cheaper on Ebay: http://www.ebay.com/sch/i.html?_nkw=bd-401
I didn’t touch BLE yet, not wanting to pay early adopter extra 😉 (well, I actually have nRF51 devkit for a while, didn’t touch it yet either ;-( ). Just ordered random cheapp dongle from eBay which had “dual mode” in title, preparing to open counterfeit product case if it doesn’t support BLE. I did some research though, and figured that realistically a dual-mode dongle would be based either on CSR8510 or BCM20702. Both are without datasheets ;-. One I ordered had “CSR” in title, now I wonder if I should order 2nd just in case, which looks like models which are described as having BCM20702: http://www.ebay.com/itm/111068250794 (prooflink).
Can you please share its USB VID/PID? Well, teardown photos would be cool too ;-).
Here ya go, 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode). Inside there is a CSR8510 and some SPI flash chip
And supported features:
I think Linux supports BLE at least since December 2012: http://www.bluez.org/release-of-bluez-5-0/
Kernel >= 3.5 is required
Some low energy profiles supported, according the web page: Cycling Speed, Scan Parameters, Alert, Heartrate, HID over GATT (HoG). In this other page, there are a list of profiles: http://www.bluez.org/profiles/
BCM20702 is supported in Linux: http://plugable.com/drivers/bluetooth, http://plugable.com/products/usb-bt4le. Don’t work in MacOSX. With CSR8510 I think is the opposite.
There’s now Bluetooth 4.1 with better coexistence with LTE radios, automatic re-connections, and data transfer improvements for Bluetooth Smart (Bulk transfer for BLE).
Is it possible that a BT 4.0 Dual mode device communicate with an old device of BT2.1 + EDR?
“The Bluetooth low energy protocol is not backward compatible with the previous (often called ‘Classic’) Bluetooth protocol. The Bluetooth 4.0 specification permits devices to implement either, or both, of the LE and Classic systems. Those that implement both are known as Bluetooth 4.0 dual-mode devices.”
So the answer should be yes.
The very common micro USB sticks that says “CSR 4.0” on them are all Bluetooth Dual Mode devices. They predate the creation of the Smart logo but they still work. Every device I have looked at has the same chip – CSR8510.
Bluetooth Alliance came up with that Smart logo about a year after BT 4.0 was released. It is an attempt to make things less confusing for consumers. Nothing changed technically when they released the logo. Because of the year delay of a lot of BT4.0 stuff in the market does not have the logo.
It is very rare to find a BLE single mode device in USB form. There are some but they are meant for developers. Anything you find in a general store should be dual mode. Of course all of the BLE presence tags, etc use single mode SOCs.