For those still using the 11th gen FL13 with their original (first) battery since 2021/2022, if it’s been more or less your daily driver (700+ charges by now), what’s your battery’s current capacity?
EDIT: Turns out /sys/class/power_supply/BAT1
is a dirty liar. Original post preserved below:
My battery is from the 11th gen batch 5 received in early November 2021. It has been my daily driver, but it spent most of its life plugged in, so my battery is reporting far fewer cycles, and I enabled the battery charge limiter as soon as that was added to the 11th gen firmware.
(for this output I set my limit back to 100%, charged it up to full, unplugged it, and let it drain a little because idk how it determines
charge_full
. No idea if that accomplished anything.)$ find /sys/class/power_supply/BAT1/ -maxdepth 1 -type f -name 'capacity*' -or -name 'charge*' -or -name 'cycle*' -or -name 'manufacturer' -or -name 'model_name' -or -name 'voltage_min_design' | while read f; do echo "/sys/class/power_supply/BAT1/$(basename "$f")" $(cat "$f"); done | sort /sys/class/power_supply/BAT1/capacity 97 /sys/class/power_supply/BAT1/capacity_level Normal /sys/class/power_supply/BAT1/charge_control_end_threshold 100 /sys/class/power_supply/BAT1/charge_full 2923000 /sys/class/power_supply/BAT1/charge_full_design 3572000 /sys/class/power_supply/BAT1/charge_now 2844000 /sys/class/power_supply/BAT1/cycle_count 222 /sys/class/power_supply/BAT1/manufacturer NVT /sys/class/power_supply/BAT1/model_name Framewo /sys/class/power_supply/BAT1/voltage_min_design 15400000
So it looks like my battery still has 81.83% of its original capacity based on
2923000/3572000 * 100
Nice. What % was your charge limit set to? And does your CPU boost / under load often (usage pattern)?
It was set to 70%.
Back when I had the Intel motherboard, I disabled turbo boost through /sys/devices/system/cpu/intel_pstate/no_turbo
and I set the hwpstates to favor energy efficiency over performance through /sys/devices/system/cpu/cpufreq/policy*/energy_performance_preference
.
Now that I am on the AMD 7840U board I don’t have turbo disabled (because I haven’t figured out how) but I still set the same power
setting for the energy_performance_preference
and I set /sys/firmware/acpi/platform_profile
to low-power
.
Usage is mostly coding, compiling that code, and occasionally factorio. It spends more time plugged into a thunderbolt 4 dock than it spends unplugged.
Really appreciate the detailed response. With that info, I can start using mine as a daily driver then. The battery longevity has been a concern of mine due to to micro charge / discharge cycle behaviour. But with your long term, mostly plugged in, no turbo usage pattern, that now gives me higher degree of assurance that the battery can last me 4+ years.
find /sys/class/power_supply/BAT1/ -maxdepth 1 -type f -name 'capacity*' -or -name 'charge*' -or -name 'cycle*' -or -name 'manufacturer' -or -name 'model_name' -or -name 'voltage_min_design' | while read f; do echo "/sys/class/power_supply/BAT1/$(basename "$f")" $(cat "$f"); done | sort
/sys/class/power_supply/BAT1/capacity 100
/sys/class/power_supply/BAT1/capacity_level Normal
/sys/class/power_supply/BAT1/charge_full 3041000
/sys/class/power_supply/BAT1/charge_full_design 3572000
/sys/class/power_supply/BAT1/charge_now 3041000
/sys/class/power_supply/BAT1/cycle_count 142
/sys/class/power_supply/BAT1/manufacturer NVT
/sys/class/power_supply/BAT1/model_name Framewo
/sys/class/power_supply/BAT1/voltage_min_design 15400000
My Power Manager gives me 85% of real capacity.
I don’t remember the batch number, but I bought my FW13 in May2022. Laptop is mostly plugged in and I set the charge limit for some time at 90% (but since I had to replace the CMOS battery, I didn’t set it back). However I didn’t disable the turbo.
You’ll probably get more accurate data by fully discharging it and then charging it to 100.
Ah yeah, I didn’t bother discharging it first because I let it discharge fully ~2 days ago (unintentionally). But I had my charge limiter still enabled so I charged my laptop to 70% where it stayed for the past 2 days before I let it go up to 100 last night.
Sounds like it has seen min and max relatively recently so the data is probably pretty solid.
It’s recommended to use ectool
since on other programs the cycle count is reset each 256. Recently I borrowed an earlier battery that has 1134 cycles on ectool battery
but both tlp-stat -b
and upower -i $(upower -e | grep battery)
show 64
Have you done a full charge / discharge / charge cycle recently?
A couple of weeks ago I think but I can do one today.
I was monitoring the capacity because I was thinking of replacing the battery by a 61WH if it ever went too low but it looks like I still have time before doing so .
Whoa, you’re right. Turns out /sys/class/power_supply/BAT1
is a dirty liar. Here’s my output from ectool
which shows over 3x the cycles that /sys/class/power_supply/BAT1
shows:
$ sudo ectool battery
Battery 0 info:
OEM name: NVT
Model number: Framework L
Chemistry : LION
Serial number: 014E
Design capacity: 3572 mAh
Last full charge: 2906 mAh
Design output voltage 15400 mV
Cycle count 735
Present voltage 16101 mV
Present current 0 mA
Remaining capacity 2036 mAh
Desired voltage 17400 mV
Desired current 3572 mA
Flags 0x0b AC_PRESENT BATT_PRESENT CHARGING
The remaining capacity seems to have been approximately correct though, since this is showing 81.35%
from 2906/3572 * 100
.
I had to replace it last month with the new battery, since I didn’t set a charging limit on it and it was noticeably not lasting as long (I didn’t take measurements, sorry)
So I can definitely confirm you do not want to charge it to 100%
I’m at about 86%, it seems (my Framework is from late 2021 as well, mostly plugged in to my hub):
$ find /sys/class/power_supply/BAT1/ -maxdepth 1 -type f -name 'capacity*' -or -name 'charge*' -or -name 'cycle*' -or -name 'manufacturer' -or -name 'model_name' -or -name 'voltage_min_design' | while read f; do echo "/sys/class/power_supply/BAT1/$(basename "$f")" $(cat "$f"); done | sort
/sys/class/power_supply/BAT1/capacity 100
/sys/class/power_supply/BAT1/capacity_level Normal
/sys/class/power_supply/BAT1/charge_control_end_threshold 100
/sys/class/power_supply/BAT1/charge_full 3087000
/sys/class/power_supply/BAT1/charge_full_design 3572000
/sys/class/power_supply/BAT1/charge_now 3087000
/sys/class/power_supply/BAT1/cycle_count 11
/sys/class/power_supply/BAT1/manufacturer NVT
/sys/class/power_supply/BAT1/model_name Framewo
/sys/class/power_supply/BAT1/voltage_min_design 15400000
$ sudo ectool battery
EC result 3 (INVALID_PARAM)
Battery info:
OEM name: NVT
Model number: Framewo
Chemistry : LION
Serial number: 0037
Design capacity: 3572 mAh
Last full charge: 3087 mAh
Design output voltage 15400 mV
Cycle count 267
Present voltage 17239 mV
Present current 0 mA (discharging)
Remaining capacity 3088 mAh
Flags 0x07 AC_PRESENT BATT_PRESENT DISCHARGING
I’m still on the original battery from a Framework 11th gen, batch 6 at the end of 2021. ectool says I’m at 552 cycles. I used the laptop pretty lightly the first year or something, and I’ve used it fairly heavily since then, on and off the charger. Also went through setting a variety of different max charge levels, between 80% and 100%.
My reported capacity varies, and I haven’t cycled the battery lately, but it seems like I’m between 82% and 84% someplace.
Battery info:
OEM name: NVT
Model number: Framewo
Chemistry : LION
Serial number: 0190
Design capacity: 3572 mAh
Last full charge: 3098 mAh
Design output voltage 15400 mV
Cycle count 552
Present voltage 17073 mV
Present current 0 mA
Remaining capacity 2914 mAh
Flags 0x0b AC_PRESENT BATT_PRESENT CHARGING
@Tom1 Where’d you get your ectool? Mine doesn’t show a Desired Voltage
.
Looks like mine is from Dustin L. Howett / ectool · GitLab which I built from the AUR back in Oct 2024. No idea how it compares to other copies/versions of ectool.
$ doas pacman -Qi ectool
Name : fw-ectool-git
Version : r2763.0ac6155-1
Description : ectool for the Framework laptop.
Architecture : x86_64
URL : https://gitlab.howett.net/DHowett/ectool
Licenses : BSD-3-Clause
Groups : None
Provides : ectool
Depends On : libftdi
Optional Deps : None
Required By : None
Optional For : None
Conflicts With : None
Replaces : None
Installed Size : 247.80 KiB
Packager : Unknown Packager
Build Date : Wed Oct 9 15:10:34 2024
Install Date : Wed Oct 9 15:11:00 2024
Install Reason : Explicitly installed
Install Script : No
Validated By : SHA-256 Sum Signature
$ git remote -v
origin https://github.com/FrameworkComputer/EmbeddedController (fetch)
origin https://github.com/FrameworkComputer/EmbeddedController (push)
… huh.
Every time I try to dive into git forks and branches I wind up getting entangulated, too-weak git skills and/or missing context from not working on the projects.
It’s a bit weird to me that a Chromium OS-derived repo is ahead of and more featureful than the Framework ectool, on a Framework laptop. I dunno, I guess it builds, seems to run… cool.