Low Power Configuration: Difference between revisions
mNo edit summary |
mNo edit summary |
||
Line 1: | Line 1: | ||
[[KontroLIR - Arduino compatible IR remote control| | '''''[[KontroLIR - Arduino compatible IR remote control|> KontroLIR Home]]''''' | ||
We have designed the reference firmware to operate in an extremely low power mode when idle. | We have designed the reference firmware to operate in an extremely low power mode when idle. | ||
Line 23: | Line 23: | ||
[[KontroLIR - Arduino compatible IR remote control| | '''''[[KontroLIR - Arduino compatible IR remote control|> KontroLIR Home]]''''' |
Revision as of 04:22, 6 October 2019
We have designed the reference firmware to operate in an extremely low power mode when idle.
In Power_Down mode, the device typically uses less than 1uAmp of current, which means batteries could last up to several years. Depending on level of usage, we expect battery life to be from 1 to 2 years or more.
The firmware, also checks whether the device is being powered from a USBserial adapter(5V) or 2xAAA batteries. For 5V, the system runs at 16MHz and does not enter sleep mode. For battery operation, the system defaults to running at 8MHz and automatically goes to sleep after sending any outstanding IR signals.
On start-up, any unused peripherals are disabled to reduce power and when entering PWR_Down mode (sleep/standby) all other active peripherals are disabled. the sytem is awoken by a pin change interrupt on any of the remote's buttons.
In debug mode, the UART peripheral is re-enabled on wake-up as it is required to print debug information to serial.
Most users, should leave all of low power operations as is. Any future improvements will be made available for use.
Advanced users can try to implement even lower power operation and are welcome to contribute any improvements to the code base.
The external I2C EEPROM and IR receivers are typically powered via GPIO pins and are typically powered off when not in use. The user is responsible for powering these on when used.
The low power operations are generally implemented in the following files and functions:
- KIR-MISC-functions.ino => initPins
- KIR-MISC-functions.ino => initLowPowerSleep
- KIR-MISC-functions.ino => goToSleep