I've been told that many kinds of batteries work best if they are used until they are completely drained, and then recharged.
(Edit: The "memory effect myth" is quite widespread. Batteries work just as well if they are "topped up" every time.)
Right now I design devices the standard way: try to use the battery power as long as possible, and then when there is no power left it doesn't work at all.
If there was some simple way of implementing the following, I might use it from now on:
- Two independent batteries (or more)
- Once you start using one battery, continue to use it until it is
completely drainedreaches the manufacturer-recommended minimum voltage. - When the "in use" battery is completely dead, switch to using the next battery. Presumably you use some technique similar to the "Switch between 5V power supplies?" question.
- Once you switch to the last battery, go into some sort of low-power mode so it can still do the important things in "limp mode", but the user is notified to plug it into a charger as soon as possible.
- After plugging into the charger, go back to standard mode -- but if disconnected from the charger before the batteries are fully charged, go back to limp mode.
- (optional) When plugged into the charger, only charge the drained battery (or batteries) and keep them topped off; leave the one "in use" battery alone.
- (optional) keep track of precisely how much total energy could be extracted from each particular battery the most recent time it was fully drained. Use that number (perhaps modified using Peukert's law) to give extremely accurate estimates of future run-time.
Why don't all devices do this?
- cell phones: first battery: talk like crazy. last battery: only emergency calls.
- laptops: last battery: throttle back to a slow speed that is adequate for looking up static documents
- handheld GPS: last battery: try to reduce energy by updating the screen less often, dimming the backlight, etc.