I have a Librem 14 (DMI product version 1.0, BIOS 4.16-8-gf88975265a dated 04/25/2022, which I may have updated myself). It runs Debian trixie with kernel 6.12.111, and I installed librem-ec-acpi-dkms 0.9.2 to read the charge thresholds.
Battery history: The original Purism 4-cell pack showed the same behavior for years, then swelled. I replaced it with a third-party 3-cell pack. Both stopped at 91% while plugged in.
What I see:
While charging, the percentage stalls at 91% and stays there for hours. The status stays “Charging” and the battery keeps accepting current, around 1.2 to 2.7 A. The charge count (charge_now) sits at exactly 4.004 Ah during the stall.
After unplugging, the percentage reads 100% and holds for about 20 minutes while the battery supplies 2.5 to 3 A. Then it drops in steps, sometimes 6 points in a few seconds.
Charging voltage with the 3-cell pack reads about 13.0 V.
The thresholds read back as start 90 and end 100 when I first checked. I changed them to 40/90, then 80/90, 70/80, and 30/50. Every write reads back correctly, but charging continues past the end threshold. At 91% with an end of 90, the status still said “Charging.” At 73% with an end of 50, it still said “Charging,” and the wall meter stayed at the charging level.
Idle draw on the wall is about 14 to 15 W with the battery at 91%. The power draw does track CPU load (dictation adds about 10 W), so the meter is consistent.
What I haven’t confirmed: whether the pack’s per-cell rating is 4.2 V or 4.35 V. I also don’t know whether the EC firmware has a known bug affecting charge control in this version, or whether a newer EC firmware exists for this model.
Questions:
Is this a known issue with the charge controller or EC firmware on the Librem 14?
Is there an EC firmware version that enforces the charge thresholds?
Is the 91% stall and the 100%-then-drop behavior a known gauge problem, and is there a safe calibration procedure?
I can attach /sys/class/power_supply/BAT0 readings and a battery log if that helps.