Intel PWM control
LCD screen in Thinkpad T500 is blinking with quite low frequency (although my iiyama ProLite E2274HDS is really no better - 240Hz backlight PWM) of 220Hz when not operating at 100% brightness:
Note: this plot is captured by connecting to oscilloscope small solar cell and pointing this cell to the screen.
This is visible when there is any moving object (e.g. hand) moving between screen and eyes. It looks like backlight PWM frequency can be increased: https://github.com/dmytrov/IntelPWMControl. I've made small additions to this code:
- source is built with Code::Blocks (project files included) + MinGW => smaller download, easier to modify
- binary is linked statically thus Visual Studio Redistribuable is not needed
- Ctrl+C/logoff/shutdown handler is added
This seems to work:
This tool is running non-stop. Calling SetPWMFrequency just once might but from my test
it looks like default (220Hz) backlight frequency is restored each time screen brigness is changed.
Usage: IntelPWMControl.exe [frequency]
e.g. IntelPWMControl.exe 800
where frequency = 220 ... 2000. If no argument is supplied - PWM frequency would be set to 500Hz. Application is not visible when running. If you want to select another frequency
you have to terminate it using process manager first.
In order to limit any impact on system performance I've increased to 20s interval of checking and optionally restoring PWM frequency, so after changing brightness screen would use default (220Hz) PWM frequency for up to 20 seconds.
For automatic startup:
- go to Start menu, expand "All programs", find "Startup"
- use "Explore" on "Startup" folder/item
- use right mouse button, "New"/"Create shortcut", point to exe location
- after creating shortcuts you may specify requested PWM frequency by adding it to "Target" line in shortcut properties
- Source + binary: IntelPWMControl.zip