[TRACKING] High Battery Drain During Suspend

Guys, pure ON or OFF is the way forward.

2 Likes

I’ve just run into this issue.

Laptop at about 55% battery, put it into suspend, no power overnight to the apartment, next morning - laptop had shut down of out power.

One USB A stick inserted, one USB mouse.

I’ve noticed when running on battery that having the mouse or the USB stick inserted (I’ve not checked with both) adds something like 4w of battery drain. Having scanned briefly through this thread, I see comments about USB A devices commanding considerable power drain, and indeed, if one or both devices was still drawing power during suspend, that would most certainly account for the shut down overnight.

1 Like

I have been having sleep issues with my frame work since I purchased it (batch 5 or 6) and finally decided to do some testing. I started with a fresh W11 load, installed latest drivers (also on 3.17 bios for my 11th gen i5) and enabled S3 sleep (s0 disabled). I put my W11 system to sleep with 60% battery (set via bios as max) at approx 8pm. The following day at 2pm, I woke the system, logged in and the battery was down to 9%. Obviously s3 sleep, for me, isn’t actually working. Unfortunately, if I have to full shutdown every time just to keep my battery from draining when not in use, then it is time for me to switch to some other system that actually works in this manner. Honestly I don’t really know if this is a Windows 11 issue, a framework laptop issue, or a combination of both. I have used S3 for years on my W7, W10 laptops and never had this much of a battery drain. I guess I could switch to W10 on my framework and test it as well.

1 Like

My impression was that the new Windows approach is to suspend-then-hibernate, which should do S0 until your battery has dropped 5% and then hibernate to disk, after which your laptop is actually off.

On Linux it looks like the power usage under S2idle (ACPI S0 if I’m not mistaken) can, with a bit of tweaking, get you to a 2-day lifetime or so; but it depends a bit on your setup (NVME and expansion cards) what base level you can actually attain. “deep” (ACPI S3, I think) doesn’t actually seem to get you that much better.

Windows going the suspend-then-hibernate route is definitely going to affect how much optimization chip set developers are going to put into getting decent performance from S3, so it is quite conceivable that modern hardware performs significantly worse under S3 than older hardware does.

Framework’s 55Wh battery is definitely on the small side and it’s pretty clear by now that it’s not the best-tuned in its class for power efficiency, but the figures people have been able to get are not too far off from middle-of-the-pack performance either.

2 Likes

Here is the output from powercfg sleepstudy. Doesn’t seem to explain why the drain, just that it exited from standby with 5205 mWh remaining (9%).

System Power State: Standby

START TIME DURATION STATE ENTRY REASON EXIT REASON % CAPACITY REMAINING AT START
21 2023-01-15 15:22:26 21:25:48 Standby Application API Unknown 61%

- Detailed Session Information

- Battery Information

Remaining Charge Capacity At Entry [mWh] 33634
Full Charge Capacity At Entry [mWh] 55009
Remaining Charge Capacity At Exit [mWh] 5205
Full Charge Capacity At Exit [mWh] 54901

- System Event Log

TargetState 4
EffectiveState 4
ProgrammedWakeTimeAc 62048-31687-00T55041
WakeRequesterTypeAc 0
ProgrammedWakeTimeDc 62048-31687-00T55041
WakeRequesterTypeDc 0
1 Like

Yes, that’s a decrease of 28.4Wh over 21.5 hours, so that’s in the 1.3 W range. That’s in the upper regions of Test results for standby battery use of Expansion Cards (on linux). If you have non-USB-C expansion cards plugged into your system you can probably significantly improve performance by unplugging them, but 0.8 W is about the best people have reported so you shouldn’t expect to do much better than that.

1 Like

Appreciate everyone here sharing their findings. Doing testing on our end (new testing) and will have results here in the not too distant future. Thanks everyone.

5 Likes

Thanks Nils, that is a bummer to hear, esp. needing to remove my usb-a cards to try and get more life out of sleep.

Matt, I am certainly looking forward to hearing if there is anything that can be done. (Other than doing a full shutdown to save ones battery when not plugged in.)

Have you given window’s default suspend-then-hibernate a try? On my surface tablet that works just fine (I’ve never changed it from the default): if I leave it unplugged for more than half a day, it will display the “windows” symbol when I open it up but within a few seconds it’s up and running.
I don’t use windows on the framework laptop, so your mileage may vary there.

I did a reinstall, and started using the suspend to hibernate, and that does seem to help a lot.

I recently purchased a Framework laptop for Linux, running Ubuntu 22.10, and have been experiencing the battery drain when closing the lid and the laptop is not plugged in overnight. I do like the laptop but this is a dealbreaker for me as I can’t afford to pick up the laptop to head out the door for some work and find that the battery is drained.

I saw on another forum that there is a BIOS update (3.10) for the 11th Gen Intel that fixes this issue, but that there is no BIOS update for the 12th Gen. Is that the case? Is there any other fix for the 12th Gen running Linux?

(Update: I don’t have a USB-A expansion card, but I do have an HDMI expansion card which others report being the/a culprit. I’ll try without it, though having to remember to unplug in/plug in back in every time is not optimal. I also have an Ethernet expansion card and 2x USB-C cards)

For the record I forked a new thread about the specific problem I reported here: s2idle sleep usually drawing a normal ~1w but SOMETIMES drawing up to 7w and getting the laptop very hot. Here it is: Linux s2idle sleep "random" power usage increase

This way we can gather data and solutions about this problem more specifically and avoid mixing it with the issue of baseline sleep power draw in this thread.
@Nils @Cecile I believe you were among those who experienced this too so feel free to join the discussion with any additional data you have. And if there are other people impacted too of course.

2 Likes

Hi! Just wanted to say that I’m still suffering with this issue. Does anyone at Framework have an estimate when we can see some relief?

Ubuntu 22.04
12th gen Intel
BIOS 03.05

1 Like

For Ubuntu, we recommend:

  • Removing unused expansion cards before suspend.
  • Make sure you’re Framework is going into a deep sleep.
  • Consider hibernate, which is what I prefer on Ubuntu 22.04.

I DM you a pdf of what I use for hibernation on Ubuntu 22.04. This is still very much in-testing, but has worked really well for me if you follow the guide to the letter.

Hibernation once ready to go, will “power down” your laptop, putting its state into a frozen state onto your hard drive. Then pressing power, your laptop powers on, and you’re back to exactly where you left off.

@Matt_Hartley

Please communicate to the dev team that those workarounds are just that, workarounds. Unfortunately, they don’t actually solve the problem and have their own trade-offs.

People in this thread are usually asking for help because they’ve tried everything and are now waiting for the firmware fixes they’ve been told to expect in the “near” future. Constantly being told to try a few well-known workarounds without any actual updates gets frustrating, to say the least. I understand you’re doing your job and trying to be helpful, but it starts to feel like gas lighting after a while.

Removing unused expansion cards before suspend.

This just isn’t a reasonable suggestion. Sure it’ll help, but do you actually expect someone to pry out their expansion cards as they put their laptop away? They might as well just shut it off or ditch the concept of expansion cards entirely.

Make sure you’re Framework is going into a deep sleep.

Deep sleep will still lose 30% battery life overnight.

Furthermore, it takes 10-20s to completely resume from deep sleep (and staggard hardware initialization causes issues with the fingerprint reader, in my case). It doesn’t sound like much, but I’m a bit tired of pulling out my laptop to show someone something only to sit there and wait while they snakily ask me why I don’t just by a macbook.

Consider hibernate, which is what I prefer on Ubuntu 22.04.

This is really slow, especially with 32-64GiB of ram.

Additionally, from a security standpoint, hibernation is a real issue. It’s possible to encrypt swap with the TPM, but I haven’t yet found a way to ensure that the key is ephemeral. Security policies usually just flat-out forbid hibernation.

2 Likes

Thanks for the feedback. My recommendations are just that, recommendations of what we recommend at this time. Not full stop solutions.

Yes, there are definitely trade offs here. However, there are those who use hibernation quite happily despite the trade offs. Whether or not a user opts to use hibernation will depend on any concerns or company policies that have security concerns with it. While it is difficult to do in TPM, there have been customers here who have managed it.

For me, it’s only done on unencrypted scenarios. My encrypted machines are not using hibernation - I simply plug them into power when I put them into suspend of an evening. Not ideal, but it’s what I do personally.

Regarding long term battery life improvement, I can tell you that we are actively, very actively working on this. We appreciate your continued patience.

3 Likes

Out of curiosity–and I apologize if this is covered elsewhere, searching the forums for this topic is tough–have you experienced your machine spontaneously waking up on its own immediately after hibernating and shutting down?

The pattern I observe, consistently, is that I hibernate the device. It shuts down. Then immediately powers on. When grub appears I hit the power button to shut off the machine. Then it spontaneously powers up again. I hit the power button a second time. And then it shuts down for good.

All USB devices have been disabled for wakeup. I don’t have WoL enabled. I don’t have the “power on when you plug the device in” setting enabled in the BIOS.

This happens if I trigger hibernation with systemctl or via Gnome (after adding an extension to make hibernation available in the power menu).

It’s honestly a bit mystifying.

Am I the only one who’s reported this? Any suggestions for how to troubleshoot? Nothing in the kernel dmesg indicates what’s going on, and the last time I checked, the result of dmidecode said the wakeup was from the power button being pressed (which is definitely not true).

Also, I can certainly fire up a new thread if this is off topic. :slight_smile:

No problem, happy to address this.

On Linux Suspend vs Hibernation are different. We refer to suspend as suspending to RAM in a lower power state. Hibernation is to disk, where the computer powers off, but saves the state. Then pressing the power button brings back the state from the disk, as if in a really, really deep sleep.

Tod find things that are waking up your suspend state, running this to take a look at the suspend logs can be helpful - 99% of the time it’s software that’s open.

journalctl | grep "suspend"

dmidecode is good, but it lacks context.

You can also test this out further by testing suspend with all applications closed, nothing attached (USB).

I’m afraid you misunderstand.

I am hibernating my laptop to disk. Not suspending it.

And yes, rather than the laptop simply shutting down, it appears to power down then immediately power back up and begin the normal POST and boot cycle. How do I know? Because the laptop boots into the bootloader (i.e. grub in this case), which would not happen on a normal wake from suspend.

Yes, that is as surprising to me as it is to you! :smiley:

It sounds like it’s not actually going into hibernation at all, when you say ‘I hibernate the device. It shuts down’ that is odd to me because hibernation doesn’t look like shutting down, it just looks like the screen turning off and power button light turning off a short while later.

When I first tried to set up hibernation, something similar happened to what you’re describing, in that it looked more like shutting down. I looked over everything again and it turned out I’d just put the wrong UUID in my grub settings or something.

So maybe just go through the whole process of setting up hibernate or suspend-to-hibernate again making extra certain you’ve put the right UUIDs in and everything? Sorry I’m not very techy so this isn’t detailed advice but might help.