Funny battery values (nx6325)
Kevin Oberman
oberman at es.net
Wed Mar 17 15:43:30 UTC 2010
> Date: Thu, 18 Mar 2010 01:05:47 +1100 (EST)
> From: Ian Smith <smithi at nimnet.asn.au>
> Sender: owner-freebsd-acpi at freebsd.org
>
> On Wed, 17 Mar 2010, Joerg Wunsch wrote:
> > As Peter Jeremy wrote:
> >
> > > >Design capacity: 279 mAh
> > > >Last full capacity: 279 mAh
> >
> > > Is this consistent or does it vary from boot to boot or if you
> > > disconnect and reconnect the battery?
>
> Or try another battery?
>
> > Currently, my wife is on a business trip with that machine.
> > Hopefully, I'll also get a statement about how long it lasts on
> > battery once she is back ;-), and I'll re-check those values then.
> >
> > > >The battery is declared as 55 Wh, which would correspond to 5.1 Ah
> > > >(probably 3 x 2 x 18650 cells).
> > >
> > > But is also over 3 years old. Almost everything you do to LiION
> > > batteries makes their capacity drop.
>
> Except keeping spares in the fridge, but not the freezer.
>
> > That's right, but it wouldn't be supposed to affect the "Design
> > capacity", would it? ;)
>
> It wouldn't be supposed to :) caveat: I've only 5.5 sources to hand.
> acpiconf -i does no calculations, just prints what's given by
>
> if (ioctl(acpifd, ACPIIO_CMBAT_GET_BIF, &battio) == -1)
> err(EX_IOERR, "get battery info (%d) failed", num);
> printf("Battery %d information\n", num);
> if (battio.bif.units == 0)
> pwr_units = "mWh";
> else
> pwr_units = "mAh";
>
> etc, also answering mWh vs mAh display question. Tracing back through
> acpi_cmbat_get_total_battinfo in acpi_cmbat.c indicates that calculaing
> remaining time does uses last full capacity, but from there back through
> acpi_cmbat_get_bst and acpi_cmbat_get_bif it's all just retrieval, from
> acpi packages of _BST and _BIF .. presumably updated somehow via the EC,
> but I'm in way over my head already ..
>
> > Can anybody tell where these values actually come from? I could
> > perhaps even build a small microcontroller gadget, in order to query
> > the battery for its values offline (using I²C aka SMbus) in order to
> > see where the mistake might be.
>
> Most of it must be stored in the in-battery chip, but I don't know where
> specs may be, or even whether they all use same protocols. Sounds like
> some fun, snooping EC <-> battery chatter and reverse engineering that -
> assuming it occurs on an accessible smbus? - but maybe there's something
> in the ASL that might be bent? Peter's factor of 10 sounds plausible.
>
> I'm interested in this because my T23 battery is just about dead, only
> sometimes taking a charge now - that or the charging circuit is dodgy,
> which I'll find out when the new battery arrives.
>
> cheers, Ian
FWIW, IBM/Lenovo recommend that, should the battery capacity stuff get
messed up, you FULLY discharge the battery and then re-charge. They say
to turn off all automatic shutdowns so the battery will completely
drain. (This does mean an fsck on re-boot and I suggest that you do a
sync(8) when it gets close and, of course, don't have anything open.
This is claimed to re-initialize the values stored in the battery and I
found this worked on a battery in my old 600E. Mine did not have a weird
"Design Capacity" value, though.
--
R. Kevin Oberman, Network Engineer
Energy Sciences Network (ESnet)
Ernest O. Lawrence Berkeley National Laboratory (Berkeley Lab)
E-mail: oberman at es.net Phone: +1 510 486-8634
Key fingerprint:059B 2DDF 031C 9BA3 14A4 EADA 927D EBB3 987B 3751
More information about the freebsd-acpi
mailing list