Shut off/ lower power for XBeeshield

Thanks to the help here last week, I managed to put my Arduino to sleep in order to save energy. However, there is also a XBeeshield attached on top. How to shut the XBee? And how about quickly restorig connection at the (short) intervals where he Arduino is awake?

I guess the XBee gets powered via one of the 6 ICSP pins. Is it possible to switch the power off, or jump into a low-power mode? Furthermore, there is anohter GND and 5V pin on the shield, called JP7 and 8 in the schematics. Maybe I could do something with them?

Last but not least, if I manage to shut down the XBee, I suppose it takes a while again before it establish a connection once the Arduino wakes up for a transmission. Ifso, that would mean I'll need some delays before sending and falling asleep again?


Rather than powering off the XBee, you should look at putting it to sleep, too. It will wake up faster than it will power up.

There are plenty of details on the digi site:

Ok... I'm looking at some sleep configurations in the XBee manual. If I understand properly, I can use serial AT commands from the Arduino, and/or X-CTU to configure a couple of values that define the sleep/wake time and some other options.

However, before putting it to eternal sleep:

  • I assume the settings are permanent until another command is given. Meaning the sleep interval will still be used afer powering off/on the XBee.

  • I'm confused how to wake it up. I could define an interval, but since the Arduino board will be sleeping as well, I need to be sure they are awake at the same time. Basically the XBee can always sleep, except when the Arduino wakes up (whic is every 5 minutes in this particular case).

The manual tells about Sleep Modus 5:
"SM5 is a slight variation of SM4 that allows the module to be woken prematurely by asserting the Sleep_RQ pin (pin 9)"
When toggling that pin, the XBee will be awake. But how to toggle that pin? The XBee is on top of a shield, and I only know how to send Serial commands to it... I'm a beginner with this stuff!


The XBee is on top of a shield

Which shield? Are all the XBee pins broken out? Can you attach a wire from the breakout pad (if there is one) to a digital pin on the Arduino? If so, you just set the Arduino's digital pin HIGH momentarily, and the XBee wakes up.



The XBee is placed onto the shield, the shield itself is using the six ICSP pins from the Arduino board. I could be wrong, but by default you can't place wires. I guess all communication goes through ICSP, so maybe it provides an option to switch that wake-up pin as well. But I have no clue how...


If you look at the schematic for the shield, you will see that the DIN and DOUT pins of the XBee are connected to pins 0 and 1 of the Arduino. There are breakout pads (filled) for all the XBee pins, so you could heat any of the pads, and add a wire. Run a wire from XBee pin 9 to an uncovered digital pin, and you'll be able to wake up the sleeping XBee.

I still have to learn how to read those schematics, but at least its possible to give a signal. Have to figure out how exactly, but that would be a good schematics-reading lesson. Thanks!

If you can put the XBee into hibernate mode you can save a significant amount
of power (versus cyclic sleep). Unless you running low duty cycles it may
not matter.

Also running the XBee at 3V will reduce the hibernate current quite a bit.
I did a ZigBee writeup the contains some XBee power estimates --
see Loading...

I make an Arduino compatible board that contains an XBee.
All of the connections between the uC and XBee are jumpered.
There is a second voltage regulator on board that could be set
to 3V. The schematic is in the datasheet -- see Loading...

(* jcl *)