The Notebook Review forums were hosted by TechTarget, who shut down them down on January 31, 2022. This static read-only archive was pulled by NBR forum users between January 20 and January 31, 2022, in an effort to make sure that the valuable technical information that had been posted on the forums is preserved. For current discussions, many NBR forum users moved over to NotebookTalk.net after the shutdown.

DellFanCmd – Tool to enable manual/custom control of the laptop fans

Discussion in 'Dell' started by Aaron44126, Jan 21, 2019.

  1. Aaron44126

    Aaron44126 Notebook Prophet

    Reputations:
    879
    Messages:
    5,549
    Likes Received:
    2,070
    Trophy Points:
    331
    New release of DellFanCmd: 1.0.1
    You can now set a specific fan to a specific level/speed manually using the tool.
    Other than the new commands added to handle this, there are no additional changes.

    Example use case: If I'm doing light/office work, I want to just let the fans run at 50% speed for consistency and let the CPU thermal throttle if necessary; and, if I know that I'm going to need CPU power, I will just turn EC fan control on and let the system manage it.

    https://github.com/AaronKelley/DellFanCmd/releases/tag/1.0.1

    Code:
    Available commands:
      ec-disable              Turn EC fan control off (fan goes to manual control)
      ec-disable-nofanchg     Turn EC fan control off and don't change the fan speed
      ec-enable               Turn EC fan control on (fan goes to automatic control)
    
    After EC fan control is off, you may use:
      fan1-level0             Set fan 1 to level 0 (0%)
      fan1-level1             Set fan 1 to level 1 (50%)
      fan1-level2             Set fan 1 to level 2 (100%)
      fan2-level0             Set fan 2 to level 0 (0%)
      fan2-level1             Set fan 2 to level 1 (50%)
      fan2-level2             Set fan 2 to level 2 (100%)
    
    Append "-alt" to any command to attempt alternate fan control method.
    (Example: ec-disable-alt)
     
    Last edited: Aug 13, 2019
    powerslave12r and t456 like this.
  2. Corelatis

    Corelatis Newbie

    Reputations:
    0
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    5
    First of all i wanna say "TNANK YOU VERY MUCH" to Aaaron for this great app. Gotta old but mint M4700. Original EC fan control schematics is most terrible i ever seen before. Actually i was very sceptic from the very start. As I am a noob, I did not find original .SYS file to replace with if it exists, so i just put both package files in one dir. And it worked for me like a charm from Cmd prompt.

    As M4700 has only three fan power states, i decided to use app with HWINFO64. The only problem was that with autostart minimised it did not run Custom Fan window to take over control on fans. I added a string to the end of HWINFO.ini - OpenFanCtrlMin=1
    Now, once DellFanCmd is engaged, i can run HWINFO64 minimised and it works just fine.
    I set CPU fan to 0% (0-75 deg), 50% (75-92), 100% (92+). Same to GPU, but 10 degrees lower.
    10 Seconds Spindown is enough to cool CPU enough for Zero state again.

    For me, Original EC state not coming back itself neither on Log Out, Sleep, Hibernate, nor on Restart.
    Well, actually i don't care, why. I made three tasks in task scheduler:

    DellFanCmd ec-enable - (Triggers at system Startup) - Reenables original EC on early Startup.
    DellFanCmd ec-disable - (Triggers at Logon Of Any User) - Disables original EC Before Logon Screen.
    HWINFO64.exe - (Triggers at Logon Of Any User) - runs simultaneously and takes over fan control.

    Now it Works As I Always Wanted: - Smooth And Silent !

    THANK YOU VERY MUCH, AGAIN ! ;););)
     
  3. Aaron44126

    Aaron44126 Notebook Prophet

    Reputations:
    879
    Messages:
    5,549
    Likes Received:
    2,070
    Trophy Points:
    331
    So, I gave up on using SpeedFan to manage the fans. My main goal from this project was to keep the fan noise consistent since the default behavior of the fans cycling on and off on a regular basis is annoying to me. I had SpeedFan set up to keep the fans from going below "50%", which was fine, but the fact that there is no other setting available aside from "100%" means that if any background process churns on the CPU for a while, the fans rev up to max speed... And then you have to choose between having them alternate between medium and high speed regularly, or having a high hysteresis value so it takes a long time for the fans to slow back down, neither of which is ideal.

    I decided that there are really two modes that I want to run the laptop in.
    1. "Quiet mode" which has the fans running at "50%" all of the time, no matter what. I run most of the time in this mode — doing regular computer work, browsing the Internet, coding, watching videos, etc..
    2. "Performance mode" when I know that I am going to be placing demands on the system. In this case, I just hand fan control back to the EC, which allows for more granular speeds based on the load. I can switch to this mode when gaming or doing video encoding or anything else that is going to stress the CPU and, when I actually care about the absolute best performance.

    I set this up for both my home system (Precision M6700) and work system (Precision 7530) and was satisfied. On the Precision 7530, the fans are just about inaudible when running at "50%" (about 2000 RPM), it is a lower speed than they normally operate at when the system is mostly idle for me (which was more like 2500 RPM).

    I figured that in "quiet mode", with the fans running at 50% all of the time, I figured that it would be fine to let the CPU thermal throttle if it got too hot. In practice, this was no good. My Precision 7530 got very hot to the touch on the back side if I let it run like this — I would have to adjust my grip to carry it around. My Precision M6700 didn't get too hot, but I discovered that if I let the CPU run wild without the fan kicking in, the built-in keyboard would stop working until things cooled down. To address this, I am also capping the CPU speed in "quiet mode". This solved my complaints on both systems.

    To handle the speed cap, I am utilizing Windows's power plans. I have the "Balanced" power plan set to "99%" max CPU utilization. This setting actually totally prevents the CPU from entering turbo speeds, so it caps at around 2.6/2.7 GHz in both of my systems. This is totally fine for the type of work that I am doing in this mode, and it solved both of the temperature issues that I mentioned. ("High Performance" plan gets "100%" max CPU utilization, which allows for turbo speeds.)

    Switching modes is done with a pair of batch scripts.

    Quiet mode:
    Code:
    REM Set power plan to Balanced.
    powercfg -s 381b4222-f694-41f0-9685-ff5bb260df2e
    
    DellFanCmd.exe ec-disable-nofanchg
    DellFanCmd.exe fan1-level1
    DellFanCmd.exe fan2-level1
    Performance mode:
    Code:
    REM Set power plan to High Performance.
    powercfg -s 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
    
    DellFanCmd.exe ec-enable
    I created shortcuts to these scripts and pinned them to the Start Menu for easy access. I also set up scheduled tasks to run appropriate scripts at login, at shutdown, after hibernate, etc. as described way up in the first post.

    Actually, I'm working on another project which sets process priority based on user defined rules when new processes are started in Windows. I extended it to also support calling my scripts when certain programs are run. So I don't even have to hit a button to manually switch power modes, it happens automatically if I run certain apps. This project is still pretty early on though so I'm not ready to lay out how to use it.

    Notes:

    * Scripts to switch modes must be run elevated / "as Administrator" or the DellFanCmd commands will not work. (You can right-click on a shortcut to a batch file and selected "Properties" and there is an option in there to run as administrator. Go to the "Shortcut" tab and press the "Advanced" button to see it.)
    * Even with the CPU speed capped at 99% in Windows power options, if the power mode slider (that you see when clicking on the battery icon on the taskbar) is set all the way to the right, "Best performance", it will ignore this and allow the CPU to enter turbo speeds. To avoid this, move it one notch to the left.
     
    Last edited: Sep 23, 2019
  4. ja14000

    ja14000 Notebook Enthusiast

    Reputations:
    5
    Messages:
    15
    Likes Received:
    6
    Trophy Points:
    6
    I just wanted to let you know that this version is working perfectly for me on my 9560. I hate fan noise with a passion, I especially hate the pitch of the fans Dell chose to use in these laptops so my goal is to ensure only turn on when they absolutely need to. I understand that this is likely shortening the lifespan of certain components but I can live with that.

    What I've done:

    - Set up throttle stop profiles that launch a batch script that either enables or disables EC control. (So I can enable/disable fans with a simple double click)

    - Set up task scheduler to bypass UAC on these scripts to get rid of the pop-up.

    - Using the 'Alarm' feature in throttle stop, when the laptop temperature exceeds a certain threshold a batch script is launched that enables EC and disables turbo to allow the laptop to cool off.

    - When I switch to my gaming profile in throttle stop (Keyboard shortcut CTRL+ALT+G) a batch script is launched which enables EC control.

    So now I can disable the fans at any time by switching throttlestop profiles using a keyboard shortcut, I also don't have to worry about forgetting to enable it again when gaming / compiling code since it will be automatically enabled again by throttlestop once the laptop's temp gets high enough

    Anyway enough of my rambling, I can't find the PM button and I'd like to donate part of the cost of the certificate, PM me your PayPal address :)
     
    Maleko48, ha1o2surfer and Aaron44126 like this.
  5. ha1o2surfer

    ha1o2surfer Notebook Evangelist

    Reputations:
    75
    Messages:
    556
    Likes Received:
    121
    Trophy Points:
    56
    wow that is smart.
     
  6. izumitelj

    izumitelj Newbie

    Reputations:
    0
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    5
    Hi and thank you for this great tool/patch :). I just wanted to report that this also works for Dell Inspiron 15R 5521.

    Since upgrading to Windows 10 I had significant problems with the fans. They were always a bit noisy and random on Windows 7, but this is next level crap thermal management. Fans just randomly kick-in at full speed (5100 RPM) and once they do, they never slow down. I tried every possible option in Power options. I have latest OS and BIOS updates. Temperatures measured with HWiNFO are always between 40-70°C and nothing suspicious is going on at all. I'm tired of spending more of my time on debugging and fixing something that manufacturer obviously ignores (there are numerous threads and reports about Dell's thermal management all over the Internet).
     
  7. Crow1598

    Crow1598 Newbie

    Reputations:
    0
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    5
    So far it doesn't work for the alienware 17r4. It succeeds once it taking over the ec but then with something like speedfan I still get the 50% or 100% fan speed (the same as if the ec still had the fans). Whenever I try to unlock the ec again it fails from the cmd. Including the alt method. Hwinfo fan control works amazing for me and I have very granular control, but only 6 temperatures to set speeds for. I closed and exited hwinfo throughout my testing. I will test more later today hopefully and test whatever else you want me too
     
    Last edited: Feb 23, 2020
  8. Tozsl

    Tozsl Newbie

    Reputations:
    0
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    5
    Hello,
    Thanks for your work Aaron.

    I have a 2009 Dell Studio 1555 T9550 Core 2 Duo with ATI Mobility 4570 Graphics.
    I'm using it most of the time from AC adapter, without battery installed.
    The cooling fan has been replaced recently, it works perfectly in Dell's diagnostic tools (Dos based).
    Recently started trying Windows 10 64bit.
    Under windows the fan sometimes just goes 0 RPM (very low), some diagnostic program don't see the CPU fan, or GPU fan.
    Sometimes it has shown different reading for CPU fan and GPU fan at very low rpm, like it had two separate fans.

    Using HWinFO64 before without intel chipset drivers, going to sensors, the program warned me about EC controller,
    made the system sluggish, but it was working and reading sensors.
    Some time later I clicked in HWinFO64's dialog to disregard EC or something like this, then sensor function worked normally, without every previous reading.
    I have installed PM45 chipset drivers (dated 2009), and tried to install dell's video drivers, but reinstalled ATI latest supported catalsyt.
    Now going to HWiNFO64 sensors window, the operating system gives 99% of the time a BSOD : IRQL_LESS_OR_EQUAL.
    I tried using i8kfangui, tried Dell-fan-utility to try to disable the EC controller to no avail.
    The fan sometimes still stops which is kind of annoying.

    I'm planning to do a fresh install documenting more of the symptoms, and my actions.

    Do you think it is possible the driver environment makes it impossible to disable EC?
    Do you think your tool could support this laptop?

    Best regards.
     
  9. Aaron44126

    Aaron44126 Notebook Prophet

    Reputations:
    879
    Messages:
    5,549
    Likes Received:
    2,070
    Trophy Points:
    331
    New release, version 1.1.
    Added the ability to query the RPM value for each fan (returned via output to the console and also via status/error code from the program).

    I am working on a different thermal setup and I need to be able to programmatically access the fan RPM values... This is the first step / proof-of-concept.
     
    custom90gt likes this.
  10. Aaron44126

    Aaron44126 Notebook Prophet

    Reputations:
    879
    Messages:
    5,549
    Likes Received:
    2,070
    Trophy Points:
    331
Loading...

Share This Page