dev builds
themes manual
device status forums
mailing lists
IRC bugs
dev guide

Rockbox mail archive

Subject: Re: AW: AW: AW: Bug: Battery Charging with low voltage

Re: AW: AW: AW: Bug: Battery Charging with low voltage

From: Jerry Van Baren <>
Date: Thu, 3 Feb 2005 15:51:43 -0500

Linus Nielsen Feltzing wrote:
> Matthias Klumpp wrote:


>> That way it was continuing chargeing, so I found it in this state (I was
>> never seeing exactly the time it went to the browser).
>> What do you think ?
> Well, the batteries are obviously not charged enough. Or they are worn
> out. I guess your usage pattern, where you charge them with a very low
> voltage for only 30 minutes at a time, isn't very good for the batteries.


>> I'm using 2000mAh batteries.
>> Do you think it's worth to repeat the test of your SW with some lower
>> capacity batteries ?


>> As increasing the charger voltage will not solve my problem (as m.a.),
>> any
>> ideas what could be done ?
> Not really, other than starting the charging immediately instead of
> waiting for a stable battery voltage reading.
> Linus
> _______________________________________________

Throwing in my free advice (and worth almost as much)...

Looking at powermgmt.c I picked out the following two snippets of code.
  The first snippet shows that if the deltaV charge completion isn't
satisfied, all charging (trickle AND top-off) is disabled, leaving the
recorder running strictly on batteries (i.e. DISCHARGING, even though it
is plugged in). In my limited experience, the deltaV detection is
fairly tricky: the amount of voltage that the charge voltage declines by
is quite small (and may be masked by other things happening like disk
accesses). IMLE, deltaV detection doesn't happen quite often. I don't
know how battery age or starting charge state conditions affect the
deltaV, the pessimist in me says "porrly".

     if (charged_time > charge_max_time_now) {
         DEBUGF("power: charged_time > charge_max_time_now, "
         /* have charged too long and deltaV detection did not
            work! */
         powermgmt_last_cycle_level = battery_level();
         powermgmt_last_cycle_startstop_min = 0;
         snprintf(power_message, POWER_MESSAGE_LEN,
                  "Chg tmout %d min", charge_max_time_now);
         /* disable charging for several hours from this point,
            just to be sure */
         charge_pause = CHARGE_PAUSE_LEN;
         /* no trickle charge here, because the charging cycle
            didn't end the right way */
         charge_state = 0; /* 0: decharging/charger off, 1: charge,
                              2: top-off, 3: trickle */

The second snippet I cut out because the max charging time is
algorithmaticly dependant on the battery capacity setting. If you have
high capacity batteries (which Matthias has) but don't have this
configured correctly in your config settings, this will aggrevate the
charging problems because you will be charging to 135% * (450 minutes)
without scaling for the higher capacity batteries.

         } else {
             /* calculate max charge time depending on current
                battery level */
             /* take 35% more because some more energy is used for
                heating up the battery */
             i = CHARGE_MAX_TIME_1500 * battery_capacity / 1500;
             charge_max_time_now =
                 i * (100 + 35 - battery_level()) / 100;
             if (charge_max_time_now > i) {
                 charge_max_time_now = i;
             snprintf(power_message, POWER_MESSAGE_LEN,
                      "ChgAt %d%% max %dm", battery_level(),

OK. Here are my humble opinions:

1) We should always do a top-off charge. This is only slightly more
aggressive than a trickle charge. Currently, if the deltaV charge
termination isn't detected, top-off doesn't occur. This is BAD IMHO.

2) We should always trickle charge forever. Remove all algorithmic
trickle disabling (unless turned off in the configuration). Currently,
if the deltaV charge termination isn't detected, top-off doesn't occur.
  Disabling is unnecessary IMHO.

Rationale: Given our charging capacities vs. battery capacity, the
trickle charge PWM control (which is allowed to use a maximum charge
current of 40% of the full strength charge and throttles itself down to
as little as 1.7%) is always safe to run the charger at this level

Received on 2005-02-03

Page template was last modified "Tue Sep 7 00:00:02 2021" The Rockbox Crew -- Privacy Policy