# Power optimizations under Windows: lower temps, longer battery life

Not all users seem to be happy with battery life or noise emissions of their Framework Laptop. They both can be caused by a too busy CPU. That in turn may be the result of resource hungry background processes or not optimally configured power settings inside windows.

This guide establishes how a good configured system should perform. It further shows where in windows to look if the system fails to do so and what additional programs can be of good help. It provides links to useful documentation. At a last resort were gonna look at some power settings hidden inside the registry.

# What idle power draw one can expect

My Framework is configured with an i5-1135G7, 2x8GB 3200 MT/s RAM, SN850 1 TB SSD.
During everyday tasks like browsing the web, checking E-Mails, working on spreadsheets or documents it stays mostly quiet.

This is possible because of the low temperatures of the CPU, which are a result of the low average power consumption.

The described activities will result in short frequency/power/temperature spikes of the CPU. In the between time there is not much to do for the CPU.
The Intel CPUs used inside the Framework Laptop (11th Gen Tiger Lake) are quite capable in disabling all the parts that are currently not needed in order to save power. That is if they are allowed to by no utilization and the correct windows settings.

To inspect the system in general, and the CPU in particular one can use hardware monitoring software like HWinfo64.

## Monitoring your system with HWinfo64

HWinfo64 is a monitoring software that reads out detailed live data from your whole system: RAM, CPU, Storage, Network, Battery, … . For analysis data can be logged into a file.
For an optimally configured Laptop with idle utilization of the CPU below 1 % I have seen the following values possible:

CPU AC idle DC idle
i5-1135G7 (Framework) 0,8 W to 2,0 W 0,5 W to 1 W
i7-1165G7 (Acer Spin 5 Pro) 0,4 W

Adding an external monitor increases the CPU power draw by something around 1 W.

If youre Laptop exceeds these values lets take a look at what can be done, starting with software.

# Disabling automatically run software

Before investing time tweaking the hardware make sure you don’t have any unwanted background processes running.
Disable all auto start programs that you don’t need inside task manager.

Also you should check whether there are third party services listed in msconfig that you want disable. Make sure to hide all Microsoft Services, they are needed by the OS.
I for example disabled Google Chrome update service, because I use it only as backup to the Firefox browser. To disable a service, untick the box.

In windows there are several background processes regarding analytics of how you are using the system. They consume CPU time and increase the load. While the system should perform good with them left at default, they can be easily disabled by the program O&O shut up 10. With one click you can enable all recommended settings. The program will even ask you to create a restore point in windows.

# Making use of hardware accelerators

If you watch any video it has to be decoded first. That involves a lot of computation. The Tiger Lake processors used inside the Framework Laptop have hardware accelerators for that. These are fixed function parts of the chip that are designed solely for decoding. They are lot more power efficient than doing the computation inside the CPU cores and should be used.
Make sure hardware acceleration is turned on inside your browser.
Tiger Lake supports modern video codecs like AV1, VP9, h.264 and h.265 used by YouTube, Netflix and similar services.

## GPU: Intel graphics control room

With your intel graphics driver there comes a program called intel graphics control room that provides some settings regarding energy.
Make sure to enable panel self refresh. In my case it reduced idle power draw by around 0,5 W.

# Tweaking hardware behavior

## CPU: ThrottleStop

ThrottleStop is a light weight program that gives access to low level CPU controls.
For example, it allows the user to set custom power or frequency limits.
If one wants to limit the amount of heat a CPU produces, one can limit its power. This is how a typical Cool & Quiet mode on your Lenovo or HP laptop works.
The benefit is, that the CPU can decide whether to spend that power budget on a single core or across multiple cores, depending on the workload. Keeping the Laptop responsive, while limiting the amount of heat that has to be cooled.

For example I can specify a PL1 of 10 W. That results in my CPU temperatures topping out at 51 °C during a CineBench benchmark run, keeping the fan noise very limited.

ThrottleStop allows you to define both a long term power limit (‘TDP’ or PL1) and short term power limit (PL2). The latter is active only initially and is replaced after some seconds by PL1 which is active indefinitly.

# Last resort: review hidden power settings

If your idle power draw is still high after going through the previous steps it may be beneficial to review your windows power settings. Also its interesting if one wants to get an overview what power saving features exist in windows and in hardware in general.
Windows has a lot of power settings. Many of them are hidden in the registry, but can be exposed inside the power management GUI.

## Creating backups

Before changing anything its recommended to create a back up. Were gonna create two separate backup files. The first backup file allows to roll back all changes made to the power settings/profile. The second backup file reverts changes inside the registry affecting which settings are visible in the GUI.

### Backup for restoring power settings

In windows, power settings are grouped into so called power schemes. To create a backup were going to export the power scheme into a file, that can be imported at any time, restoring all previous power settings.
To do that one can use the command powercfg inside power shell.

Power schemes are identified by a GUID. Start power shell with administrator rights and list all power schemes using the following command:
powercfg -l
In order to export one power scheme we need to specify the export directory and file name as well as the GUID.
I´m going to export the power scheme to C:\ directory, naming it framework.pow and copy-pasting the relevant GUID
powercfg -export C:\framework.pow YOUR-GUID
Importing the power scheme works by providing the fully qualified path and filename:
powercfg -import C:\framework.pow
Power Shell responds by providing the new GUID.

### Backup for restoring registry settings

Open regedit, the registry editor, navigate to the power settings and create backup by exporting them into a file:
Power settings path:
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings

The settings can later be merged back:

## How power settings are stored inside the registry

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings
Inside the registry power settings are grouped by subsystem into folders. The folders are named by some hexadecimal code. Inside them there should be a description and a friendly name to identify the subsystem.
25 folders

Folder Name inside PowerSettings Settings for
0012ee47-9041-4b5d-9b77-535fba8b1442 Harddisk
19cbb8fa-5279-450e-9fac-8a3d5fedd0c1 WLAN
2a737441-1930-4402-8d77-b2bebba308a3 USB
501a4d13-42af-4429-9fd1-a8218c268e20 PCIe
54533251-82be-4824-96c1-47b60b740d00 Processer

By clicking on the folder one can reveal settings regarding the subsystem. Like the subsystem, each setting has its own folder, named by some hexadecimal string but also containing a human readable description.

## How power settings can be exposed to the user

In windows power settings can be accessed through a GUI:

Whether the individual settings is exposed to the user inside the power management GUI depends on the value of the REG_DWORD ‘Attributes’ of that setting.
Only if that value equals ‘2’ the setting is available inside the GUI. The value can be edited with a simple double click.

If there for some reason is no REG_DWORD with name ‘Attributes’ one can easily create it with a right click.

Next I will highlight some impactful power settings.

## Overview of some impactful power settings

Inside the registry are over 100 individual power settings. I will highlight a few that I found to have great impact and the values i’ve set them to.

### Harddisk/SSD

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\0012ee47-9041-4b5d-9b77-535fba8b1442\0b2d69d7-a2a1-449c-9680-f91c70521c60
Lowest

### WLAN

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\19cbb8fa-5279-450e-9fac-8a3d5fedd0c1\12bbebe6-58d6-4636-95bb-3217ef867c1a
Medium Power save

### Power scheme personality

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\245d8541-3943-4422-b025-13a784f679b7
balanced or energy saver

### USB power management policy

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\2a737441-1930-4402-8d77-b2bebba308a3\d4e98f31-5ffe-4ce1-be31-1b38b384c009
maximum power savings

### PCIe

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\501a4d13-42af-4429-9fd1-a8218c268e20\ee12f906-d277-404b-b6da-e5fa1a576df5
maximum power savings

### CPU

Microsofts provides an overview and description of all CPU related settings here

#### Minimum of unparked (active) cores

Windows has the ability to shut off individual cores - which is called core parking. A parked core consumes no power but cant compute anything. For a parked core both threads are shut down.
To specify that no core parking is allowed enter 100 %. That doesn’t prevent the CPU from entering low power C-states.
To keep at minimum three cores active, enter 75 %, for two 50 %, for one 25 %.
Whether cores are currently parked can be seen for example in the task manager or in the ressource monitor.

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\71021b41-c749-4d21-be74-a00f335d582b

#### Minimum percentage of processor performance

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\893dee8e-2bef-41e0-89c6-b55d0929964c

#### Setting preference for passive/active cooling

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\94D3A615-A899-4AC5-AE2B-E4D8F634367F

#### Maximum percentage of processor performance

This setting limits the clock speed of the CPU cores relative to their base clock. This does limit power consumption. How ever it also limits single thread performance/responsiveness of the system. After all the base frequency of 2.4 GHz (i5-1135G7) and 2.8 GHz (i7-1165G7) is quite low compared to their boost frequency of 4.2 GHz and 4.7 GHz respectively. To limit the power draw of the CPU its better to set it directly, e.g. with ThrottleStop, and let the CPU decide what frequency it wants.

So thats more a “for science” setting.
If I want to limit the i5-1135G7 to a max frequency of 1.5 GHz I enter 1.5/2.4 = 0,625 → 63 %.

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\bc5038f7-23e0-4960-96da-33abaf5935ec

#### Maximium of unparked (active) cores

If you want for some reason, that Windows uses only half of your cores, you may specify 50 %, and 4 threads will be permanently parked (unused).
To allow windows to use all threads enter 100 %.
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\c7be0679-2817-4d69-9d02-519a537ed0c6

### GPU energy performance preference

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\5FB4938D-1EE8-4b0f-9A3C-5036B0AB995C\DD848B2A-8A5D-4451-9AE2-39CD41658F6C

Of course feel free and try how changing other settings affects power consumption/battery life of your Laptop. There are some settings that use Windows specifics names, others use general technical terms like AHCI in the context of SSDs or core parking in the context of the CPU.
One good resource should be the official Microsoft Windows Power Settings Documentation
For technical information about the CPU consult Intels datasheet for Tiger Lake Processors.

# Final words

If you are still having issues achieving low idle power draw, feel free to comment below.

If there are any great settings I´m missing, feel free to tell us about them.

40 Likes

Thank you for this extensively detailed guide. Pinned!

5 Likes

This guide is absolutely amazing. Thank you for the effort you put into this and I’m sure it will help a great many people. Well done!

5 Likes

Amazing write-up. Thanks so much!

Nice write-up!! Might I add that disabling turbo while on battery may be a good idea (can do so by checking the Disable Turbo box in ThrottleStop).

Here’s an explanation to why:

In other words, it can limit/cap power spikes.

And that post, for Linux, which also has information that pertains to Windows.

4 Likes

My framework once sounded like a tiny vacuum and that lead me to find your amazing guide. I am now pulling between .25 and 1W at idle! Temps are consistently lower and the fan is no longer audible. Thank you!

2 Likes

You may want to consider something native:

2 Likes

There’s a github Powershell script that lists everything!

I’m really not in expert in this type of optimization - could similar steps help with the 12th gen? Are there any difference I should expect?

The recommended changes should also be applicable to 12th gen processors. Regarding differences: I can think of higher idle power draw due to the additional cores (4p + 8e vs 4p). But maybe intel did an amazing job with clock gating and there is no issue.

1 Like

This looks like an amazing guide. Sadly even after following it I can’t get my CPU to go below 3W (as seen from Throttlestop). I wonder what I am missing…

It sounds like something is keeping your CPU from reaching its low idle states.
Take a look in task manager ( [Ctrl] + [Shift] + [Esc] to open). What CPU utilization is reported during idle? It should get as low as 1% after a while. If yours is > 5%, what processes are causing the CPU load?
Are they windows/mircosoft processes or third party?

1 Like

It’s idling down to 1% but and I’ve seen it idle to around 2.1W now but that seems higher still then the 0.5w you are seeing.

With Chrome open it generally is around 3-4W

Here’s a 5minutes idle, averaged 0.58W:

for the record: is that the power draw on battery or from the wall?
What jumps to my attention:
Throttlestop is reporting C0% of ~6% on your system where my system achives 1% to 2%. Your CPU spends more time in the fully active C0% state - which is probably the reason for the higher power draw.
Some process is keeping you CPU occupied. I recommend you to experiment a bit with disabling third party services: e.g. disable google drive and displaycal and see how much C0% reduces.
Be aware: your ThrottleStop is currently only in monitoring mode. To apply ThrottleStop settings you have to click on ‘Turn On’

Is this CPU power from HWinfo64? System power from HWinfo64? Or measured some other way?

I could have been clearer about that:
The reported values are for CPU package power draw as shown by ThrottleStop.

Looks like Google Drive was pulling a little bit of CPU. DisplayCal was basically nothing. FxSound however was over a watt! That was quite surprising. I had that installed to make the speakers sound better, one of the biggest problems with the Framework laptop in my option.

1 Like

Thanks! In that case, my 12th gen, with a stock windows install (and framework driver package installed), is very similar. On AC power / balanced profile and idle it’s about 0.5-1W on both DC/AC power with balanced profile.