Main page


Deutsche Version

[ Main page ] [ FAQ ]

SpeedswitchXP - CPU frequency control for notebooks running Windows XP


SpeedswitchXP version 1.52 is out (28. August 2006).

I've made the following changes to version 1.51:

  1. support for multiple languages (currently english and german)
  2. reincluded the source code in the distribution file


For donations for future developments and for hosting efforts click here:

SpeedswitchXP V1.52 (787 KB)

    Primary download site (Germany)

The previous version 1.4 can be downloaded from here.

General info

SpeedswitchXP is a small applet that sits in the system tray and allows dynamic switching of the frequencies of mobile Intel and mobile AMD CPUs under Windows XP. During the development of Windows XP, Microsoft decided to integrate dynamic frequency switching into the operating system itself. On a default Windows XP installation, the power schemes in the power settings of the system panel control the frequencies of the processor. On Windows 2000 and previous operating systems, it was possible to manually control the CPU frequencies with a SpeedStep applet provided by Intel, but this is not possible anymore under Windows XP. It is not very good documented what the different Windows XP power schemes do and it is impossible to fully adjust the schemes as the important settings are not accessible through the control panel.

SpeedswitchXP tries to fill this gap in that it provides access to ALL power scheme settings. This small applet is similar in functionality to the native Intel SpeedStep applet for Windows 9x/ME and Windows 2000 but with a few more options.

Basically all it does is creating a power scheme under the power settings in the system panel and making this the default power scheme for Windows XP. When this is done, you can control all settings of this new scheme through the applet.

Since this program is using Windows XP's internal processor performance control functions, it should work on all notebooks that feature dynamic speed switching. So far, it has been successfully tested on notebooks with the following mobile CPUs:

CPU typeTested notebooks
Mobile Pentium III-MDell Inspiron 4100/8100, Dell Latitude C610/C810
Mobile Pentium 4-MDell Inspiron 8200/8500, Dell Latitude C840
Mobile Pentium 4Dell Inspiron 5150
Mobile Pentium M / CentrinoIBM Thinkpad T40/T40p, Dell Latitude D800
Intel Core Solo/DuoDell Inspiron E1705/9400
Mobile AMD Athlon XPPeacock Freeliner XP, Fujitsu-Siemens Amilo A x600

Crash course for program usage

After starting the program, it automatically minimizes itself into the system tray. It can be identified by one of four different icons which indicate the current CPU policy:

Icon CPU policy means ...
Max. performance keeps the CPU at maximum speed (i.e. a Pentium-M 1.6 GHz runs at 1.6 GHz continously)
Battery optimized keeps the CPU at the lower speed (i.e. a Pentium-M 1.6 GHz runs at 600 MHz continously)
Max. battery Keeps the CPU at the lower speed and allows further throttling depending on remaining battery power
Dynamic switching switches between the lower and maximum speed according to current CPU utilization (i.e. a Pentium-M 1.6GHz switches automatically between 600 MHz and 1.6 GHz)

If you move the mouse pointer over the tray icon, you see the current CPU policies for AC (external power) and DC (battery power) in a small popup window:

A rightclick on the tray icon opens a small window which allows fast switching between the different CPU policies:

When changing the CPU policy, the tray icon changes automatically to reflect the new CPU policy.

A leftclick on the tray icon opens the main window. It looks like this:

On the main window, you can change the CPU policies for both external and battery power. The program automatically switches between the external and battery CPU policies when a power state change occurs (pulling the AC plug or plugging it back in). You can also adjust the main power options here like display timeouts, HD spindown timeouts, etc.

Clicking on 'Detect max. speed' activates the detection of the CPU's maximum speed. This process takes approximately two seconds.

Clicking on the options button shows the options window:

These options have the following meaning:

  • Enable Autostart

      Activates the autostart functionality. When activated, the program will be started automatically on every boot.
  • Enable Debugmode

      Activates the debug mode. When in this mode, the program writes runtime log messages to the log file "SpeedswitchXP.log".
  • Minimize To Tray...

      When activating this option, the program will be minimized to the tray instead of shutting down when clicking on the 'Close' button.
  • Reactivate previus power scheme when terminating

      Reactivates the power scheme that was active at program start when the program is terminated.
  • Check power scheme integrity

      Checks the power scheme "Speedswitch Control" on the given interval for changes from outside the program. When detecting a change, the program restores the power scheme settings to its original values.
  • Read CPU speed

      Activates the CPU speed detection in certain intervals. The CPU speed can be detected by two methods: receiving the current speed from Windows XP ('Ask Windows about speed') or calculating the current speed in realtime ('Realtime speed calculation'). You can also enable a separate tray icon which shows the CPU speed by enabling the option 'Show in tray icon'.
  • Read CPU load

      Detects the current CPU load in certain intervals. You can also enable a separate tray icon which shows the CPU speed by enabling the option 'Show in tray icon'. If both these options here and for the CPU speed are activated then there's only one icon showing the speed in its upper part and the load in its lower part.
  • Show history diagram

      Displays the detected CPU speeds and loads in the history diagram on the main window. The CPU speed is displayed in 100MHz units and can be scaled to get a clearer speed display.
  • Show battery level in tray

      Displays an additional tray icon which shows the remaining battery capacity:

      The program can display the battery icon only when the system runs from battery ('Only when on battery power') or when running both from AC or battery. The value shown in the tray icon can be either the remaining battery charge in % or the remaining battery time in minutes. When moving the mouse pointer over the tray icon, both values are shown in a small popup window:


      The option 'Indicate battery charging status' shows a charging battery icon if the battery is currently being charged. In this mode, the icon automatically displays the remaining battery charge in percent so you can observe the charging status:

  • Update interval

      Determines the update interval for the CPU speed, CPU load, and battery capacity detection.

The 'User policy', 'Machine policy' and 'CPU policy' tabs take you to the internal settings of the power scheme. Before you make any changes to these internal settings you should teach yourself on their internal functionality. I suggest that you read these documents to fully understand their meaning:

If you want to know even more about processor control and C-states then take a look at these sites:

Clicking on the 'Show system info' button on the main window brings up a window showing some info about the CPU and your system's power capabilities:

The second window tab shows your system's power capabilites:

© 2006 Christian Diefer

News ] [ SpeedswitchXP ] [ I8kfanGUI ] [ DiceRTE ] [ Forum ] [ Links ] [ Disclaimer ]

Last Update: 28. August 2006