Laptop details
Batch 5, DIY, BIOS v3.06, i7-1165G7 mainboard, stock 2x16gb memory, cards in clockwise order from upper right: USB-C, USB-A, USB-A, USB-C; stock A/C adapter, Arch Linux (SwayWM, BTRFS on LUKS), possibly relevant systemd units enabled: TLP;
What’s going wrong
I’ve been happily using the Framework laptop for just shy of a month. Yesterday, I noticed that the laptop refused to charge past 93% when I plugged it into my usual charging port (upper left). Confused, I ran:
while true; do acpi; sleep 0.2; done
(my usual battery icon only updates once every five seconds)
When I left the laptop alone, ACPI reported constant discharge (but the laptop remained ‘plugged in’). If I started up tasks, ACPI reported intermittent charging. Anecdotally, the more intensive the tasks, the more often the intermittent charge, but I never reached consistent charging.
I then removed all of my expansion cards and tested each port one by one. All ports resulted in consistent charging except for the upper left.
I flipped the power cable over and tried the same, with the same results.
I rebooted and tried the same, with the same results.
I returned to (attempting) charging in the upper left and started doing silly things like putting light pressure at various angles on the charging cable at the laptop port, tilting the laptop, tapping hard at the keyboard, opening/closing the lid to various angles, squeezing at the edges of the frame, rapidly n-tuple clicking, and singing soft lullabies.
Nothing seemed to have a predictable effect, except for running intensive tasks, and even then it was inconsistent.
Running sensors
showed for BAT1-acpi-0
a current read-out that changed as expected with load (going from 200+ to 500-ish milliamps). Bizarrely, the current didn’t drop to its original level when the load was removed, instead hovering around 400 milliamps. With TLP enabled, the load eventually settled to the 200s of milliamps. There were some bizarre unpredictable drops to sub-100 milliamps for a second at a time.
Running the command:
while true; do sensors | grep curr1; acpi; sleep 0.2; done
showed a very loose correlation between current and charging state (high current = more likely to be charging), but not in an obvious way. Maybe there’s a time delay and I should be number-crunching with autocorrelations or whatever, or maybe I’d rather be told to contact support. :-/
Charging via the upper left while powered completely off resulted in a successful charge from 93% to 100%.
Running the command:
upower -i $(upower -e | grep BAT)
on two separate occassions in the same session with the power cable plugged in without interruption showed my battery level dropping… while plugged in…
As a sanity check against tlp.service
:
sudo tlp-stat -b
provided (not available)
s for both charge_control_(start|end)_threshold
properties.
Throughout all of the above, the external side LEDs behaved (almost) as expected: a cool white when full, a green when charging. The exception is that while ‘plugged in’ and failing to charge the battery, the side-LED stayed on green (it is unclear to me whether that’s intended or not).
At this point I have a number of concerns:
- Is this somehow related to the charging bug in BIOS 3.06? (different symptoms, same underlying problem?)
- Is this some kind of rapid degradation that occurred to my USB-C port? Will my other ports ‘die’ the same way if I use them instead?
- And of course: what the heck is causing this behavior?
Addenda/Errata
No peripherals were attached for any experiment above.