08-17-2011 10:14 AM
I bought a T520 (4240) a few months ago and, like most people around here had the same issues with pulsing fans and, on applying BIOS 1.28, CPU throttling issues. I'm not sure if the latter one is fixed properly yet, but I also have a problem with the battery charging thresholds that has me stumped.
I have the 55++ and 27++ 9-cell main and "slice" batteries. For a while I let them charge up to 100% whenever connected to AC, but then I read that a 100% charge level is not recommended for day-to-day operation.
I use Fedora 15 Linux 99.9% of the time on my T520. I wanted to set the battery charge thresholds to avoid the 100% charge level, but the "tp_smapi" Linux driver doesn't work for the T520 (yet). I read somewhere that if I were to set the charge thresholds with the Lenovo Power Manager in Windows 7, that they would work in Linux as long as the laptop was not completely powered down when switching from Windows to Linux (i.e., use a warm boot). Well, it worked. In fact it worked really well: I could even power down and remove the batteries and something, somewhere would still remember that I wanted to start charging the slice battery when it dropped below 35% and stop charging it at 80%, even when running Fedora 15.
Having used the machine for a few weeks, I found that I used it on battery power a lot and liked to "top up" the batteries over night. The 35/80 thresholds didn't really suit my working pattern. So, back in the Power Manageer in Windows, I changed the battery thresholds from 35/80 to 50/88 for both batteries (55++ and 27++). On booting back to Linux, I noted that the main battery would respect the new levels, but he slice battery was still stuck on 35/80. Back in Windows, I tried changing the levels in different ways, but the slice battery refused to charge to more than 80%, even under Windows, no matter what I did. It seems that my first change from the default (is it 96/100?) to 35/80 has gotten stuck somewhere and I cannot change it again.
I even notice in the Power Manager that the slice battery constantly toggles between charging and not charging when under AC power if I set the threshold to 85/90. Because the 80% level where the battery is stuck is lower than 85% (my new "start" threshold), charging kicks in, but it immediately stops again, as it won't go over 80%, then, of course, it starts again and stops again, and so on.
How do I fully reset the charge thresholds on the slice battery so I can exceed 80% charge?
08-20-2011 05:38 AM - edited 08-20-2011 05:47 AM
A quick update on this: today it seems that the primary battery has also decided that 80% is enough, even though the threshold I set was 88%. This is under Linux, where I believe the embedded controller (EC) enforces the thresholds written to it by Power Manager under Windows.
The third post on this page about work on a driver to set battery charge thresholds on Linux mentions that the EC might ignore writes to the battery charge threshold registers if bit 7 (somewhere) is not set. Is Power Manager writing the information to the EC incorrectly? Is that why my charge thresholds appear to be stuck? It worked the first time, but I've updated Power Manager a few times since then and now I cannot change the thresholds.
08-24-2011 07:28 AM
Another quick update on that last quick update.
The charging pattern appears to be as follows for thresholds set to 50/88 on both batteries:
At the time of my last update, it was still on step 2, so the primary battery threshold was not actually stuck, it was just doing it in two passes (for whatever reason). Once the slice battery was charged, the computer went back and completed the charging of the primary battery up to the threshhold value (and that was under Linux with everything depends on the EC).
10-05-2011 04:47 AM
I upgraded to the latest PowerManager (3.62?) yesterday and my thresholds are still stuck. It looks like my using the thresholds as recommended to avoid the battery deteriorating to only 80% capacity after a couple of years has resulted in the same undersirable outcome after only a couple of months.
Has anyone had similar problems? Is there any T520 BIOS update out there that might fix this? (I have BIOS 1.28.)
12-13-2011 06:24 AM
My X1 has this exact same same problem when I started to use the slice battery (39+). I have set both battery 1 and 2 (built-in and slice batteries) to stop charging at 90%.
1. First the built-in battery gets charged to 80%, then stops.
2. Then the slice battery gets charged to 80%, then stops.
3. Third it seems to jump back onto the built-in battery and charge it up to 90%. (this is the threshold I set)
4. Then strangely that's it.. lolz..
The slice battery does not get charged to the 90% threshold that I set. The internal battery ends up at 90%, the slice battery ends up at 80% and the overall battery level reads 85%.
Note: I tested the batteries by setting both to fully charge to 100%. This full charge setting seemed to work fine. Built-in battery charges to 80%, then slice battery to 80%, then built-in battery finishes off charging to 100%, then finally the slice battery also reaches 100%. Overall charge reads 100%.
All my stuff is up to date. (Driver, BIOS, PwrManager, Battery FW, etc.)
I'm starting to think maybe it's something to do with clashes between Windows battery meter and the Lenovo software.
03-20-2012 08:12 AM
I had kind of given up on this, but thank you KooMaster for your confirmation that I am not alone with this issue. I don't think this is a problem with the Lenovo or Windows software, as this happens to me when running Linux without either of those. My guess is that the problem is in the embedded controller (EC) firmware. It is responsible for charging the batteries and enforcing the charging thresholds (that's why they still work even when the machine is turned off).
It probably makes sense to charge each battery to 80% first, as it likely only takes half of the overall charge time to get to that level (the last 20% taking as long again). That way, we get both batteries to a useful charge level as fast as possible. However, based on your observations, it seems that someone in Lenovo forgot to tell the EC to check that the main battery has reached its upper charge threshold, not that it has reached 100%, before topping the slice battery up to its upper charging threshold.
Can someone in Lenovo please comment on this issue, as I raised it over seven months ago now and I haven't heard a single word from any of you about it? "KooMaster" has confirmed the problem on a different model with different batteries, so it seems highly likely that a quick check of the (shared?) EC firmware code and a patch will resolve this quite quickly.
(I updated my BIOS and EC firmware today and it made no difference to my problem.)