User:Magick777/Opportunistic Power Saving
Contents |
Opportunistic Power Saving
This page aims to set forth a design for opportunistic power saving on the Nokia N900. Existing power-saver scripts and applets allow the user to toggle settings manually and much has been written about automation of certain events through DBUS. This page is an attempt to tie it all together.
CPU frequency scaling / underclocking
This is already documented on the Overclocking page and is my starting point for building an opportunistic power saving script based on phone lock / unlock. Credits and thanks to Fecn for getting us this far.
Maintain phone in GSM mode by default when on battery
Design goals
- Switch to GSM mode opportunistically when all seems to be quiet
- trigger on phone locked
- then check for blockers, most common first
- don't change anything if we're on charge and not saving battery
- don't change anything if we're on a GSM call
- don't change anything if we're in the desired radio mode
- don't change anything if we have blocker applications or connections
- blockers don't apply if we're on WiFi
- if we're on 3G then the known blockers should be
- location-daemon active (GPS in use)
- SIP / Skype / GTalk calls (VoIP in use)
- don't change anything if the user didn't want the phone to lock anyway
- cooling off period during which device unlock cancels radio switch
- perform any final sanity checks
- recheck that we're still not on a call after our cooling off period
- then make the switch to GSM mode
- Switch automatically to 3G or dual mode when something requires it
- no sense in triggering on device unlock, wait until needed
- check for blockers
- don't change anything if we're already in the target radio mode
- don't change anything if we're already using WiFi
- don't change anything if we're on a voice call
- trigger on events that may require a data connection i.e.
- launch new application (via hildon desktop)
- browser
- SIP client
- maps
- set presence to Online
- open Modest e-mail account
- access Internet radio stream
- launch new application (via hildon desktop)