Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
user:kluong:low_power_design_considerations [2020/04/28 03:19] kluong |
user:kluong:low_power_design_considerations [2021/09/19 21:59] (current) |
||
---|---|---|---|
Line 3: | Line 3: | ||
**Low power design considerations** | **Low power design considerations** | ||
- | * Previous designs are pretty inefficient - lets take a look at why (the design choices are different for each hardware platform) | + | 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: | ||
+ | * Rooftop; no place to plug in | ||
+ | * Hypothetical design consideration: raspberry pi - is it possible? | ||
+ | * About 1A / 5V -> 5W | ||
+ | * 6W solar panel charger not enough to charge during the day | ||
+ | * 10W solar panel might be enough: https://www.adafruit.com/product/2747 | ||
+ | * Cost consideration | ||
+ | * Driving down power consumption means cheaper solar panel and cheaper battery | ||
+ | * The design choices are different for each hardware platform - this is not a critique on the designers / people | ||
* Apple | * Apple | ||
* Cranberry | * Cranberry | ||
Line 10: | Line 20: | ||
* 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. | * 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. | * 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. | ||
- | * How low can we go? | + | * XBee power states (sleep mode) |
+ | * Microcontroller sleep modes | ||
+ | * Sensors - how much power do they consume? | ||
+ | * How low can we go? (Theoretical) | ||
+ | |||
+ | Footnotes: | ||
+ | * | ||
Links: | Links: | ||
+ | |||
+ | * http://www.home-automation-community.com/arduino-low-power-how-to-run-atmega328p-for-a-year-on-coin-cell-battery/ | ||
+ | * https://lowpowerlab.com/shop/index.php?_route_=Moteino/moteino-r4 | ||
+ | * https://www.rocketscream.com/blog/product/mini-ultra-8-mhz-arduino-compatible/ | ||
+ | * https://learn.sparkfun.com/tutorials/reducing-arduino-power-consumption/all | ||
+ | |||
+ | |||
+ | |||
+ | ====== Example main ====== | ||
+ | |||
+ | Using the low power library, here is what the loop function looks like: | ||
+ | |||
+ | <code> | ||
+ | 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); | ||
+ | } | ||
+ | </code> | ||