I started this writeup after I was doing some reading about low-power arduino setups.
Previous designs are pretty inefficient - lets take a look at how inefficient, why and what we can do to design a better power system in the future. First we need to take a look at some of the constraints that we're dealing with:
The design choices are different for each hardware platform - this is not a critique on the designers / people
Apple
Cranberry
Dragonfruit
Guava?
The assumption from before: we needed to either run things at 3.3v or 5v. Turns out we could run things at 2.8v - if we take a look at all of the modules, the one with the highest minimum voltage is the XBee at 2.8v. The atmega328p can technically run at a lower voltage.
Need to figure out this situation: if we run the mcu at 2.8v, can we still use the regular usb-serial converter? I think the logic lines will be fine.
XBee power states (sleep mode)
Microcontroller sleep modes
Sensors - how much power do they consume?
How low can we go? (Theoretical)
Using the low power library, here is what the loop function looks like:
sleep_counter++;
LowPower.idle(SLEEP_4S, ADC_OFF, TIMER2_OFF, TIMER1_OFF, TIMER0_OFF,
SPI_OFF, USART0_OFF, TWI_OFF);
if(sleep_counter % 15 == 0){
board.sample(&board);
}