Module Current Consumption

Low power wireless devices (including Zigbee) have two types of power consumption: Only Zigbee End Devices may sleep; Routers and Coordinators must be listening all the time since they're part of the mesh network.
 * Active: waking up, transmitting, and going back to sleep.
 * Sleep: inbetween transmitting when the device is not communicating.

Active current consumption is generally on the magnitude of tens of milliamperes up to 100mA if using a module with a range extender. Sleep current consumption is several orders of magnitude left, usually in the tens of microamperes. Measuring both of these is challenging. Using the same test rig for both is difficult due to the great difference between the two modes.

For active current consumption, the best way is to attach a 1 ohm, 1% resistor across the feed to the module and measure voltage drop on an oscilloscope. This is fairly easy to do and in this manner you can see the various stages of operation.

Measuring sleep current consumption is more difficult, yet is very important. For long lifetime products like battery powered sensors, active current (whilst transmitting) is generally a very small part of the total current consumption. Usually the sleep current consumption dominates battery life calculations.

To measure sleep current, you'll need to follow a procedure such as this.

Test Setup
To measure sleep current consumption, we performed a test. Setup information: defaultConfiguration.panId = ANY_PAN; add: defaultConfiguration.endDevicePollRate = 0; so that we can measure sleep current.
 * Hardware: Anaren BoosterPack, p/n A2530E24A91-LPD, rev. A
 * Modifications: cut the trace to the light sensor VCC; removed R3
 * Firmware: Basic Comms - End Device
 * Modifications: in main, after
 * Measurement Equipment: HP 34401A and Extech MM570 DMMs in ammeter mode
 * Configuration: manual setting of DC and range; 6.5 digit setting on HP 34401A
 * Power supply: two AA batteries (nominal voltage = 2.67V) for low noise

Procedure
The ammeter was connected across the VCC supply to the BoosterPack at J3. First, let the module initialize. This will consume more current as the module is in active mode. Then once it was configured, enabled the ammeter into microamp mode. Verified that the Range Extender control signals PAEN and EN were GND as they should be in sleep. To minimize the effect of measurement noise on the current measurements we configured the DMM to average the readings over a minute or two.

Our first measured current of entire BoosterPack board is about 470uA whilst still attached to the LaunchPad. Knowing that the theoretical current consumption of the module is much lower (10uA or less) we then investigated to see what was consuming excess current. There are two peripherals on this board in addition to the module: the TI TMP121 temperature sensor and Osram SFH5711 ambient light sensor. Current consumption of these two: Other sources of parasitic current draw include:
 * Temperature Sensor: Consumes 20uA of current, or more in active mode.
 * Light Sensor: Consumes 410uA at 0 lux; 460uA at 1000 lux.
 * MSP430 inputs: we did not disconnect the Boosterpack from the MSP430 since we wanted this to be a "real" test of the module in operation
 * Board crud: any small debris can cause a parasitic resistance. Remember, one megOhm is 3.3uA of parasitic current.

Since the light sensor was the largest potential current draw we cut the trace leading to the current sensor. Current was then an order of magnitude lower, at roughly 40uA, including the loading of the Launchpad board, SPI temperature sensor, and other parasitic current paths described above.

Since the temperature sensor is the next highest load, at approximately 20uA, we removed it and repeated the tests. Sleep current consumption was now measured at 17uA which is much closer to the theoretical 5uA. Obtaining a more exact measurement would require additional methods, as well as a really clean board.

Using the onboard current monitor
The Zigbee BoosterPack incorporates a TI INA216A2 current sense amplifier. It amplifies by 50x the voltage drop across the 0.2 Ohm current shunt on the board. This can be used to measure the current consumed by the module or board, consult the BoosterPack documentation for more information. This is convenient for measuring real-time active current consumption but is not recommended for sleep current consumption due to the very small voltages involved. To measure module active current consumption you will need to configure the BoosterPack's jumpers - JP1 across pins 1&C; JP2 removed. Attach a scope probe to pin 1 of JP2 to view the output of the current sense amplifier.

During a periodic transmit (e.g. with Basic Comms - Router) you will see on the scope a pulse on a scope of 1.0V for approx. 1.75mSec. This corresponds to a 100mA current consumption (mostly due to the Range Extender IC).