1. Introduction
Internet of things (IoT) is a new paradigm of the Industrial Internet Consortium focused on enabling the adoption of internet technologies, which includes different kinds of devices: Computers, tablets, smartphones, cyber-physical systems, and everyday objects. These devices include embedded sensors that share information between each other and can be controlled via the Internet [
1]. With this in mind, a regular object, such as a lamp or a coat with embedded electronics such as sensors will become a smart object. Therefore, an IoT environment will use these smart objects as the main components to enable businesses, industries, and consumers to connect to the Internet for sharing and analyzing data. Given these points, the estimation is that 50 billion devices will be connected by 2020 [
1], thus posing considerable market opportunities for those companies investing in IoT [
2].
Consequently, different vendors have made hardware platforms available, both for production and prototyping that allow the implementation of IoT applications. One example of a prototyping platform is the Arduino 101 board, based on an Intel® Curie™ system on chip (SoC), which includes an Intel® Quark™ microcontroller unit (MCU) and a BLE module, among other components. Other examples of prototyping platforms are the BLE Texas Instruments® (TI) CC2540 and the Nordic® NRF51822 SoC.
It is important to note that the Bluetooth low energy (BLE) protocol is widely used as the wireless communication protocol for IoT applications and is included in the majority of the hardware platforms available in the market as well as in smartphones, tablets and laptops. Another key point is that the smartphones are used by several IoT applications as a gateway for Internet access. As a result, and despite the fact that the fifth generation (5G) network will contribute by itself to the connection of billions of devices in the future, the BLE based applications can still coexist and use the 5G network as a gateway.
The BLE protocol defines a network called piconet [
3], formed by a central device (CD) or master and one or more peripheral devices (PD) or slaves. In this case, the CD can be a smartphone or a personal computer, while a PD would be a sensor device. In the piconet, the CD and PD are bound together in the advertising state and once they are connected, they will exchange data packets in a periodical time interval, which is known as a connection event. In general, a CD battery can be easily charged, and the power consumption of a PD becomes a critical parameter, since such devices are required to operate continuously using coin cell batteries. In other use cases, both the CD and PD would need to operate using coin cell batteries, and therefore there is the need to be aware of the power consumption of the platform to prevent the battery drain [
3]. As an illustration, during the advertising and connection events, a BLE device transitions different states before the transmission of data takes place, such as wake-up, receive data, transmit data, processing, and sleeping states. Therefore, instead of the peak current, the average current is required to determine the battery life of a BLE device [
4].
With this in mind, since the BLE protocol was developed to operate with coin cell batteries that may last from months to several years depending on the application [
3], there is the need to understand the power consumption of the available BLE commercial products to implement an optimal IoT application. Moreover, such information is either not available in the datasheets or the data are scarce and does not provide a design guideline for using different connection parameters in an optimal way.
In this work, we describe the required setup to measure the current consumption of four BLE commercial platforms, focusing on the consumption of the system while the platform is being configured as a BLE CD and as a PD. To the best of our knowledge, this work is the first to show the current consumption of a CD. Additionally, a guide for IoT designers is provided to calculate the battery life for several connection intervals that will help to deliver a much more dependable low energy IoT system.
3. Results
The obtained waveforms are shown in
Figure 2 and
Figure 3. As explained in
Section 1, the first step for a PD is to send advertising packets in the three specified channels for such purpose: 37, 38, and 39 [
3]. In this case, the PD is advertising its presence for a CD wanting to connect to it, thus the CD is scanning the advertising packets in the same channels. Once the CD finds a PD, it will send a connection request and if the PD acknowledges such a request, a connection is established and periodic connection events, set by a connection interval parameter, will be set to transmit data.
Figure 2 shows the typical waveform of a connection event, which is basically the same for all the platforms, and
Figure 3 shows the advertising event waveforms for a CD and PD. Important to note is that the waveforms presented in this section are just related to the Intel A-101 since the rest of the platforms’ waveforms are similar. In the case of the Intel A-101, the current consumption data for CD and PD are not available in the datasheets of the Intel
® Curie™ SoC. Similarly, the CD current consumption data obtained for the rest of the platforms (except the TI CC2540, which does not support a CD configuration) are not presented in the datasheets nor in any application note from the vendors. In the case of the PD obtained data, the results are similar to the ones presented by each vendor’s application notes [
4,
5,
6].
The advertising and scanning event waveforms from a PD and CD are shown in
Figure 3. These waveforms can be used to estimate the current consumption given by
where
Ion is the average current that can be calculated while the device is awake in a connection event
Ton and the time
TSi spent in each state with its corresponding current consumption
ISi.
NS represents the number of states and
i is the index of the state [
7]. The total average current
Iavg during a connection interval
Tci, considering the sleep current
Isleep, while the system is in an idle state, can be computed by
Subsequently, the battery lifetime in hours is given by
where
Cbat is the battery capacity in mAh.
Using (2), the overall power consumption is given by
where
V is the supplied voltage.
Figure 4 shows the current consumption of a connection event processed with Matlab to obtain the average current values, which are presented in
Table 2, for each state and with the platforms configured as a PD.
The current consumption of a connection event for a platform configured as CD is shown in
Table 3.
The average power consumption of a connection event is shown in
Table 4.
Extrapolating the values for different connection intervals, an approximation of the battery life associated to a connection interval for each platform configured as a PD is shown in
Table 5. The calculation of the battery life is based on a CR-2032 battery, which has a typical capacity of 235 mAh.
Similarly, an approximation of the battery life associated to a connection interval for each platform configured as a CD is shown in
Table 6.
The connection interval versus battery life for all the platforms configured as PD, as shown in
Figure 5.
Similarly, the connection interval versus battery life for all the platforms configured as CD is shown in
Figure 6.
4. Discussion
When comparing the obtained results for each platform, it is noted that the Intel A-101 has the lower power consumption when configured as a PD. However, Cypress CY8CKIT-042-BLE-A has a better performance when configured as a CD. In any case, different factors might affect the power consumption of the platforms. For instance, the MCU plays a significant role, since depending on the application, it might be performing different tasks such as controlling other peripherals. Moreover, the software and firmware stacks will also play a significant role, since they need to provide the means to implement the required low-power modes. As an example, Cypress and NXP platforms provide detailed application notes [
5,
6] and software callbacks to build a low power application by enabling deep low power modes in the platform for a better battery performance.
Another key point is that the BLE specification defines services and characteristics for a device to transfer data through the Generic Attribute Profile (GATT) [
8]. In this case, a profile describes the use case and the roles that a CD and PD will have. In general, a PD will be connected only to one CD at a time meaning that once a CD discovers a PD, the device will stop advertising and will only be available to transfer data to one master device in every connection interval. Thus, it is relevant to understand the power consumption and the expected battery life for different connection interval values, which are required to be defined depending on the data transfer needed for a given application, as specified in a profile. A list of defined BLE profiles can be consulted in Reference [
9].
Moreover, the relevance of the power consumption of a BLE CD is minimized since it is assumed that a smartphone, a tablet or a computer, which are typically used as CDs, can be charged more easily than a PD. While this can be true for different applications, there might be other use cases, such as in the smart farming, where this assumption is incorrect. As an example, sensors can be placed across a crop field to sense different variables such as humidity, lightning, temperature, amount of rain, among others, to detect a crop disease. Thus, the sensors (PDs) as well as the CD need to be powered by batteries that might not be easily replaced. Therefore, in order to provide a general design guideline for an optimal implementation of a BLE based application, the power consumption and expected battery life metrics for both the CD and PD, becomes relevant.
Additionally, the obtained data for a CD is not available in the datasheets and has not been reported elsewhere in the literature. Therefore, it is important to obtain these measurements to evaluate which platform can be used for a given IoT application. There will be different tradeoffs to take into account while choosing a platform such as which MCU is implemented in the platform, the available system memory, the system peripherals, analog modules, communication interfaces, and price among others, but one key element is the software stack that allows the user to control the low power states of the device.
Equally important is to understand the implications of using a coin cell battery when designing IoT applications based on BLE. For example, the BLE protocol was designed to remain in a sleep state for the majority of the time and only to wake up to transmit data or to maintain a connection [
10]. During the sleep state, the devices will typically consume few uA since the MCU and peripherals, including the BLE radio, are turned off. However, when a device wakes up, the current peak drawn by the BLE radio waking up and performing Rx and Tx operations, will typically consume above 10 mA by a few micro-seconds (~15 mA in Intel A-101, ~23 mA in the Cypress CY8CKIT-042-BLE-A, ~17 mA in the NXP FRDM-KW41Z and ~18 mA in TI CC2540). This current peak is known as high current pulse (HCP) [
11]. In this case, the typical continuous current drain specified in a coin cell battery (~190 uA in a CR2032) [
12], will be surpassed. In other words, the battery capacity will start degrading when the load current increases and the battery voltage will start dropping, as shown in
Figure 3 from Reference [
11]. In such results, the battery capacity follows the typical value specified in Reference [
12] when the current is 500 uA, but when the current draw is 3 mA, the battery capacity decreases to ~150 mAh. Another key point to consider is the functional end point (FEP), defined in Reference [
11], which is the minimum voltage level required by the platform circuitry to operate. Thus, an IoT application will need to take into account these factors to either select the appropriate battery or to forecast the duration of it for an application. In other words, the effective battery capacity will need to be calculated based on the requirements of the application in terms of the FEP and the duty cycle of the HCP. With this in mind, the HCP duty cycle becomes relevant when a short advertising or connection interval is set. For example, consider a 10 ms connection interval and a HPC of 30 mA with a duration of 1 ms. In this scenario, the device will be in sleep mode for 9 ms and will wake up at the 10th ms with a current consumption peak of 30 mA. When this load occurs every 10 ms, the battery capacity is heavily impacted, as can be seen in
Figure 5a of Reference [
11] where the battery capacity drops to 150 mAh at 2.0 V of FEP.
Important to realize is that the current peaks in the BLE will have a duration between one and 1.5 ms, considering the time it takes for the radio to wake up and the time that the Rx and Tx operations are performed. According to Reference [
11], the battery life estimation can be calculated by modifying Equation (3) by
where
Ccorrected is the corrected battery capacity estimated by the test results performed in Reference [
11]. Following such test results and their recommendation, the
Ccorrected parameter should be used when lower values of connection intervals are required, mainly from 7.5 to 25 ms since for longer time intervals, the battery will have enough time to recover. Thus,
Table 7 shows the updated values for the platforms configured as a PD and with a corrected battery capacity of 190 mAh, which was obtained as the mean value from the test results and curves obtained in Reference [
11].
Estimating the battery life for IoT applications depends on several other parameters apart from the peak current caused by the wake up and Rx and Tx operations, such as data packet size, MCU operations and peripherals required for a given application. In this case, the connection parameters of the BLE protocol, such as connection interval and slave latency, need to be fine-tuned to achieve the required performance when using low values of a connection interval. Additionally, when designing a low power application, the processing of information and the use of peripherals should be performed in a way that the current peak does not increase while performing the Rx and Tx operation.