===== Overview ===== Power consumption reduction efforts previously focused on sleeping the microcontroller. However, for the weatherboxes that do not use the Arduino Uno, the XBee power consumption is magnitudes larger than the power consumption of all other components on the board. So, efforts should focus on sleeping the XBee. This tutorial (http://www.fiz-ix.com/2012/11/low-power-xbee-sleep-mode-with-arduino-and-pin-hibernation/) outlines a basic method for using an external device, in this case, the microcontroller, to sleep the XBee. However, a potential disadvantage of this approach is that it may complicate two way programming efforts which require the XBee to always be on. ===== Power Saving Algorithm ===== Build based on generation of weatherbox Initialize board struct Set timer configuration values Loop Reset timer flag to 0 Increment board cycle count Sample Heartbeat Data Wake up XBee Transmit Heartbeat Packet Sample Sensor Data Transmit Sensor Packet Sleep XBee Sleep microcontroller for 1 second Wake from sleep End Loop ISR (When timer interrupts every 1 second) Set timer flag to 1