IdeaFan for y510p y500 G500 Y580 y410p y50-70
I have been trying to find a way to control fans on my y510p. As everything else failed up to the Embedded Controller (EC), I have made myself a program to call dust removal function. With a help of this forum members, I have perfected calling and stopping timing which works on my computer.
Basically, running Furmark, if I do not run this program, I constantly run into 97C and thermal throttling for my GPU (see Mhz of core and memory):
And when I do run this program, it manages to keep temperatures at 88-93C and there is no more throttling in a long run.
Usage: run the program and it will enable dust function when you reach GPU/CPU temperature of 90C. Or Start/Stop it with keyboard shortcut Ctrl+Shift+Q, Ctrl+Shift+O or through menu on tray icon.
Download: IdeaFan v2.0 (includes OpenHardwareMonitor 0.9.2.0)
So far, this has been tested on 2 computers (y510p Win 8.1/Win 8.1Pro/Win10). Both with Lenovo Energy driver v7.x and v8.x. I have tried it for both 2xSLI and 1x GPU, also for CPU stress tests or simply during high CPU usage, i.e. rendering videos. Feel free to use and leave some comments that it can be further improved if possible.
Danger! Do not use Furmark to stress your GPU unless you know what you are doing. I have used it here for testing purposes only.
*fix* Fixed temperatures reading from OpenHardwareMonitor for different locales
*change* Migrated to OpenHardwareMonitor 0.9.2.0, default config to start its web server and read temperatures from it
*fix* Fixed crasching when OpenHardwareMonitor does not have web server enabled. Please make sure OpenHardwareMonitor is closed before upgrading
*fix* IdeaFan used too much, around 5% CPU, now it uses almost 0%
*change* Changed reading temperatures from WMI to OpenHardwareMonitor json data because of Windows 10 build 1607 anniversary edition bug
*change* Migrated to OpenHardwareMonitor 0.7.1.0 beta
*fix* Temperatures are shown and working on Windows 10 (tested on build 1511)
*fix* Supposedly startup error with OHM should be fixed
*new* Added another keyboard shortcut just for diversity
*fix* When fan is running, nothing should disrupt the cycle (not tray menu nor high cpu/gpu usage or temperatures)
*change* Startup option changed from startup folder to windows task
*change* Updated default settings
*change* Removed sleeps, introduced timers/threads
*new* Lower cpu usage
*change* Reverted default settings (to have several versions with all newest changes available)
*change* Updated default settings (provided by octiceps)
*new* Options are saved in ini file
*new* Automatic dust function control based on temperature (OpenHardwareMonitor 0.6.0 beta included)
*new* Startup option fixed
*new* Ability to change timeouts in ini file
*new* Initial Version to run dust function
And here are possible improvement requests for the future:
1. Make fans start hitting the 9s/0.5-1s cadence right off the bat. Need to make sure that the last time fans are stopped, its within 0.5-1s gap when they are stopped. This is due to the EC somehow remembering where it left off the last time and resuming from there. If you stopped it in the middle of a spin cycle, the next time you run it the fans will be inconsistent inside the first minute before finding their rhythm again. The length of the gap is also determined by last your stopping point. I've gotten it anywhere from basically none (fans spin down and spin up immediately) up to 1s, but it never goes above that. Edit: tested to stop at 0.5-1s gap, but that seems to have no effect on the initial position. Also tried variable timeouts - seems for EC its no different, with variable its unpredictable, constant value may be required afterall. For now its seems the only way to start off the bat for sure is to know internals of EC - or at least get a fan RPM sensor readings which we do not have.
2. When OHW 0.6 is not started, IdeaFan throws errors (need to check for them), only at COLD first start. See http://forum.techinferno.com/lenovo-ibm/7358-ideafan-y510p-6.html#post102492 (should be fixed in 1.5)
3. Introduce easy HotKey settings in INI file (like Ctrl=yes, Alt=yes, Key=q) and let change the hotkey. Also handle hotkey cannot bind error.