[NOT A BUG] 61Wh battery becomes 55Wh battery after 140(?) cycles, voltage drop 0.2V

A bug in framework bios/ec/pd controller code?! That definitely has never happened before XD.

1 Like

More importantly, a 55wH battery is not capable of the desired output voltage that the tool is reporting in your case above. (15480 mV) This is only because of the increased capacity of the 61wH battery. If your battery has already degraded enough to be identified as a 55wH battery, so too should your voltage output reflect this. (15400 mV)

I found it very off-putting that I own a 61Wh battery and borrowed a 55Wh battery, the 61Wh only charged to 17.6V and the 55Wh only charged to 17.4V

I’m curious about which battery should be identified in this case? There’s no battery that has a desired charging voltage of 17400mV

Or a bug happened to be in the battery management system (BMS) which could lead to worse outcomes…

The desired voltage reported is what the 55wH battery reports, not the 61wH battery. (I am assuming this as it seems like a logical rational thing.)

There are two things being talked about here. One: possible bugs in the ectool source (what I am interested in). Two: battery degradation over time and use.

Both are valid concerns at the same time, but I’m merely focusing on the ectool.

Much less likely as that bit is probably done by the battery manufacturer that does the same thing for a ton of other laptop manufacturers.

Inspired from this reply from another topic I did an experimentation about chargestate a few hours ago..
I set the charge limit to 100% and then used chargestate

$ sudo ectool chargestate show
ac = 1
chg_voltage = 17600mV
chg_current = 2740mA
chg_input_current = 2924mA
batt_state_of_charge = 86%

Note that it chg_voltage = 17600mV instead of 17800mV.

I attempted to $ sudo ectool chargestate param 0 17800
The chg_voltage changed to 17800 when I chargestate show but will become 17600 again after a second.

So I chose to spam $ sudo ectool chargestate param 0 17800 again and again as shown in this screenshot. And after doing this for about an hour nonstop, WARNING: bad to your hand health if you do that manually every day

Spamming


Note the Voltage: 17.79V

If I stop
$ sudo ectool chargestate show
ac = 1
chg_voltage = 17800mV
chg_current = 2740mA
chg_input_current = 4500mA
batt_state_of_charge = 97%
$ sudo ectool chargestate show
ac = 1
chg_voltage = 17800mV
chg_current = 2740mA
chg_input_current = 4500mA
batt_state_of_charge = 97%
$ sudo ectool chargestate show
ac = 1
chg_voltage = 17800mV
chg_current = 2740mA
chg_input_current = 4500mA
batt_state_of_charge = 97%
$ sudo ectool chargestate show
ac = 1
chg_voltage = 17800mV
chg_current = 2740mA
chg_input_current = 4500mA
batt_state_of_charge = 97%
$ sudo ectool chargestate show
ac = 1
chg_voltage = 17800mV
chg_current = 2740mA
chg_input_current = 4500mA
batt_state_of_charge = 97%
$ sudo ectool chargestate show
ac = 1
chg_voltage = 17800mV
chg_current = 2740mA
chg_input_current = 4500mA
batt_state_of_charge = 97%
$ sudo ectool chargestate show
ac = 1
chg_voltage = 17600mV
chg_current = 2740mA
chg_input_current = 4500mA
batt_state_of_charge = 97%
$ sudo ectool chargestate show
ac = 1
chg_voltage = 17600mV
chg_current = 2740mA
chg_input_current = 4500mA
batt_state_of_charge = 97%

It’ll go back after a short while

The actual voltage stabilized to about 17.78~17.79V, the very same voltage I observed last year when charging to full.

When the battery percentage reached to 98%, both “Remaining energy” and “Last full charge” are kind of frozen, from this moment on, spamming $ sudo ectool chargestate param 0 17800 is no longer needed.
However ectool battery still insists that the “Desired Voltage” is 17600mV

Stubborn EC
Battery 0 info:
  OEM name:               NVT
  Model number:           FRANGWAT01
  Chemistry   :           LION
  Serial number:          0035
  Design capacity:        3915 mAh
  Last full charge:       3597 mAh
  Design output voltage   15480 mV
  Cycle count             157
  Present voltage         17788 mV
  Present current         143 mA
  Remaining capacity      3560 mAh
  Desired voltage         17600 mV
  Desired current         2740 mA
  Flags                   0x0b AC_PRESENT BATT_PRESENT CHARGING

But chargestate showed the correct value

$ sudo ectool chargestate show
ac = 1
chg_voltage = 17800mV
chg_current = 2740mA
chg_input_current = 2924mA
batt_state_of_charge = 99%

After waiting for yet another hour, the battery had finally been truly fully charged.
btop showed 100%, both “Remaining energy” and “Last full charge” were updated, and more importantly, the battery health has restored to 98%! (99% in the KDE GUI)

upower and ectool confirmed 98% of battery health
$ upower -i $(upower -e | grep battery)
  native-path:          BAT1
  vendor:               NVT
  model:                FRANGWA
  serial:               0035
  power supply:         yes
  updated:              Mon 07 Apr 2025 02:46:05 PM AEST (19 seconds ago)
  has history:          yes
  has statistics:       yes
  battery
    present:             yes
    rechargeable:        yes
    state:               fully-charged
    warning-level:       none
    energy:              59.8147 Wh
    energy-empty:        0 Wh
    energy-full:         59.8147 Wh
    energy-full-design:  60.6042 Wh
    energy-rate:         0 W
    voltage:             17.7 V
    charge-cycles:       157
    percentage:          100%
    capacity:            98.6973%
    technology:          lithium-ion
    icon-name:          'battery-full-charged-symbolic'
  History (charge):
    1744001160  100.000 discharging
  History (rate):
    1744001159  0.000   discharging
    1744001142  3.932   discharging
    1744001112  3.855   discharging
    1744001082  5.294   discharging
$ sudo ectool battery
Battery 0 info:
  OEM name:               NVT
  Model number:           FRANGWAT01
  Chemistry   :           LION
  Serial number:          0035
  Design capacity:        3915 mAh
  Last full charge:       3864 mAh
  Design output voltage   15480 mV
  Cycle count             157
  Present voltage         17712 mV
  Present current         0 mA
  Remaining capacity      3864 mAh
  Desired voltage         0 mV
  Desired current         0 mA
  Flags                   0x07 AC_PRESENT BATT_PRESENT DISCHARGING

Since I nearly always charge to about 75% there’s very little degradation, about 3%, from 101% to 98%.

However, the degradation is clearly shown that after charging to 17.8V, the voltage is now 17.74V. One year ago when the battery was brand new, the voltage would drop to 17.76V after charging, the internal resistance of the battery has increased slightly so voltage drop increased from 0.04V to 0.06V but nowhere near 0.2V, so the EC bug is more likely the cause.

I unplugged(still showing 99% health), let the battery discharged to below 75% then charged it again. This time no spamming on terminal, it charged to only 17.6V and guess what? The battery health reduced to 90% again.

So it’s more of a bug rather than a readout error.

1 Like

For a comparison, here’s the battery for my W541, made in 2017, first used in 2018. Low charge cycle because it’s always sitting on a desk, fully plugged in 99% of the time, until Jan 2022 (then it became my personal laptop). It’s for a work-from-home work laptop. Only took the laptop to client sites no more than 10 days in the entire life of that battery.

Calibrated the battery again today (just now)…still at 92.7% health. Notice that the 60% start charging threshold, and the 75% stop charging threshold.

Now that’s a quality battery that aged well.

Did the battery charged to 100% while plugged before the computer became your personal laptop?

The OG 3.6V cylindrical batteries are really durable. They are also much stable when kept at high level or charge

I’ve always kept it at max 75% charged (with the exception of calibration once every 4-6 months, roughly)…because it was always known to be a work-from-home desk unit.

I can no longer edit the original post so I’ll label NOT A BUG and put the quote here with the link from solution

2 Likes

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.