How long will my ZigBee-enabled EM35x-based product operate on a battery?
The short answer is that it depends on a number of factors: battery selection, how frequently you check in with the network, and what else your device does beyond the ZigBee functionality.
Before we get into the details on how to compute battery life, we must first think back to the days of circuit theory 101 and refresh our understanding of charge and charge consumption. Most batteries are specified in the amount of charge (not power) that they can deliver over time. A mAh is really a measure of the total number of electrons the battery will push out before its operating voltage drops below some threshold defined by the battery manufacturer.
For convenience, there are two units of measure of charge that we use when estimating battery life: the mAh (for specifying battery capacity) and the Coulomb or C (for measuring device events). One Coulomb is one ampere for one second. Because our radios typically consume current in the milliamp range and most radio events are measured in milliseconds, we use the measure of micro-Coulomb where 1 uC = 1 mA * 1 mS. One useful piece of trivia is that there are 3,600,000 uC in one mAh.
There are three categories of events: periodic radio events, periodic non-radio events, and steady state events. An example of a periodic radio event would be a data poll event that occurs every 5 seconds (typical for door lock applications). An example of a non-radio event would be a door lock activation event where the motor runs for a short period of time. And an example of a steady state events would be the sleep current of our EM35x chip or any pull up resistors that are usually biased, such as a pull-up resistor for a sensor.
Now that we have defined the useful concepts for measuring current consumption, we can talk about how to translate this into overall battery life. This requires the developer to list all of the events that their device will perform, how frequently these events will occur, and use this information to compute an average current consumption. Divide the average current consumption into the battery capacity and you can compute the battery life of the device.
Silicon Labs has created a helpful spreadsheet for performing this computation. It takes as inputs the battery capacity (specified in mAh), the charge consumed from the different events of the device (specified in uC) and it will compute the estimated battery life (in years). The spreadsheet also has a simple model for the self-discharge of the battery based on a linear drop in capacity over a certain number of years (typically 10).
Silicon Labs also has a good application note, AN713, that details how to measure the charge consumption for an event. Specifically, it details methods for measuring the sleep current for the device as well as the details for measuring the current usage for transmission events.
For very precise measurements of both the sleep current and real time current consumption of individual events, we recommend using the Agilent N6705B with the N6781A module supply. This equipment can be difficult to obtain outside of the US. For those situations, we recommend using the Agilent 34411A. It can make similar measurements to the N6705B, but it is a little more difficult to work with. The key difference is that the N6705B uses an auto-ranging allowing for precise measurements of both sleep current (in < 1 uA range) and active current (in 10-100 mA range). For the 34411A, you need to manually set the measurement range. It will not correctly report sleep current if you set it up for active current ranges.
Example 1: contact sensor
For a typical contact sensor, there are a number of radio events. Here are some reasonable assumptions for a door contact sensor:
Door contact sensors usually use a cheap magnetic reed switch that will be closed in the presence of a magnetic field. So while there are no periodic non-radio events (such as there would be for a door lock activation), there is a steady state event: the current draw through the pull up resistor. Here is the list of steady-state events:
For our door/window sensor, we can use a CR2 battery, with a capacity of 600 mAh, or we can use a CR2032 battery with a capacity of 240 mAh. However, the maximum current draw of a CR2032 is about 10 mA, and our radio can consume about 20 mA when transmitting as a sleepy end device (because we sleep the microprocessor when we transmit as a sleepy end device), we need to de-rate the CR2032 battery to 150 mAh.
If we plug this into our spreadsheet, we compute the battery life of an EM357 based contact sensor to be about 2.4 years with a CR2032 battery. If we use a CR2 battery, this will improve the battery life to about 5.5 years.