A bug in framework bios/ec/pd controller code?! That definitely has never happened before XD.
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
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.
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
This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.





