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.
Problems? See this thread at archive.org.
 Next page →

    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:
    886
    Messages:
    5,569
    Likes Received:
    2,118
    Trophy Points:
    331
    A command-line app that allows you to take over fan control in many Dell laptop/notebook computers.

    This program is part of a suite of tools called DellFanManagement.

    See the current release at: https://github.com/AaronKelley/DellFanManagement/releases
    Source code available at: https://github.com/AaronKelley/DellFanManagement
    Old, unmaintained C++ version is available at https://github.com/AaronKelley/DellFanCmd.

    This project uses the SMM I/O driver developer by 424778940z and is derived from the "Dell fan utility" GUI app, also by 424778940z.
    https://github.com/424778940z/bzh-windrv-dell-smm-io
    https://github.com/424778940z/dell-fan-utility
    There is prior discussion of these tools as well as development chatter about this tool in this thread:
    http://forum.notebookreview.com/thr...ol-fans-on-dell-laptops-under-windows.805317/

    424778940z's tools seem to be derived from Linux work done on fan control, including the "i8k" driver, and these projects:
    https://github.com/clopez/dellfan
    https://github.com/TomFreudenberg/dell-bios-fan-control

    Note: I am interesting in offsetting the cost of the certificate used to sign the driver, which was $75. I have already received donations, and the remaining amount is $15. I will remove this line once the cost has been offset. If you have found this tool helpful and would like to consider chipping in a few bucks, send me a PM. Thanks to @MikeR_Va, @maffle, and @ja14000 for contributions so far.

    This tool basically just allows you to tell the EC (embedded controller) in the laptop to let go of fan control. Once this is done, a tool like SpeedFan or Hwinfo64 can be used to control the laptop fans. You can set up your own temperature thresholds for fan behavior based on your own preferences.

    Note that without the EC controlling the fans, only three fan levels are available, which I will call "0%", "50%", and "100%". Some systems have more granular fan control while the EC is in charge, but you cannot change the behavior other than picking a thermal profile in Dell Power Manager. Also note that the fans' actual maximum speed may be higher than what you get if you set the speed to "100%". For example, in the Precision 7530, setting the speed to "100%" puts the fans at 4200 RPM, but if the EC is in charge of the fans and the system is under load it may push the fans up to 4800 RPM.

    Supported systems

    The list of systems with confirmed support can be found in this post. It should work with virtually all modern Dell laptops (with Intel Core 2nd gen / Sandy Bridge CPU or newer).

    Requirements

    64-bit Windows OS support only
    (There are reports of BSOD with Windows 7, you might need Windows 10.)
    .NET Framework 4.8
    Visual C++ 2019 redistributable: https://aka.ms/vs/16/release/vc_redist.x64.exe

    This guide assumes you are at least a little bit command-line savvy. If you'd rather use a GUI app, you can use the one from the original thread. Replacing bzh_dell_smm_io_x64.sys with the version from the DellFanCmd download will allow it to run without test signing mode enabled. (You still will need to make the registry change mentioned below.)

    Initial setup

    I purchased a digital code-signing certificate to sign the Dell SMM I/O driver by 424778940z so that "test signing mode" or the "disable driver signature enforcement" option is not required. However, because the driver does not have an EV certificate from Microsoft, it will not load if UEFI secure boot is enabled so you must take additional steps. The easiest way is to apply this registry change:
    Code:
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CI\Policy]
    "UpgradedSystem"=dword:00000000
    You must reboot your system before the change will take effect.

    Additional information and possible alternate solutions can be found here:
    https://www.geoffchappell.com/notes/security/whqlsettings/index.htm

    Note that this creates a minor security risk. This will allow any signed driver to be loaded, even if it does not have an EV certificate from Microsoft. Note that Microsoft did not start requiring EV certificates until Windows 10 1607 ("Anniversary Update") in mid 2016.

    Once this is taken care of, you can pass one of these options to DellFanCmd to tell it what you would like it to do.
    Example:
    Code:
    DellFanCmd.exe ec-disable
    This will tell the EC to let go of fan control and set the fans to run at "100%" (until your fan management tool takes over). You should immediately be able to control the fans with SpeedFan at this point.

    Code:
    DellFanCmd.exe ec-enable
    This will tell the EC to take over fan control again.

    Note: DellFanCmd.exe must be run elevated / "as administrator".

    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)
      test                    Try turning EC fan control off,
                              and record the fan RPM at different levels.
      rpm-fan1                Report RPM for fan 1
      rpm-fan2                Report RPM for fan 2
                              (RPMs are reported via status/error code)
    
    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 EC disable or enable commands to attempt alternate method.
    (Example: ec-disable-alt)
    The purpose and behavior of the "alternate method" is unknown to me but it might help if you find that the "regular" method does not work. The projects linked above have reference to it so I kept it in.
    Edit — One user reports being locked to a low CPU clock speed with the "regular" method, but not with the "alternate" method

    When you disable EC control of the fans, this appears to stick past reboots (unless you go into the BIOS setup and make a change). To restore everything back to the original state, you must fully shut down the system.

    SpeedFan configuration

    =====================
    [Edit] - I wanted to mention that I stopped using SpeedFan to manage the fans. I'm using DellFanKeepAlive instead. But I'm leaving the SpeedFan directions here if anyone would like to see how I used to have it set up or use SpeedFan themselves.
    =====================

    SpeedFan has some documentation on setting up a fan control profile here: http://www.almico.com/sfarticle.php?id=5

    The key thing to realize here is that even though you can adjust the PWM on a spectrum from 0% to 100%, the fan will actually only run at one of three speeds ("0%", "50%", and "100%"). So setting up a nice graceful fan curve won't benefit you at all. What you need to do is decide at which temperature levels you would like the fan to run at which of the three speeds.

    To get started with the SpeedFan setup:

    Go to "Configure" and then "Options" and then "Enable DELL support". Hit "OK" and then fully exit and restart the program. You should now be able to see the current fan level on the main screen, and even adjust the fans by changing the Pwm values on the main screen.

    Click "Configure" again. On the "Temperatures" tab, uncheck any temperatures that you are not interested in. For the remaining ones, click them and change the "warning" temperature to be very high (90 or 100 °C). The reason for this is, once automatic fan control is turned on, it will automatically set all of the fans to 100% if any of the "warning" thresholds are hit, regardless of the fan configuration that you have set up.

    Go to the "Fan Control" tab and check the box for "Advanced fan control". Then, add a fan controller. You will want one fan controller for each fan and you can name them appropriately. I first set this up on the Precision M6700, which has one fan clearly intended to be the CPU fan and the other clearly intended to be the GPU fan, so I named the controllers accordingly.

    [​IMG]

    For each controller, make sure to check the "Controlled speed" box (or it will do nothing) and then select which fan you would like it to control from the drop-down. Set the "Method" to "MAX of speeds" and not "SUM of speeds".

    Then you can "Add" temperature sensors and specify how you want the fan to behave for each one. With "MAX of speeds", if any of the thresholds that you set trigger, then it will run the fans at that level. I wanted to have it run the CPU fan at "50%" all of the time, unless the temperature hits 85 °C, and then it will kick it up to "100%", so the curve for each of my CPU temperature sensors looks like this:

    [​IMG]

    "Hysteresis" is a second threshold to prevent the fans from constantly changing speeds if the temperature is right around a threshold. Basically, with this configuration, the fans will go to "100%" if a CPU core reaches 85 °C, and then it won't go back down to "50%" until the temperature drops to 70 °C (a drop of 15 °C).

    (Because there is also a heat pipe from the GPU to the CPU fan, I have a sensor there to kick the CPU fan up to max if the GPU temperature exceeds 90 °C, which doesn't happen under regular use.)

    For the GPU fan, I wanted it to sit at "0%" until the GPU temperature reaches 65 °C. Then, it runs at "50%" until the temperature reaches 85 °C, and higher than that it will run at "100%". So, the fan curves look like this:

    [​IMG]

    [​IMG]

    (You could do this with a single curve but it is hard to be precise with the temperatures that way.)

    Once you have everything set up, you can go back to the main window and check the "Automatic fan speed" checkbox, and SpeedFan should take over fan control according to the options that you have set. You can make further changes under "Advanced fan control" and they will be applied as soon as you hit "OK".

    I recommend checking the "Minimize on close" option under the Options tab in "Configure", so that SpeedFan will just run in the tray after you close it and do its job in the background.

    Automatic integration

    This is my goal here:

    When you log into Windows, SpeedFan should fire automatically, and then the EC should be asked to let go of fan control so that SpeedFan can manage it. This should persist for your whole session. If you log out or reboot the system, fan control should go back to the EC because SpeedFan won't be managing the fans anymore. I set up three tasks in Task Scheduler for this.

    1. Disable EC fan control at login.
    I made a task with "At log on" of "specific user" (myself). It runs this script.
    Code:
    @ECHO OFF
    
    ECHO Waiting for SpeedFan...
    START "" /B "C:\Program Files (x86)\SpeedFan\speedfan.exe"
    sleep 75
    DellFanCmd.exe ec-disable
    pause
    This basically starts SpeedFan, waits 75 seconds (plenty of time for it to load all of the sensors and get ready to go), and then disables EC fan control. SpeedFan takes over right away. I have SpeedFan configured to start minimized.
    Note, the "sleep" command is not built in to Windows. You can get it by installing the Windows Server 2003 resource kit. https://www.microsoft.com/en-us/download/details.aspx?id=17657
    The "pause" command just adds a "press any key to continue" prompt before the command window goes away. So, I can see the output of DellFanCmd before it automatically disappears.

    The solution survives sleep but it does not survive hibernate. So...
    2. Disable EC fan upon resume from hibernate.
    I made a task with "On an event" trigger. It is set to run only if I am already logged in. The event is, Log: System, Source: Kernel-Power, Event ID: 107. It just runs: DellFanCmd.exe ec-disable
    (SpeedFan is already running.)

    3. Return fan control to the EC upon logout.
    The trickiest one. There's no clear event to trigger off of for logout. Also, I want to make sure that it is only when *I* log out and not other users (I'm not the only one who uses my laptop).

    I ended up with this. A task set to run "whether or not I am logged in", with a custom event filter trigger:
    Code:
    <QueryList>
      <Query Id="0" Path="System">
        <Select Path="System">
            *[System[Provider[@Name='Microsoft-Windows-Winlogon'] and (EventID=7002)]]
            and
            *[EventData[Data[@Name='UserSid'] and (Data='S-1-5-21-1686773459-1707497739-4133313906-1001')]]
        </Select>
      </Query>
    </QueryList>
    This captures a logout event entered by Microsoft's Windows telemetry service. The Data='S.....' is my Windows account SID. You'll have to adjust it for your own SID.
    It just runs: DellFanCmd.exe ec-enable

    I also added this to the "Shutdown script" (gpedit → Windows settings → Scripts) because the scheduled task will (sometimes?) fail when the system is shutting down or rebooting.

    When setting up scheduled tasks, pay attention to the option that is enabled by default which prevents them from running if the system is on battery power. All tasks need to be set to run with "highest privileges".


    That is all. Let me know how it works for you, and let me know if you have any suggestions/tips and I may integrate them into this post.
     
    Last edited: Apr 22, 2021
  2. Danishblunt

    Danishblunt Guest

    Reputations:
    0
    Very neat, thanks for sharing!
     
  3. maffle

    maffle Notebook Evangelist

    Reputations:
    179
    Messages:
    545
    Likes Received:
    509
    Trophy Points:
    106
    Can confirm it dosnt work properly anymore bios >= 1.7.0 on the 9570. So I will stay on 1.6.0 (forever?), where it works awesome so far. You have a paypal? I would donate $10 to the certificate bucket even my bank account is in minus :)
     
  4. Aaron44126

    Aaron44126 Notebook Prophet

    Reputations:
    886
    Messages:
    5,569
    Likes Received:
    2,118
    Trophy Points:
    331
    I haven't experienced any BSOD while working on this.

    Can you run BlueScreenView and take a screen shot with the memory dump created when your BSOD happened selected? (Try to get as many columns on the screen as you can)

    I believe that the M6500 is older than any systems that I have on the confirmed working list. I'm sure that there is a lower-bound to support, and maybe you found it...
     
    Last edited: Jan 21, 2019
  5. maffle

    maffle Notebook Evangelist

    Reputations:
    179
    Messages:
    545
    Likes Received:
    509
    Trophy Points:
    106
    Will these always be executed as admin?

    https://i.imgur.com/SIRTvMU.png so that is enough?
     
  6. Aaron44126

    Aaron44126 Notebook Prophet

    Reputations:
    886
    Messages:
    5,569
    Likes Received:
    2,118
    Trophy Points:
    331
    These will be run as admin. Actually I'm not sure if calling the .exe file like that will work (I suspect it will...). Mine is actually running a batch file that sends the text output to a file so I can check to see what happened...

    Code:
    @ECHO OFF
    
    REM Make sure that we are in the right place.
    C:
    cd C:\Full\path\to\DellFanCmdFileLocation
    
    REM Hand fan control back to the EC.
    DellFanCmd.exe ec-enable > DellFanCmd-Stop-Output.txt 2>&1
     
    maffle likes this.
  7. powerslave12r

    powerslave12r Notebook Evangelist

    Reputations:
    1
    Messages:
    539
    Likes Received:
    39
    Trophy Points:
    41
    Thank you for this, I will try this out on the Precision one of these days.
     
    Spartan@HIDevolution likes this.
  8. cloud023

    cloud023 Notebook Guru

    Reputations:
    10
    Messages:
    74
    Likes Received:
    37
    Trophy Points:
    26
    Losing brightness control on a 9560 via keyboard when enabled. Works again when disabled
     
    Spartan@HIDevolution likes this.
  9. Aaron44126

    Aaron44126 Notebook Prophet

    Reputations:
    886
    Messages:
    5,569
    Likes Received:
    2,118
    Trophy Points:
    331
    This has also been confirmed occurring on a 9360. I don't have any XPS machines so I can't even begin to investigate. Though, it seems that the EC must be involved in brightness control and disabling EC fan control also disables this feature.

    Not sure if trying the "alternate" method would help?

    It's a hassle but I understand that you can get brightness control back by simply rebooting. EC fan control will remain disabled.
     
  10. MikeR_Va

    MikeR_Va Notebook Enthusiast

    Reputations:
    1
    Messages:
    21
    Likes Received:
    5
    Trophy Points:
    6
    My experiments so far with the 9360 suggest the following:

    1. Disabling the EC will kill control with the F11/F12 keys. This can be restored in session using ClickmonitorDDC, which I like better anyway -- much more granular control.

    2. If you install Clickmon, you will maintain control through modern sleep sessions IF ON AC POWER. But when I pull the plug, there's a consistent loss of control when the XPS wakes thereafter.

    3. If you just kill modern sleep and treat hibernation as the new S3 sleep, you will maintain control of brightness. Of course, when I wake up from that, the print reader pretty consistently doesn't work. There's always one more glitch . . .

    I should be able to fall back a couple of BIOS versions to the last one where Dell had a force S3 sleep option. I don't know if that would work better, because I've not had time to test it yet. I'd rather S3 than modern sleep anyway for my use case, so I'll likely try it at some point.

    Interested to compare notes to see if this is consistent across XPS machines and generations. . . .
     
    Spartan@HIDevolution likes this.
  11. GeekZilla.com.br

    GeekZilla.com.br Newbie

    Reputations:
    0
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    5
    I just gotta say, this is amazing, it´s everything the community was asking for.

    Also I must add the speedfan is the way to go, HWInfo fan control is really simple and lacks advanced options to have a bios like automatic control of the fans.

    Gonna PM the OP author cause he deserves a few bucks for sure. Great work!
     
    Last edited: Feb 1, 2019
  12. Atom Ant

    Atom Ant Hello, here I go again

    Reputations:
    1,340
    Messages:
    1,497
    Likes Received:
    272
    Trophy Points:
    101
    This finally works with my Dell Inspiron 5577 and Windows 7. Until 60C I won't here again fan noise :). Any idea how to turn off the 2nd spinning HDD? I have my system running from SSD, so the HDD should not operate unless I want access something. In advanced power settings I can set to turn it off after 1 minute of inactivity, but something in the background spins it up time to time.
     
  13. Aaron44126

    Aaron44126 Notebook Prophet

    Reputations:
    886
    Messages:
    5,569
    Likes Received:
    2,118
    Trophy Points:
    331
    Unfortunately no for the HDD, Windows has built-in options for this as you have found. You'll have to figure out what process is using it and see if you can shut that down. (Process Monitor can do this.) Windows does so much background stuff now...
     
  14. KaNeT

    KaNeT Newbie

    Reputations:
    0
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    5
    Working fine on a 7000 series 2-in-1 7779 Inspiron, Windows 10 x64, lastest BIOS - 1.26 (?).

    I had to create the registry key, but everything else was fine.

    Threshold set at 60° on CPU, I mostly use the laptop to code, so no fan noise at all!

    Thanx a lot !
     
  15. blastart

    blastart Newbie

    Reputations:
    0
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    5
    It works very well on a Dell 5379 Inspiron too. Thank you very much for your great effort.
     
  16. Yeet

    Yeet Newbie

    Reputations:
    0
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    5
    I have an issue whenever I disable the EC fan control

    Basically whenever it's disabled attempting to put the laptop to sleep instantly shuts it off

    Fan control, screen brightness etc works but just not sleep

    I'm using a Dell precision m4600 with windows 10
     
  17. Aaron44126

    Aaron44126 Notebook Prophet

    Reputations:
    886
    Messages:
    5,569
    Likes Received:
    2,118
    Trophy Points:
    331
    Have you tried the alternate mode? (Not sure if it'll make any difference.)
     
  18. kekkis

    kekkis Notebook Enthusiast

    Reputations:
    0
    Messages:
    10
    Likes Received:
    1
    Trophy Points:
    6
    Great job with this tool. I ran it with my 9360 i7 8550u and it did disable fan control and left fan running at 100%. But it also locked cpu clocks to 1,39ghz. I then used the alt mode and then it released the cpu to normal. Another observation from this is that my eternal problem with the cpu throttling to 0,89ghz on battery power is also gone. I can't say 100% if its from disabling the ec stuff or just better cooling because of 100% fan. I would still say its more to do with whatever gets disabled when i run ec-disable-alt than the cooler cpu. For me the keyboard lighting buttons still worked when using this tool.
     
    Last edited: Feb 14, 2019
  19. mnewxcv

    mnewxcv Notebook Enthusiast

    Reputations:
    0
    Messages:
    48
    Likes Received:
    5
    Trophy Points:
    16
    I am not a complete noob to registry editing, but I guess I am compared to everyone else in this thread. When you say make the following change with the 'UpgradedSystem' key, is that done by going to that registry folder and selecting new-> key? The options I see are new->key; string value; binary value; dword 32 bit; dword 64 bit; qword; multi string value; expandable string value. Which of these do I select?
     
  20. Aaron44126

    Aaron44126 Notebook Prophet

    Reputations:
    886
    Messages:
    5,569
    Likes Received:
    2,118
    Trophy Points:
    331
    Navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CI\Policy.
    Create a new key, DWORD 32-bit (name: UpgradedSystem)
    Set the value to 0.
     
    mnewxcv likes this.
  21. mnewxcv

    mnewxcv Notebook Enthusiast

    Reputations:
    0
    Messages:
    48
    Likes Received:
    5
    Trophy Points:
    16
    worked perfectly, thank you. I was trying this to see if it would prevent throttling of the CPU while on battery (as in some cases it has been said to do this). Still throttles down to 15w for CPU power on Dell 7588/8750h. Fan control works perfectly though.
     
  22. Simon Simončič

    Simon Simončič Newbie

    Reputations:
    0
    Messages:
    1
    Likes Received:
    1
    Trophy Points:
    6
    It also works nicely with my G5 5587 after some modifications.
    There are two things that I think are worth mentioning for anyone with the same model:
    - Observed Pwm levels for my laptop are:
    0% - 0 RPM
    35% - 2200 RPM
    70% - 4750 RPM
    100% - 5050 RPM (only after ec-disable)
    Both fans will run at 100% (5050 RPM) only after "DellFanCmd.exe ec-disable", when speed drops to lower level you cannot go higher than 70% (4750 RPM), unless you ec-enable and ec-disable again.
    - SpeedFan kinda works even without "DellFanCmd.exe ec-disable" but you can hear that the EC is fighting for control with SpeedFan every second, which can result in a situation where SpeedFan is telling the fan to go to 0% and EC is telling the fan to go to 30% every second. With me that was happening when pause command executed during startup script so I set it to a small value of 5 seconds and I also used ec-disable-nofanchg argument so that fans dont start with 100%.
    I hope this helps someone.

    I have it set up so that fans are disabled under 60°C so no fan noise when idling or browsing. :)

    Thank you Aaron44126, great stuff!
     
    Last edited: Mar 18, 2019
    Maleko48 likes this.
  23. DerMarkus

    DerMarkus Notebook Geek

    Reputations:
    0
    Messages:
    84
    Likes Received:
    18
    Trophy Points:
    16
    Dell 7730 with bios 1.7:
    Fan control works very well after a clean restart. After hibernate executing 'DellFanCmd.exe' has no effect anymore. This means: Program executes with success but fans do not go to max speed after 'ec-disable' and control is not possible by SpeedFan anymore. Any hints ?
     
  24. Aaron44126

    Aaron44126 Notebook Prophet

    Reputations:
    886
    Messages:
    5,569
    Likes Received:
    2,118
    Trophy Points:
    331
    I am unable to reproduce this on Precision 7530 with BIOS 1.7.0. After EC control has been disabled and then a hibernate and resume, the system is in the same state that it is after a clean boot; EC is controlling fans and SpeedFan cannot, and after running "DellFanCmd.exe ec-disable", the EC lets go and SpeedFan's control works.
     
  25. TheQuentincc

    TheQuentincc Notebook Evangelist

    Reputations:
    86
    Messages:
    683
    Likes Received:
    222
    Trophy Points:
    56
    Hi, I tested on my M6700 and it result to a BSOD, I have installed the the Visual C++ 2017 redistributable and downloaded the 1.0.0 release, I unzip the release, I open CMD with admin right, I cd to the folder then neither DellFanCmd.exe ec-disable nor the alternative one work, they both gave me BSOD.
    I'm running 3820QM/16Gb/K4000M on windows 7 64 bits Home with A19 bios.

    It work "well" on precision 3510, the only thing that is not working when the "ec" is disabled is the screen brightness control throught the keyboard, since 3510 and E5570 share the same motherboard (like only few thing were differend I think it also work on the E5570 then on the E5x70, it work so well that I manage to push to 3.6GHz my I7 6820HQ and got 811pt on cinebench R15 :D
     

    Attached Files:

  26. Aaron44126

    Aaron44126 Notebook Prophet

    Reputations:
    886
    Messages:
    5,569
    Likes Received:
    2,118
    Trophy Points:
    331
    Strange since I am mostly using this on my M6700 (its annoying fan behavior is the reason I put in the effort to get this out) and it works great for me. I will admit that I have not tried it on Windows 7, though...

    [Edit]
    @User32, were you using Windows 7 on your M6500 when you tried this tool and got BSOD?
     
  27. TheQuentincc

    TheQuentincc Notebook Evangelist

    Reputations:
    86
    Messages:
    683
    Likes Received:
    222
    Trophy Points:
    56
    So I tried with windows 10 and it work, I don't know if it's about windows 7 in general or it's because my windows 7 installation is somehow "corrupted", I swaped many time my msata (= windows 7) SSD between my M4700 and M6700 so maybe something happen.
    I guess this is the thing that could motivate me to switch to windows 10 LTSC on this computer
     
  28. ja14000

    ja14000 Notebook Enthusiast

    Reputations:
    5
    Messages:
    15
    Likes Received:
    6
    Trophy Points:
    6
    @Aaron44126

    Thanks for your hard work, the driver has been working well for me using on a 9560. I've noticed one issue though, if the driver is active the F11 and F12 brightness keys no longer work. Pressing them does nothing but once the driver is disabled it seems like many of the F11 and F12 key presses that were ignored/held back all come through at once. Do you have any ideas on where I can start looking for a fix?
     
  29. Mnky313

    Mnky313 Notebook Enthusiast

    Reputations:
    0
    Messages:
    30
    Likes Received:
    1
    Trophy Points:
    16
    Can confirm works on M6700 (which you already knew) and Inspiron (Gaming) 7559.
     
  30. Vankulas

    Vankulas Newbie

    Reputations:
    0
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    5
    Thank you Aaron a lot for your work! :) This EC driver works quite flawlessly for my Dell G5 5587. With combination of well set up and calibrated SpeedFan and its fan curves it works much better than original Dell fan control management. (Silent laptop at low CPU and GPU loads, and much better and nimble cooling at high system loads.)

    But there are two important things to emphasise:
    • First is about SpeedFan. It is quite necessary to run SpeedFan as application with high CPU priority! Otherwise it won't be responding properly at the times of high CPU loads. (And therefore it won't be controling fans properly at those times.)

      If you start SpeedFan at startup via Task Scheduler or .bat file without further specification, it is usually running with below normal CPU priority. And that's not good at all. Therefore I strongly recommend to add /high command into the script for running it with high priority:
      Code:
      start "" /high "C:\Program Files (x86)\SpeedFan\speedfan.exe"

    • And the second thing is about the scripts for running your DellFanCmd app. For me it works 100% properly only if there is fully specified path to the application. (In my case C:\DellFanCmd.)

      For example after sleep, this script works fine to disable Dell EC fan control again:
      Code:
      C:
      cd C:\DellFanCmd
      DellFanCmd.exe ec-disable
      whilst this another, shorter option doesn't work (it seems to work, but actually does nothing):
      Code:
      DellFanCmd.exe ec-disable
      So maybe it would be better to use those full path options in all your examples, too. To eliminate malfunction possibilities for other users. :)

    Thanks a lot again! Cheers! :)
     
  31. Aaron44126

    Aaron44126 Notebook Prophet

    Reputations:
    886
    Messages:
    5,569
    Likes Received:
    2,118
    Trophy Points:
    331
    If you're using Task Scheduler, put the C:\DellFanCmd in the "Start in" field and then you won't need to switch directories in the script.
    I do think that it is not a bad idea to add "high priority" to the SpeedFan process but I haven't had an issue with SpeedFan controlling the fans even under high CPU load. I think that it would only be an issue if you are running your CPU-busy task at above normal priority.
     
  32. scavenger007

    scavenger007 Newbie

    Reputations:
    0
    Messages:
    3
    Likes Received:
    1
    Trophy Points:
    6
    I ran speedfan (on my Dell 7588) in high priority mode and noticed that it's temperature reading lagged the readings from Throttlestop. The throttlestop readings are more realtime, whereas the speedfan readings seem to be sampled every 1-2 seconds. Have any of you have similar experience?
     
  33. Aaron44126

    Aaron44126 Notebook Prophet

    Reputations:
    886
    Messages:
    5,569
    Likes Received:
    2,118
    Trophy Points:
    331
    Same here, Speedfan does not sample super fast; however, I haven't found it to be an issue when it comes to fan control.
     
  34. nepO

    nepO Notebook Guru

    Reputations:
    10
    Messages:
    50
    Likes Received:
    9
    Trophy Points:
    16
    I have tried your app on my 7520. Here is what I have to report:
    1. Both methods (main and alternative) work.
    2. Once EC is disabled, LCD brightness cannot be controlled anymore.
    3. To re-enable brightness control I have to either press "System Auto" button in HWiNFO or to enable EC.

    It also looks like HWiNFO allows to set manual fan speed without using your app (or when I enable EC using your app). Am I missing something obvious here?
     
    Last edited: May 20, 2019
  35. Aaron44126

    Aaron44126 Notebook Prophet

    Reputations:
    886
    Messages:
    5,569
    Likes Received:
    2,118
    Trophy Points:
    331
    hwinfo has been updated to use the same method that this command-line tool uses to disable EC fan control. So, if you want to use hwinfo, you do not need the command-line tool.
    You still must use the tool if you want to have SpeedFan manage the fan speed.
     
  36. GiorgioBera

    GiorgioBera Newbie

    Reputations:
    0
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    5
    I have tried on my Dell Inspiron 15 7559 and I got the following issue:

    The SpeedFan tool doesn't work very well, without changing any parameter it makes lag on youtube video. Maybe because my laptop doesn't support SpeedFan, should I try another fan tool? Anyone has some suggestions ?

    However the DellFanCmd works fine, thank you so much.
     
    Last edited: Jun 2, 2019
  37. montcer9012

    montcer9012 Newbie

    Reputations:
    0
    Messages:
    4
    Likes Received:
    0
    Trophy Points:
    5
    Hello everyone, I hope you are doing well.

    @Aaron, thanks for taking time to share all this knowledge, it is very appreciated.

    @Everyone, I just signed in because I wanted to post some comments. I have a Dell G3 3579, which is getting overheated since a while and quite frankly I am worried as the warranty already expired.

    It is overheating at the point that the surface in the keyboard gets warm by only using the system, specially when the CPU and GPU are located. Not HOT UNTOUCHABLE but it is uncomfortable to be this hot only by doing some normal computing (surf the web, work with Excel, Word, Outlook, nothing too stressfully for the system), specially when this wasn't something that happens before, but the obvious exception of gaming, that have a heavy CPU / GPU usage.

    It is important to point out that Windows (10x64 Pro, updated to date) does not report a high CPU / GPU usage. Look at my current temperatures while posting this post, with only the browser consuming any stressful resource:
    OneDriveImage
    [​IMG]

    Anyway, I am trying to control the fans with SystemSpeed but I think I am not able to get it completely controlled. The program says that PWD is at 100 at something close to 5000rpm, but even at that point the system gets warm/hot. Either way, I said I think the program isn't fully controlling the fans because if I set both PWD to 0, after 1 or 2 seconds the system will auto start it at a very high speed registering like 7000rpm in the program.

    What I want is to:
    1. Know the cause of this sudden overheating. What should I do to acknowledge the origen of it?
    2. To really control the fans speed and set it to 7000rpm (or more) by default. I do not care at all of my laptop being nosy because I mainly use it in my house.

    So, any help or hint may be really appreciated.

    Regards.
     
    Last edited: Jun 30, 2019
  38. TheQuentincc

    TheQuentincc Notebook Evangelist

    Reputations:
    86
    Messages:
    683
    Likes Received:
    222
    Trophy Points:
    56
    Hi, do you consider replacing thermal paste on CPU and GPU ? something like noctua NT-H2 will give you a big reduction of temperature :)
     
  39. montcer9012

    montcer9012 Newbie

    Reputations:
    0
    Messages:
    4
    Likes Received:
    0
    Trophy Points:
    5
    Thanks for your suggestion, @ TheQuentincc

    I would rather solve the problem with a sofrware relate solution as I am not comfortable opening the laptop / giving it to someone to open it.

    After my previous post, I did update the system BIOS and the DELL framework programs, and I did disable Intel TurboBost in the BIOS option, and now I have a HEAVY reduction of temperature. I also set the fans to be in "Ultra Performance" in the DELL Power Management Thermal Configuration and they are up and running all the time.

    However, how do I know if I am really using these fan max speed? Because they are very slow to be honest. If I had to open that laptop, I would like to replace these fans with a more adequate fans for that CPU and GPU.
     
  40. DoctorRzepa

    DoctorRzepa Notebook Guru

    Reputations:
    0
    Messages:
    71
    Likes Received:
    13
    Trophy Points:
    16
    I guess you could have air vents cluttered with dust. If you do not want to open your machine, turn it off and put running vacuum cleaner hose on the air INTAKES. Try to slide it around intake holes, one at a time, making "o" patern. If some dust "strings" will start coming out of those holes, continue doing that until it's gone. You can help yourself with tweezers to pull them out.

    If there's no dust, you may try clean installation of Windows. If that won't help, you should repaste your laptop. Eventually call Dell Customer Service and tell them that your laptop heats so much that it shuts down itself. They should send technician to do the job for you.
     
  41. Aaron44126

    Aaron44126 Notebook Prophet

    Reputations:
    886
    Messages:
    5,569
    Likes Received:
    2,118
    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.
  42. 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 ! ;) ;) ;)
     
  43. Aaron44126

    Aaron44126 Notebook Prophet

    Reputations:
    886
    Messages:
    5,569
    Likes Received:
    2,118
    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
  44. 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.
  45. ha1o2surfer

    ha1o2surfer Notebook Evangelist

    Reputations:
    75
    Messages:
    556
    Likes Received:
    121
    Trophy Points:
    56
    wow that is smart.
     
  46. 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).
     
  47. 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
  48. 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.
     
  49. Aaron44126

    Aaron44126 Notebook Prophet

    Reputations:
    886
    Messages:
    5,569
    Likes Received:
    2,118
    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.
  50. Aaron44126

    Aaron44126 Notebook Prophet

    Reputations:
    886
    Messages:
    5,569
    Likes Received:
    2,118
    Trophy Points:
    331
 Next page →