Till now, in this article series, we discussed challenges while operating IoT devices on primary batteries, BLE generic access profile roles, BLE device state in each of these roles and how to optimize power in advertising, scanning and initiating states. In this part, we will talk about power optimization in connection state.
Power optimization in connection state
Vikas Vadlamudi, Sr. Applications Engineer, Cypress SemiconductorDuring connection state, power consumption depends on – connection interval, connection event length, amount of data that gets exchanged, transmit power and receive current.
Similar to advertising interval discussed in advertising state, a shorter connection interval consumes high current but reduces the data transfer latency after the data is available. Connection interval shall be tuned based on tradeoff between power consumption versus required data transfer latency by application.
In peripheral devices, current consumption can be greatly reduced in connection state by using non-zero slave latency. Slave latency is the mechanism that allows a slave (Peripheral) device not to transmit for several connection intervals and still maintain the connection. Or, it can be said that slave latency allows peripheral device to spend more time in standby stand and reduces the time that device needs to spend in connection state. Slave latency ensures a lower power consumption while maintaining low data latency compared to longer connection intervals. So, an application that operates on a primary battery, produces data at non-deterministic times and requires to transmit this data to a central device with minimum latency, a high slave latency with small connection interval will help achieving required system performance and also keep power consumption low. Let’s take an example to understand it better.
Figure 1 shows the radio activity in a central and a peripheral with 20 ms connection interval and with slave latency set to zero. As can be seen in the figure, after every 20 ms peripheral needs to wake up and transmits a data packet or an empty packet to maintain the connection.
Figure 2 shows the radio activity in a central and a peripheral with 80 ms connection interval. As it can be seen, device needs to wake up less frequently to transmit and receive. However, it increases the data latency. As in this case, data was available at 110 ms. However, it can be send to central only at 160 ms (70 ms later).
Figure 3 shows the radio activity in a central and a peripheral with 20 ms connection interval and a slave latency of three. In this case, power consumption on peripheral side will be almost same as in case of 80 ms connection interval without slave latency. But, data transmission won’t be delayed for long unlike 80 ms connection interval without any slave latency. With slave latency of three, data latency will be same as in case 20 ms connection interval as shown in the figure with peripheral’s power consumption similar to 80 ms connection interval. One point to note is that slave latency does not save any power in the central device and central transmits packet during every connection interval and then listens for every TX packet from peripheral irrespective of whether peripheral has transmitted or not.
Now coming to amount of data that needs to be exchanged, there are various methods that can be helpful in reducing power based on the amount of data that needs to be exchanged.
Ideally, if devices have large data to be sent, devices can exchange the data in the entire connection event (maximum value = connection interval – 150 microsecond) in a connection interval. As capacity of coin cell batteries go down with continuous draw of high current, use of entire connection interval to transmit and receive can drastically reduce battery capacity. To avoid high current drain continuously, it is better to limit the number of packets being transmitted in a connection interval by reducing the connection event length (CE_LENGTH) to a smaller value compared to its maximum which helps to use the battery capacity efficiently. Based on the connection event length, even if the device has more data to send, it sends only limited number of packets that can fit in the configured event value. Central and peripheral can have different connection event length and the minimum of the two is used to decide the number of packets in the connection interval.
In any wireless technology, data throughput is much lesser than the data rate. Reason behind that is protocol overhead. So, is the case with Bluetooth Low Energy. However, BLE v4.2 offers significant improvement over older version by increasing payload from 27 bytes to 251 bytes at Link Layer. Thus, it takes lesser number of packets to transmit same amount of data that saves significant amount of power. Considering it, any application that needs more than 27 bytes (at Link Layer) to be sent, BLE v4.2 shall be considered.
Applications that need security for GATT based implementations but send data less frequently, it is better to establish connection when required and exchange the data using signed writes. This helps to avoid the link encryption which takes more time and consumes extra current. Signed write adds the extra 12 bytes of Authentication Signature so the maximum amount of raw data that can be sent from GATT layer is fifteen bytes less than ATT MTU. For encrypted messages, there would be additional four bytes of MIC added to the link layer packet. So, one should be aware that whenever the number of bytes are less and have to be send data very frequently, singed write may consume more power due to 12 extra bytes compared to 4 bytes of MIC in encrypted links.
Transmit power shall be selected based on actual required range as discussed in advertising state. A mechanism can be added where device adapts transmit power based on the RSSI measured by the other device.
Most BLE devices have high-gain amplifier/low-noise amplifier for receiver to increase sensitivity. Some of these device also allow to amplifier to be manually turned on, or off. If another device is placed close, it is good to switch-off the amplifier that can save several mA of current.
Power optimization in standby state
Almost every BLE device spends most time in standby state and hence even minor change in power consumption in this state impacts average power consumption significantly. In this state, radio neither receives nor transmits and power consumption is a result of leakage and various system resources like clocks and regulators. So, power optimization technique for this state is to use device’s lowest power mode and switch off all resources that are not needed. Some of these will be discussed in great detail in next part of the article.
In next installment of this series, we will talk about other system resources that impact power consumption in IoT applications and how to optimize them for power.
Previous parts of the story can be found here: