I started my investigation into bluetooth low energy (BLE) development kits and came across quite a few different choices. The different options can be broken down into two categories: Chip-on-Board and turnkey module.
Chip-on-Board (also called System on Chip or SoC) are the bare-bones microchips manufactured by companies that specialize in integrated circuits. The nRF8001 by Nordic Semiconductor and the CC2540 by Texas Instruments are examples of such components.
The format of these chips are usually in a very unfriendly quad flat no-lead (QFN) package, which are small and very difficult to work with, since the pins are located underneath the chip, making them hard to solder.
There’s a great guide and instructional video available from curious inventor if you want to see how to solder these things.
Even if you manage to solder one of these onto a circuitboard, you’ve still gotta add a few more components, such as a 32Khz and 32Mhz crystal, as well as an antenna, capacitors, resistors and a custom metal RF shield. Bear in mind you’ll also need to get your bluetooth module certified by FCC, IC, ETSI, etc, which will end up being quite expensive (around $40k)
So the Chip-on-Board solution requires a lot of effort just to get a basic bluetooth module to connect your microcontroller to.
Thankfully there’s another option for those who just want to get up and running as quickly as possible: the turnkey module (sometimes simply called a bluetooth module). The Bluegiga BLE112 and BR-LE4.0-S2A from Blueradios are examples of these, both of which are built around the CC2540 from Texas Instruments. These bluetooth modules are essentially a TI CC2540 with an antenna, crystal, RF shield and other components already wired together on a circuit board. They also use their own proprietary software, allowing you to program them without purchasing an expensive compiler, such as IAR Embedded Workstation.
|Evaluation Kit||DKBLE112||$510 AUD|
|Controller||Texas Instruments CC2540|
The BLE112 from Bluegiga is a single mode module based upon the CC2540 by Texas Instruments.
Bluegiga has two different development kit options, a more expensive development starter kit (BLE112-STK) which sells for $594 AUD (mouser) or $440 USD (semiconductor store) and a lower priced evaluation kit (DKBLE112) which contains an evaluation board, 2 bluetooth modules and a bluetooth dongle. The evaluation board has various sensors, including a potentiometer, accelerometer and an LCD screen to prototype your applications. The kit can be purchased in Australia from Glyn for $349 AUD until December 23rd 2011, at which point the price will be raised to $510 AUD. You can also purchase individual modules for $30 AUD from Glyn.
The BLE112 modules are available with three different antenna types:
- integrated antenna (BLE112-A)
- U. FL connector (BLE112-E)
- 50 ohm RF pin (BLE112-N)
The integrated antenna is a very small ceramic chip antenna, soldered directly to the BLE112 module PCB. The Fractus® Compact Reach Xtend FR05-S1-N-0-102 is an example of such a chip antenna, and is actually the one recommended for use with the CC2540 by Application Note AN048 from Texas Instruments.
This is ideal if you don’t want to deal with selecting an antenna yourself and want to keep your end product as small as possible, but be aware that it won’t be as efficient as larger detachable dipole antennas.
The U. FL connector and 50 ohm RF pin N-connector are both RF coaxial connectors for interfacing with a detachable antenna. Use this option if you’re concerned about antenna efficiency and want to get the best range possible, and don’t care as much about the large size.
If you decide to use a detachable antenna, Bluegiga requires that you to use one of their qualified antenna types, which are available from this datasheet, and listed in the following table:
|Mfr.||Part Num||Measure d Gain (dBi)||Specific d Gain (dBi)||Measure Total Efficiency (%)||Price (USD)|
I’m not completely sure why you would choose the starter kit (BLE112-STK) over the evaluation kit (DKBLE112), since the eval kit is cheaper and comes with a prototype board. I’ll try sending Bluegiga an email this week to find out the differences between the two options.
Update: (Monday, December 5th, 2011)
I received the following response from Bluegiga when asking them about the differences between the BLE112-STK and the DKBLE112:
Please, just consider the DKBLE112 which comes with a very nice evaluation board among others.
There seems to be two different ways of interfacing with these modules. The first is through the “BGAPI binary protocol” to be used for application with a separate host (microcontroller). The second method is through “BGScript scripting language” which will allow you to program the embedded 8051 microcontroller. I’m not sure if IAR Embedded Workstation will be required for either of these options.
Bluegiga had the following to say regarding the different methods of interfacing with their modules:
With our Bluetooth low energy modules the communication with a host happens using a simple binary protocol (BGAPI) carrying commands, responses and events over many possible interfaces, like UART, USB, SPI, I2C You do not have to implement the binary protocol from scratch, as we offer a documented library of ANSI-C functions (BGLib) implementing the protocol.
In our modules we do not use the TI stack but our very own stack spanning all levels of the stack from bottom up. In this way we can provide among others a better stack as a whole, simpler development tools for the average user, and the possibility for better customization in particular custom projects. We also have in the roadmap to provide our stack as object code to allow in-module advanced C programming using the IAR compiler.
Applications can be run within the module itself (without the need of an external controller) using our BGScript option, that is, you can use any text editor to write a script which is a basic-like, event-based, very simple proprietary language where commands and events are similar to the functions from the BGLib. Our own compiler will take care of preparing the firmware image taking into account the database and hardware configuration (as xml files) and the script (as text file) if any.
|Single Mode Evaluation Kit||BR-EVAL-LE4.0-S2A||$199 USD|
|Dual Mode Evaluation Kit||BR-EVAL-LE4.0-D2A||$249 USD|
|Single Mode Module||BR-LE4.0-S2A||$49 USD|
|Dual Mode Module||BR-LE4.0-D2A||$59 USD|
|Controller||Texas Instruments CC2540|
Blueradios is another company that provides turnkey bluetooth low energy modules. The difference between the Bluegiga options is that Blueradios has dual mode modules, which will allow it to communicate to both standard bluetooth BR/EDR (also known as Basic Rate/Enhanced Data Rate) and low energy devices. Blueradios also sells direct from their website, while Bluegiga uses resellers, such as Glynstore in Australia.
They’ve got an evaluation kit (BR-EVAL-LE4.0-S2A) available for $199 direct from Blueradios. The evaluation kit includes a bluetooth module on a development board and a BLE USB dongle to attach to your computer. You can also buy these items separately at $149 for the dev board and $119 for the dongle, so it makes more sense to purchase them as the evaluation kit.
According to the this post on the Texas Instruments tech forum, there will be 4 options available to write applications for the BlueRadios modules: (ATLE.e and ATLE.ez are not yet available but will be released soon.)
- ATLE.s (Serial) – The module is controlled through the UART using an AT command set. This requires an external processor, which customers may already be familiar with and may not require an expensive compiler.
- ATLE.e (Embedded) – BlueRadios provides a library that is built on top of the TI stack, allowing customers to build custom applications. This requires the IAR compiler but will provide a simplified programming experience compared to the TI Stack.
- ATLE.ez (Easy Embedded) – BlueRadios provides a library that can be used with a free compiler, allowing customers to build custom applications at no extra cost. The programming experience is even more simplified than ATLE.e, allowing the user to execute AT commands as if they were running on an external microcontroller, but still allowing direct access to the CC2540 peripherals. ATLE.ez will be RAM limited compared to the ATLE.e option.
- TI BLE-STACK - Customers can use the TI stack with IAR.
Of major interest to me are the Bluetooth 4 single mode low energy sensors that Blueradios has just recently announced. In particular, they’ve got a $149 USD programmable universal sensor called the BR-BUTTON-S2A SensorBug, which is a small bluetooth low energy module with a 3-Axis accelerometer (±2g/±4g/±8g), light sensor, temperature sensor, and a 3 volt CR2032 coin holder on the back. According to the Sensorbug PDF, you can “custom build options to populate only required features to reduce overall cost”, which in my mind means that you can ask them to create one of these modules with only an accelerometer, for example, if that’s the only sensor your application requires access to. I’ve sent an email to them for clarification, I’ll post the response when I receive it.
Update: (Monday, December 5th, 2011)
I received a response from BlueRadios regarding the SensorBug, here’s what they had to say:
The SensorBug is a product that includes built in firmware that does what we designed it for. You connect to it and it sends out all the sensor data 1/sec. If you already have a TI CC2540 dev kit and your custom firmware running on the CC2540 then you can flash over our code with your own firmware since you already have the required tools and knowledge to do this using the TI CCDebuger with the programming pads already on the SensorBug.
Once you flash over our code there is no way to recover our firmware since you will erase our boot loader.
We already have the SensorBug sending all the sensor data to the iPhone 4s smart app so you either have to buy what we have or do your own design from the ground up using either our module or build your product around the TI CC2540 processor.
[as for a custom built SensorBug], unless you are planning to purchasing at least 1000 units we can’t guess at pricing based on features you may or not need at this time.
So it seems you can only get the custom built SensorBug option if you order more than 1000 units.
|Controller||EM Microelectronic EM9301|
|Host Controller (MCU)||Silicon Labs C8051F930|
Unlike the Bluegiga BLE112 and BlueRadios BR-LE4.0-S2A, which are both based on the TI CC2540, the Alpwise ALPW-BLEM001 module is using the EM Microelectronic EM9301. Since the EM9301 controller lacks an onboard MCU, Alpwise has included the Silicon Labs C8051F930 microcontroller. I’m unable to find pricing for the evaluation or dev kit, and there doesn’t seem to be much documentation on the Alpwise site either.
|Single Mode Module||AMB2620||Module w/ integrated ceramic antenna|
|AMB2620-1||Module w/ antenna pad|
|AMB2620-2||Module w/ U.FL antenna connector|
|Pricing||1 to 99 pcs||19.30€ ($23.82 AUD)|
|100 to 499 pcs||15.40€ ($19.00 AUD)|
|500 to 999 pcs||13.80€ ($17 AUD)|
|1,000 pcs||12.30€ ($15.18 AUD)|
|Controller||Texas Instruments CC2540|
The AMB2620 is yet another turnkey module based around the TI CC2540, this time from German based Amber Wireless. There isn’t much information available regarding the AMB2620, other than the datasheet, since the module is still in development. Amber Wireless expect it to be available sometime in Q2 2012.
System On Chip Modules
|nRFgo Development Kit||NRF6700||$399|
|Single Mode Chip||NRF8001-R2Q32-R||$2.20 USD (semiconductor) $6.16 (mouser)|
The nRF8001 requires an external application microcontroller for it to operate. It uses a simple serial interface (ACI) to communicate with external MCUs.
As far as I can tell, the nRF8001-DK requires the nRFgo development kit, putting the total at $500, making it one of the more expensive dev kit options.
Nordic has just put out the following video demonstrating the use of Heart Rate monitor, Proximity, and temperature sensors with the iPhone 4S. I’m curious to see if they’ll be providing access to the iOS source code like Texas Instruments has.
|Mini Dev Kit||CC2540DK-MINI||$99|
|Single Mode Chips||CC2540F256 (256 KB flash)||$8.78 USD (mouser) $6.15 USD (digikey)|
|CC2540F128 (128 KB flash)||$6.08 USD (mouser) $5.85 USD (digikey)|
The CC2540 is at the heart of both the Blueradios and Bluegiga turnkey modules, and features an embedded 8051 microcontroller, allowing you to control it without an external MCU.
The major downside to the CC2540 is that you need to use IAR Embedded Workbench to program the 8051 MCU, at a price of $4k AUD per single license. For a single developer or hobbyist, the extremely high price is a deal breaker. You can still use an external MCU with the CC2540 and a much cheaper or open source compiler, but if you’re going for the smallest bill of materials (BoM), you’ll want to write your code for the on board 8051 MCU.
On the plus side, TI has a very good forum with knowledgeable employees and users.
I recently picked up the CC2540DK-MINI, since it was one of the cheapest dev kits at $99 (including FedEx express shipping to Australia!) and I was really impressed by their recent video displaying the CC2540 keyfob interacting with the iPhone 4S. So far it’s been very useful for the prototyping stage, however, I’ll probably end up getting one of the Bluegiga modules when I’m ready to work on the end product.
So what are the differences between the CC2540DK and the CC2540DK-MINI you ask? The CC2540DK contains two SmartRF05 Evaluation Boards and two CC2540 Evaluation Modules (CC2540EM). The Evaluation Module contains the smallest number of components that the the CC2540 requires to operate, and can be used as a standalone device by connecting it to a power source using something like the Battery Board for System-on-Chips (SOC-BB), or it can be connected directly to the SmartRF05 board.
The SmartRF05 board is the the motherboard in several development kits for Low Power RF devices from Texas Instruments and comes with a wide range of user interfaces such as 3×16 character serial LCD, LEDs, potentiometer, joystick, buttons and breakout pins.
The CC2540DK-MINI on the other hand, is a much smaller dev kit, with fewer user interface components on the keyfob (it only has LEDs, buzzer, buttons and an accelerometer), but it contains everything you need to start developing BLE applications. Unless you have a very specific need for the SmartRF05 boards and additional interfaces provided by it, I would suggest going with the CC2540-MINI.
A note about the samples: they’re not very useful on their own, since they come in a very small QFN package that you’d need to solder onto a breakout board or PCB with an antenna in order to use it.
More info on TI bluetooth low energy solutions can be found here
Some notes in regards to limitations with TI’s CC2540 and multiple devices:
A quick refresher on GAP versus GATT in case you didn’t know: Any BLE device that can connect is either a GAP central role or a GAP peripheral role device. The GAP spec allows a central device to connect to multiple peripherals at once, while a peripheral device can only connect to one central device at a time. In our current implementation of the BLE stack, a central device can only connect to one peripheral device at a time. If you try to establish a second connection while one is already established, you will get an error. We plan to have central support for connections to multiple peripheral devices in a future release.
I haven’t been able to find out much information about the EM9301 other than from the sparse details on the EM Microelectronic website, and I don’t see a listing for it on Digikey or Mouser. It looks like EM has decided to go the same way as the NRF8001 from Nordic Semiconductor and not include an onboard microcontroller unit. According to their fact sheet, the EM9301 comes in at least two configurations, one with a CD-DC up converter to allow using batteries as small as 0.8V, and one without a DC-DC converter. It’s got only 25 pins compared to the 40 pins on the TI CC2540, since it lacks an onboard MCU.
The EM9301 is the chip featured on the Bluetooth low energy module ALPW-BLEM001 from Alpwise Wireless Solutions, discussed above.
|Single Mode Chips||CSR1000||$3.20 USD (digikey)|
|CSR1001||$3.58 USD (digikey)|
|Dual Mode Chips||CSR8311|
|Mode||Single Mode/Dual Mode|
CSR seems to be leading the way in terms of sheer variety of BLE chip options. They’ve got two different single mode chips, the CSR1000 a QFN 32 lead package with 12 I/O lines, and the CSR1001, a QFN 56 lead chip with 32 I/O lines. The CSR1001 is being marketed as “the only Bluetooth Smart accessory chip to provide a full single chip solution for advanced keyboards and remotes” since it has 32 I/O lines (the TI CC2540 only has 21 I/O lines).
CSR also has four different dual mode chips, the CSR8311 with a special form factor for automotive applications, the CSR8510 with USB 2.0 support for tablets/pc applications and the CSR8810/CSR8811 with IEEE 802.11 coexistence for mobile phones and media players.
As far as documentation is concerned, I couldn’t find any. On the product information page for their CSR µEnergy line of BLE chips, it has a link with the following message:
Subject to approval, a datasheet can be made available for this product via CSR Support.
So I tried clicking the link and it brought me to a page about Environmental Compliance!? I then tried registering an account in order to “gain access to some of the secured areas of the site”, in hopes of retrieving a datasheet or some more technical information regarding the CSR1000/CSR1001 chips. It instructed me to contact the local sales representative to have my information added to their customer email list, which I’ve done so.
The product information page mentions “CSR’s µEnergy platform provides everything required to create a Bluetooth low energy product with RF, baseband, microcontroller, qualified Bluetooth v4.0 stack, and customer application running on a single chip.” so I believe the CSR1000 and CSR1001 have an embedded microcontroller unit, but without the datasheets, I have no idea what the specifics are.
I’ve gotta say that I’m quite surprised at how difficult it is to obtain technical information from CSR compared to Texas Instruments. I mean, seriously, I have to submit a request and receive approval just to download a datasheet? You might have great products, but how can any small developer seriously consider CSR as an option if it’s this difficult to access technical documents. Perhaps this is because CSR is marketed more towards large corporations, rather than hobbyists or small development teams.
I recently received a response from my local CSR sales representative, and it looks like I have to sign a non disclosure agreement in order to gain access to any of CSR’s documentation, so unfortunately I won’t be able to write about any of their hardware.
With such a bewildering number of different BLE options available, and more being released on a regular basis, making a decision about which vendor to use is a difficult choice. As a small developer, my main criteria for choosing a BLE vendor is based on which one provides the most documentation and support. Like I mentioned in the CSR discussion above, I can’t consider using a product if the technical documentation is not easily and readily available. In my opinion, Texas Instruments was by far the best manufacturer in regards to the amount of documentation available, and how easy it was to obtain. They’re extremely open when it comes to providing detailed information about their products, and you can find an absolute wealth of technical materials for the CC2540. Here’s a summary of what I liked about the solutions from Texas Instruments:
- Keyfob, USB dongle, and CC2540 evaluation module reference design provided (schematics with the complete printed circuit board details which are extremely useful for creating your own PCB)
- Detailed developer’s guide for BLE stack software
- Complete and thorough documentation available for both OS Abstraction Layer (OSAL) API and Hardware Abstraction Layer (HAL) API
- Well-written user guides for both CC2540 and CC2540DK-MINI
- Bluetooth Low Energy wiki
- iOS demo application source code provided
- Free samples available
- Inexpensive development kit available ($99)
- Very active support community on the TI E2E™ Low Power RF Bluetooth® Low Energy & ANT Forum
- Plus many other documents and application notes available for selecting components for your board, such as which crystals to use and a complete antenna selection guide.
The only complaint I have about the TI CC2540 is that they don’t provide a BLE stack library compatible with an open source compiler such as SDCC, which means that you have no choice but to use the very expensive IAR Embedded Workbench to program the onboard 8051 MCU. Other turnkey module solutions such as the Bluegiga BLE112 and BlueRadios BR-EVAL-LE4.0-S2A are in the process of developing their own libraries to be used with open source compilers, but apparently they’re a few months from this being available, with a chance that it might not even be possible. BlueRadios and Bluegiga do, however, have a proprietary scripting language that allows you to program the 8051 on the CC2540 without IAR, although it’s not nearly as powerful as writing native C code.
If you’re a hobbyist, unfortunately the only real option you have for programming the CC2540 is to use the 30 day evaluation copy of IAR. The kickstart edition with the 4KB code limit apparently won’t work because the TI BLE stack is larger than 4KB.
Other than this relatively large obstacle, the CC2540DK-MINI is a very good starting point for developing BLE applications. The next choice to make after deciding which SoC vendor you’re going to use is figuring out whether to use a turnkey module in your final design, or create a custom PCB yourself. Like I mentioned at the beginning of this post, designing your own PCB for the CC2540 is quite challenging if you don’t have any hardware or PCB fabrication experience, and your device will need to be certified by the FCC which is very expensive. The turnkey modules already have FCC certification, so for hobbyists I think this is the best option.
In terms of which turnkey module to get, I decided to go with the BLE112 from Bluegiga since it had more documentation than any of the other modules. In order to actually make use of the module and program it using IAR, you’ll still need to figure out some way of interfacing it with your computer. Usually this is done with a “breakout board” which takes a small component and “breaks out” the pins to connections on a larger PCB which can be interfaced with a breadboard. Unfortunately, I haven’t been able to find such a breakout board, so I’m trying to design one myself. This will certainly be the topic for a future blog post, so stay tuned!