Interesting side effect of low power sleep

This is something I noticed recently. I was testing a WiSense sensor node operating as an RFD (reduced function device). It was sending sensor data to the coordinator/gateway every 5 seconds. The node was powered by the on board 3 V coin cell. I wanted to restart the RFD so I used the slide switch on the node to power cycle the node. It would have taken me less than 3 seconds to switch off and then switch on the power supply. I was expecting the node to restart  and reconnect to the coordinator node. Surprisingly the node did not restart. It just woke after a few seconds, sent sensor data to the coordinator, received an ack message and went back to sleep.  I realized that the bypass capacitor network on the node (used to filter out noise) was the source of the energy which kept the node powered while the power switch was in the off position.  When the switch was put into the off position,  the node was already in sleep mode and its power consumption was less than 5 micro-amps.  The bypass capacitor network was able to supply this current while the coin battery was disconnected. Next I kept the coin battery disconnected for more than 5 seconds.  This time the bypass capacitor network could not supply the active mode current required by the node when it woke up. The supply voltage (from the caps) collapsed and the node died (without power). When I reconnected the coin battery, the node restarted and reconnected to the coordinator.

WiSense nodes have one or more bypass capacitors near each IC (the microcontroller, the radio chip , the eeprom and each of the sensors). There are three capacitors at the entry point of each board (microcontroller board and the RF host / sensor board).  The MSP430 is bypassed by two 10 uF capacitors (one each for the digital and analog supply pins). There is a 4.7 uF cap at the point where the power supply enters the micro-controller board. . There is 4.7 uF capacitor on the RF host/sensor board and a 1 uF capacitor on the radio board. All these capacitors are in parallel so the total capacitance adds up. The total capacitance on the sensor node across all board comes to around 30.4 uF (ignoring the sub 1 uF capacitors).


The energy stored in a capacitor is given by the formula – (C * V * V)/2  where C is the capacitance and V is the voltage across the capacitor. A 30.4 uF cap nwk with 3 volts across it’s terminals stores (30.4 * (10 ^ -6) * 3 * 3)/2  ->   136.8 micro-joules. The usable energy of a capacitor is still less. The lowest allowed voltage for a WiSense node in sleep mode is 1.8 volts (required by the MSP430).  The usable energy is then  30.4 * (10 ^ -6)(3*3 – 1.8*1.8)/2  -> 87.6 micro-joules.

WiSense RFD power consumption in sleep mode is 3 V * 5 uA -> 15 uWatts.

The bypass capacitor network should be able to keep the node up for  87.552 / 15 -> around 6 seconds. It could be longer since the RFD’s current consumption will drop as the supply voltage (from the capacitor network) drops.

Posted on November 29, 2014, in Uncategorized. Bookmark the permalink. 4 Comments.

  1. What if RFD is sleeping and I press the reset button? Will it reset immediately?

  2. Good question. If you press the reset button, it will reset the MSP430 immediately and the node will rejoin the network.

  3. Using any measurement instrument (say, oscilloscope), which pin can I monitor to know when the system enters or leaves sleep mode?

    • You can use any free GPIO pin for this purpose. Add code to set the pin high when node is not sleeping. Just before going to sleep (in system.c), set pin o/p to low. When node wakes up, set pin o/p to high (again in system.c). You can then use a multi-meter/scope to monitor the transitions.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: