In the past year Bluetooth low energy (BLE) has seen a surge in popularity.
Despite its name, BLE is not that similar to conventional Bluetooth. One of its selling points is that you can design a BLE device to run off a 230mAh CR2032 Li coin cell. This is possible, but in practice developers often end up using a larger battery. The rated 230mAh on a coin cell assumes very low current draw. If you draw more than a few hundred microamps, except in very short bursts, the capacity is cut in half. Moreover a Li cell’s internal resistance rises as its power is depleted more than cells of other chemistries. If your power budget requires more than 100mAh, a CR2032 will be insufficient.
The BLE physical layer divides the 2.4GHz ISM band into 40 channels. Three of them are dedicated for advertising (finding and connecting other devices). These channels are located between the commonly-used Wi-Fi channels 1, 6, and 11, with the idea that these frequencies will be freer of interference. (Wi-Fi bandwidth is 20MHz, but the channel spacing 5MHz, making 1, 6, and 11 the only set of three channels with no overlap.)
The remaining 37 channels are for data. The frequency hopping algorithm simply increments the channel number by a hop value every transmission. Since the number of data channels is prime, all channels get equal use.
BLE’s signalling is 1 Mbps GFSK. This is low enough to allow inexpensive receivers with sensitivity in the -90dBm range but not so low that power is wasted in long transmissions. In my testing using rubber ducks, I got 100 meters reliable range using the popular 8051+BLE radio SoC, TI CC2540. With the same chip and chip antennas, I got much less range. This is consistent with my experience that every chip antenna I’ve tested is about 10 dB worse than a rubber duck. Chip antennas on both sides cost 20dB of link budget.
The BLE Attribute layer supports state machines to reduce radio traffic. For example, a toggle command can obviate the need to request a setting’s state and then send another command to change it to the opposite of what it is.
An embedded system’s application can run on the 8051 in the SoC along with BLE stack. Often developers use a separate processor to run their device’s application to avoid timing conflict. Nordic Semiconductor has a SoC with an ARM processor with more processing power, possibly making it easier to run everything on a single chip. TI is rumored to be coming out with another BLE SoC with more processing power.
It seems like we’re moving to many embedded chips having a built-in separate processor core for a BLE stack. BLE reminds me of USB in that at first glance it seems needlessly complicated. The design complexity makes it easy, though, to connect devices wirelessly without a lot of configuration and without wasting power.
Further Reading
Bluetooth Low Energy: The Developer's Handbook - This book explains the nuts and bolts of each layer of the BLE stack.