61Wh battery becomes 55Wh battery after 140(?) cycles, voltage drop 0.2V

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