[Possibly Solved] Excessive battery drain on Fedora 39

Hey all,

I’ve had my FW16 for about a week, and set it up with Fedora 39 as according to the guide. Since the start, I’ve set a battery charge limit of 80%. I noticed that I was getting only ~3h or so battery, and thought it was strange. Today after checking with btop, I’m seeing an otherwise idle power usage of ~20W-24W! That seems excessive. I confirmed nothing is using the dGPU with the dGPU detection AppImage and the CPU is hovering with a low frequency.

My setup:

  • 2 x LED matrix modules
  • 2 x 32GB of Framework-provided DDR5-5600
  • WD_BLACK SN850X NVMe - M.2 2280 - 2TB

PPD seems to be installed and running, version 0.20

This is a pretty insane draw for idle, what could be causing it?

Edit: I was testing with 100% screen brightness :man_facepalming: . Knocking it down to 0 yields ~9W, which whilst higher than I thought it would be, is still much better

Other thing to keep in mind is if you are on regular Fedora Workstation you need to install RPM fusion and proprietary media codecs. This will reduce powerdraw when watching videos in the included Firefox. These are mostly video/audio focused so depending on your use case may not help.

If you are on an immutable Fedora (silverblue/kinoite) then disable the Fedora flatpak and enable fluthub as the default for flatpaks. Firefox/Chrome/Edge/VLC/etc… from here tend to have the proprietary codecs that reduce the power required when consuming media content.

Other thing to look at would be the 2 LED matrix modules, even off they may still draw some power. Then there is the WD Black SSD, there are more power efficient SSDs out there if that is a concern. Power tuning can be a bit of a rabbit hole. Honestly wouldn’t swet it too much if your getting around 6 hours with light tasks.

1 Like

something to note: I’ve found the dGPU detection AppImage isn’t 100% consistent. If it lists a process then that process is certainly using the dGPU, but it doesn’t seem to always show all processes that are using it (in other words, it can give false negatives). The best way to tell is probably using this script, which will state if it’s in the proper power state.