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
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.