IBAM, the Intelligent Battery Monitor

IBAM is an advanced battery monitor for laptops, which uses statistical and adaptive linear methods to provide accurate estimations of minutes of battery left or of the time needed until full recharge. This software relies on either APM, ACPI, SYSFS or PMU kernel support to access the battery status.

Download

IBAM is hosted at Sourceforge. This is the IBAM project page at sourceforge, and new versions will be announced at the project page of IBAM at freshmeat.

You may download the current version 0.5.2 here at

ibam-0.5.2.tar.gz,

read the current README file

or the CHANGES.

Motivation

Most battery monitors rely on the data provided by the underlying power management system, which in most cases is quite inaccurate for many reasons: Batteries are non-linear, the capacities are wearing off, and among others the actual power usage is highly individual. As rechargable batteries expose a steep voltage drop at low capacity remaining, it is quite common and very annoying, that the reported time remaining is far larger than the actual time that is left to save your data.

Solution

IBAM solves this problem by creating a battery and charge profile (as seen on the right for my old laptop) from which it can compute the actual times remaining. The red graph represents the battery cycle (where the laptop is running on battery), the x-axis represents the bios-minutes (now bios-percentage), the y-axis the actual average lengths of that minute (percentage) in seconds. As you can see the bios minute was about 50 seconds long from 200 minutes to 60 minutes, and only 10 seconds long from 40 minutes to 20 minutes. No wonder I was surprised that the battery was empty so soon... ;)

The green graph shows the charge cycle, which seems to be a bit more useful, still the same technique can be used to give the user an idea how long the charge process will need.

As soon you created initial profiles you can get the similar graphs for your computer by using the option "--plot".

Of course the computer will consume more energy on a high load and IBAM does take this into account by determining a linear adaptive method for the current cycle.

Usage

Some example output (alias screenshots... ;) from the command line interface:

Battery is fully charged and power cable attached: $ ./ibam Total battery time: 2:11:33 Total charge time: 1:36:13 $

Laptop is running on batteries: $ ./ibam Battery time left: 1:10:25 Adapted battery time left: 1:15:44 $

Charging batteries: $ ./ibam Charge time left: 0:30:17 Adapted charge time left: 0:31:30 $

Available options: $ ./ibam --help IBAM-0.5, the Intelligent Battery Monitor (C) 2001-2008 Sebastian Ritterbusch Usage: ibam [options] Options: -h, --help displays this message -v, --version displays software version -b, --bios show bios apm guesses -s, --seconds displays times in seconds -c, --correctseconds displays changes in seconds -r, --readonly no files will be updated -a, --all show ALL information --battery show battery time --batteryadaptive show adaptive battery time --batterybios show bios battery time guess --percentbattery show battery percentage --percentbios show bios percentage --charge show charge time --chargeadaptive show adaptive charge time --percentcharge show charge percentage --totalbattery show total battery time --totalbatteryadaptive show adaptive total battery --totalcharge show total charge time --totalchargeadaptive show adaptive total charge --hardlowlimit[=lim] show user defined hard lower percentage limit [and set it to value <lim> or disable <0> it] --softlowlimit[=lim] show automatic lower percentage limit [and lower it to value <lim> or diable <0> it] --plot[=profiles] use gnuplot to plot battery and charge graphs and plot the last <profiles> additional profiles --plotderivations[=profiles] same as above plus standard derivations --import import V0.1 data from current directory --profile enable additional yet unused profiling --noprofile disable additional profiling --credits to everyone contributing to ibam Total battery time: 2:11:33 Total charge time: 1:36:13 $

Please see the current README file for detailed usage information.

Contributions

Comments, improvements and ideas for ibam are very welcome, please keep me informed about articles mentioning ibam and you are strongly invited to use ibam in on of the many (GPLed) graphical battery monitor frontends, such as PBButtons for various Apple Notebooks.

Also creation and maintance of packages for various linux distributions are very appreciated, such as for Debian, Gentoo and Ubuntu. Please help me keeping this list up to date.

Sebastian Ritterbusch, 25.07.2008