Is there a way to apply the profile every 5 minutes or something? That might be a decent enough solution lol. I don't mind Dell's fan profile if it didnt spin the fan for no reason.
Good point, its probably higher than what I need, but in such emergency situation, I wouldnt really mind.
I will checkout SpeedFan and hwinfo64, thank you for your suggestions![]()
-
Aaron44126 Notebook Prophet
-
Hi!
Thanks for providing the tools DellFanCmd and DellFanKeepAlive!
They've been proving useful to troubleshooting my issue with my M6800 not kicking on fans. I'm not sure exactly for the reason why, but it seems like something is preventing the fans from kicking on properly.
The attached screenshot is of the DellFanCmd test results for my Dell Precision M6800 and specs for my laptop.
Strangely - when using your DellFanKeepAlive program - the fans drop to 0 speed, and don't even kick on at all even with parameters i've set. Everything is being run in administrator mode.
Once I can figure out how to get DellFanKeepAlive running and controlling my fans - i'd love to automate it somehow and run automatically in the background. SpeedFan seems to be working well and configuration of it seems to be the way to go for now. Keep up the great work.
Attached Files:
-
-
Aaron44126 Notebook Prophet
The only stories that I've heard about the M6800 not kicking the fans on are when a newer, unsupported AMD GPU is installed. But it looks like you have an NVIDIA GPU in your system... So I don't know what's going on there. If the EC won't behave then a manual/programmable solution like SpeedFan or HWiNFO64 is the best you're going to get. -
So I have been dissecting the original bin of this tool (the app by 424778940z) and I still don't get how the .sys file interacts with the BIOS. Does it simply override the fan controller or does it rewrite a portion of the BIOS? Or is the fan controller overridden? I spent about 2 hours or so picking over the schematic I have on a M4700 and the fan controller seems to interact with the MEC5055 internal controller, does the .sys override this controller? I know you guys didn't create the original dell_fan_utility package but I am curious if you know how it works?
Thanks for the assistance.
-
Aaron44126 Notebook Prophet
The .sys file is necessary because, in Windows, only kernel-mode code has the privilege to interact with the system in this way. Other tools like Open Network Monitor and HWiNFO64 work similarly, pairing a .sys/driver file with the program in order to allow the app to do the low-level system stuff that it needs.
There is a less restricted WMI interface that does not require a separate driver that is used by the "Dell Power Manager" app, but it's basically the same; an interface to send commands to the BIOS or EC to tell it to do something. I have been successful in using it to send commands to change the thermal mode ("quiet", "ultra performance", etc.) but I was not successful in using it to actually get the EC to give up fan control. It might be possible, and I just don't know what I'm doing... my work on this has basically been stringing together stuff done by other people. -
Something I wasn't aware of before was that Dell offered a BIOS interface tool in the "Drivers and Downloads" section and in the resource files it describes that you can access fan control and/or "fan lvl" (similar to power states) through powershell. Might this be of use?
https://dl.dell.com/FOLDER06837955M/1/DellCommandPowerShellProvider2.4.0_19.zip -
Aaron44126 Notebook Prophet
-
Yea, I wasn't able to get most of the commands to work. A lot of the updated features aren't available on my older models. I did do some batchwork and put together a couple custom logos. My M4600 has the old BIOS logo but modified and the M6700 has the same concept but with the updated logo. I included some screenshots of icons and the shortcuts on my screen(s) if they are of actual interest, and the PNG versions that haven't been translated to icons (for some reason the format is blocked on NotebookReview) are also included.
Attached Files:
-
-
Aaron44126 Notebook Prophet
Do you mind if I use the "dellfan" icon for a future GUI version of the software? (With credit.)
I'm getting plans together ........... I just don't really have time to work on it just now. -
Attached Files:
-
-
Just wanted to thank @Aaron44126 for this, really helped me not pulling out my hair since the WX 4150 doesn't interact well unless flashed.
Here are the results of my Dell Precision M4800, looks like brightness control also doesn't work here either:
-
Aaron44126 Notebook Prophet
-
Cool software. I've been using DellFanKeepAlive for a while, but not for the reason that the fan keeps shutting off, rather, the fan is always at a high RPM when connected to external screens. Weird, but DellFanKeepAlive keeps it at a low RPM. I'd like to see an option to disable the fan threshold and to just disable and enable EC off of temperature management, because sometimes it takes a long while to go back to 2600-ish RPM. It would also be cool to have the possibility to only have 1 fan running at a time instead of both. For light idle work, one fan seems good enough for cooling. When the system is being taxed, I don't mind the start-up sound of the fan because the system is loud in that case anyways.
I might have noticed something interesting. I use a Dell G5 15 which has access to Alienware Command Center, which has a fan control option within it. However, it only allows for a positive offset (as to make the fans run louder), but it is very fine and can increment the fans by 1% at a time - both fans independently. It might be possible to use this control mechanism to make a fully custom curve with 100 possible fan speeds instead of 3. I'm not a developer myself so I have no idea how to research this, but I figured I might bring it to your attention! -
Can you send a download link for your version, if you have one? The one I found from 2018 was able to launch and I could configure power settings but it disabled fan settings.
-
Aaron44126 Notebook Prophet
...However, unless they have made the BIOS interface for this granular fan control more universal than just on G5 and Alienware systems, I do not have any systems that i could test it on... -
-
Many thanks for this tool, it's been really useful. One minor issue I found is that usage shows that this is how I query the fan speed:
Code:fan1-rpm Report RPM for fan 1 fan2-rpm Report RPM for fan 2
Code:else if (args[0] == "rpm-fan1") { getFanRpm = true; fanSelection = FanIndex.Fan1; } else if (args[0] == "rpm-fan2") { getFanRpm = true; fanSelection = FanIndex.Fan2; }
-
Aaron44126 Notebook Prophet
I'll get that fixed. -
This looks great. Definitely trying it on the M4800.
-
kimiraikkonen Notebook Evangelist
Do these tools work properly with DELL LATITUDE E6330 laptop on Windows 10 21H1?
Default fan algorithm is crazy, for example; during browsing the web or typing some text which are basic usage types, the fan intermittently turns on and off erratically based on very minimal and momentarily temp changes causing very annoying windy noise. I just want to set to a lowest and steady fan speed to make it always run even during light usage, OR completely turn it off until CPU reaches the specific temp.
Is that possible? -
Aaron44126 Notebook Prophet
kimiraikkonen likes this. -
kimiraikkonen Notebook Evangelist
It would be great. I have E6430s BIOS in E6330 chassis (don't know how it happened as it is a used unit), which really requires a simple GUI-based way to control CPU fans for the sake of keeping user's sanity.
It spins up and down extremely frequently and no way to adjust that behviour at the moment. -
Aaron44126 Notebook Prophet
Preview...
Sort of all-in-one fan management control panel. It has basically all of the functions from the different applications described in the first post, plus, a fix for this audio popping issue on the Realtek audio chip (it just streams "silence" to the sound chip to prevent it from going to sleep). The program also has command-line functionality so it will basically replace the different commandiline apps previously released.
Plan:
July 1 — 3.0 beta release — Source code available, everything in the screen shot above functional
August 1 — 3.0 release — Bug fixes / refinement, also persist settings when the app is closed & opened again
September 1 — 3.1 release — System tray status icon & minimize to tray functionality
[Edit 6/21]
Schedule change.
July 1 — 3.0 beta release
August 1 — 3.0 final release (including tray icon functionality)
The program is progressing well so I think that I should be able to have everything that I want included by the end of next month (before the Precision 7X60 systems start shipping).Last edited: Jun 21, 2021zhongze12345, Maleko48 and custom90gt like this. -
I'm planning to buy a Dell micro desktop (OptiPlex 7040). Does anyone know if these tools work with it?
-
Aaron44126 Notebook Prophet
-
Aaron44126 Notebook Prophet
Announcing Dell Fan Management, version 3 beta.
This is a full GUI application that rolls together all of the functionality of the user-facing tools described above. (It also supports the same command line parameters as DellFanCmd, so you can use Task Scheduler or another automation tool to make things happen without invoking the GUI.)
I welcome feedback from anyone who wants to try it out. I have a number of small things that I still want to hit for a non-beta release (scheduled for August 1), but the application is fully functional.
Requirements:
• 64-bit Windows
• The program is intended for use with Precision 7000-series systems, but it will likely work with all manner of Dell laptops, and maybe even smaller desktops (with Intel Sandy Bridge / 2nd-gen CPU or better)
• Current Visual C++ redistributable ( https://aka.ms/vs/16/release/vc_redist.x64.exe)
• .NET Framework 4.8 runtime ( https://dotnet.microsoft.com/download/dotnet-framework/thank-you/net48-web-installer)
• .NET 5.0 runtime ( https://dotnet.microsoft.com/download/dotnet/5.0/runtime, desktop x64)
• In the registry, visit HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CI\Policy, make a DWORD value called "UpgradedSystem" (no quotes) and set it to 0. Then, reboot. This allows drivers without a Microsoft EV signature to be loaded. (The final release next month will offer to set this value automatically at first launch.)
Source code is here: https://github.com/AaronKelley/DellFanManagement
Binary/executable: https://1drv.ms/u/s!AsIwJHFk4EFdp_8c7-ZHoLoFq2F5mw?e=DI4nqN
To run the program, extract the zip file, and then open "DellFanManagement.exe" with elevated permissions ("as administrator").
You can set the program to "Manual" mode and then switch EC fan control on or off. With EC fan control off, you can set the fan speed to whatever setting you like. Also, if EC fan control is off, you can use a separate tool like SpeedFan to control the fans.
I would like to draw special attention to "Consistency" mode (which basically replaces the "DellFanKeepAlive" tool). I'm really happy with how this turned out and it has removed all annoyances I have with the fan behavior in my Precision systems. The purpose of this mode is to maintain a consistent, low fan speed — to never let the fans power off, and also to keep them from ramping up unnecessarily. This is accomplished by waiting for ideal conditions and then automatically turning EC fan control off to "lock" the fans at the current speed. There are some options to set here:
• Lower temperature threshold: This should be set a bit above what you would observe in an idle to moderate workload on the CPU. The program will wait for all measured temperatures to be below this value before locking the fan speed.
• Upper temperature threshold: This should be set to a value that you would see under a high workload on the CPU, when you would actually want the fans to run at a higher speed. If any measured temperature crosses over this value, EC fan control will be restored, allowing the system to ramp the fans up.
• RPM threshold: This should be set just a little bit higher than the lowest speed that the fans normally operate at before turning off. For example, in my Precision 7530, the lowest speed for the fans is around 2300 so I set this value to 2400.
• ("Alerts" will pop a tray notification when the fan speed is locked or unlocked, but this feature is not yet available.)
• When "Consistency" mode is on, the program status bar will indicate what state it is in.
• To further reduce the chance that the fans could ramp up unnecessarily, make sure to clean the dust off of your fans from time to time, and you can also disable turbo boost on your CPU when you are not doing CPU-intensive work:
1. Use the Balanced power plan. (This is the default and you sort of have to go out of your way to change it.)
2. In advanced power settings, set the maximum processor state to 99%.
3. Set the power slider one step from the right. (You will have to make this change separately on AC power and battery power, as the system "remembers" the slider position separately for each.) This, combined with the previous step, will prevent the CPU from entering "turbo boost" speeds and you'll be capped in the mid 2 GHz range — which is completely fine for more light desktop work.
4. If you want to uncap the CPU speed for higher performance, all you need to do is move the slider over to the right.
There is also a system tray icon. If animation is enabled, the animation speed changes dynamically with the system fan RPMs. In "Consistency" mode, the icon turns blue when the fan speed is locked and red when it is unlocked.
The "Thermal setting" option is a quick way to switch between the different settings also available in the Dell Power Manager application (or selectable in the BIOS on newer systems). Older systems may not support this functionality, and in this case, the radio buttons are disabled.
Finally, there's a "bonus feature" unrelated to fans and thermals called "audio keep alive". This keeps an audio device active to prevent it from making pop/click sounds when a system alert or sound starts to play. This is something that often occurs in systems with the Realtek audio chip. Just pick the Realtek device from the drop-down menu and then check the box.
When you close the program, it will automatically enable EC fan control. However, when you run it again, the options that had been previous selected will be set automatically. (If the program crashes for some reason and fails to enable EC fan control, fully powering off the system and then powering it on again will put things back in the normal state.)
Notes:
• Minimize-to-tray functionality is not yet present but is planned for the next release.
• I am using NVAPI to read the GPU temperature if an NVIDIA GPU is present. If an AMD GPU is present, I use Libre Hardware Monitor to read the GPU temperature. This caused a pretty noticeable resource drain when I tried it with NVIDIA GPUs (which is why I switched to NVAPI), so I'd be interested in hearing if that is the same for AMD GPU users. If it is the case, I will have to look into an alternate method to read the AMD GPU temperature. (I do not have any systems with AMD GPUs to test with.)
Pinging for notification:
@Ionising_Radiation @zhongze12345 @custom90gt @Maleko48 @mkoev @Kocane @morbvamp @amorsh @jbuildit @Wafoe @kimiraikkonenLast edited: Jul 1, 2021kimiraikkonen, Enos, custom90gt and 1 other person like this. -
-
Aaron44126 Notebook Prophet
-
Aaron44126 Notebook Prophet
-
-
Aaron44126 Notebook Prophet
-
-
Aaron44126 Notebook Prophet
-
Working now, but is thermal setting meant to be greyed out? -
Aaron44126 Notebook Prophet
Vaardu likes this. -
After running the application as administrator on a week-old install of Windows 10, I can't seem to be able to shut down anymore - at least from the start menu. I don't know if this is a driver-specific thing but I can't seem to get the Dell BIOS to switch power states after Windows sends the shutdown command (i.e: cut the power post-shutdown). Just wanted to point this out in case this affects other systems. This was on my M6700 as well.
-
Aaron44126 Notebook Prophet
-
I started the program about 5 power cycles ago (failed shutdowns) but haven't since. I did run DellFanCmd through batch scripts as well but those worked perfectly fine on previous installs, other PC's, etc. Is there somewhere where I should delete or reinstall the .sys driver, if that could be the cause?
-
Aaron44126 Notebook Prophet
You can check to see if it is loaded:
Go to the registry and look for the key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BZHDELLSMMIO. If it exists, the driver is loaded; if it does not, the driver is not loaded.
If the driver is loaded and you want to unload it manually, just run this command from command prompt "as admin":
sc delete BZHDELLSMMIO
It will be automatically loaded again if you run one of the tools that uses it.
(Note: Even if the driver is loaded, it doesn't do anything unless a program is running that uses it.) -
zhongze12345 Notebook Evangelist
The manual fan control isn't working and the fan RPM's report odd numbers. As a side note, in HWinfo64, I couldn't find the option for EC monitoring and there wasn't a pop-up asking to monitor the EC on program startup.
The computer is a Precision 7760
The weird fan speeds are there no matter what options I choose -
Aaron44126 Notebook Prophet
Sigh... I guess they finally changed the BIOS interface for dealing with the fans and this program won't work on systems newer than 7X50. This would also likely impact HWINFO64 and SpeedFan. (If fan monitoring works in either of those then I need to dig in and figure out what they are doing differently than me.)
I have a 7560 on the way so I'll play with it once I have the system in-hand...Last edited: Jul 17, 2021zhongze12345 likes this. -
The driver was indeed not loaded.
I checked Event Viewer and saw a few Kernel-Power errors stating that the shutdown was "unexpected," meaning it still is actively attempting to switch to S5 (full power off) in spite of no disk activity. The fans also kick up to around max and stay at that level until I manually initiate the S5 state. Going into S3 (sleep) or restarting have no problems whatsoever; only the shutdown or hibernate commands which go to S5 seem to cause this issue. I'd have to think that it could be caused by the BIOS disagreeing with the OS. The only options I have enabled security/bootwise is UEFI support and turned the TPM on for Bitlocker encyption. I don't have secure boot or legacy ROM's enabled, two things that I have seen inhibit some other systems on newer BIOS revisions. Do you think I should reset the BIOS or would it be too much of a hassle to get the TPM reconfigured? -
Aaron44126 Notebook Prophet
Resetting the BIOS is fine. You'll need to re-enable the TPM afterwards.
Suspend BitLocker protection immediately before shutting down to reset the BIOS — this will avoid you having to enter your BitLocker recovery key after the reset. You'll want to have your BitLocker recovery key on hand anyway, just in case. -
Eureka! I seem to be able to shutdown using /s /f in command prompt. Upon googling further into this I was able to figure out that turning off fast startup would fix the issue. Thanks for the aid though.
Last edited: Jul 17, 2021 -
Aaron44126 Notebook Prophet
Taking a little detour with this project... No longer expecting a "full" release of Dell Fan Management v3 on August 1.
The reason starts with word that the fan can no longer be controlled on the new Precision 7X60 systems.
I am investigating switching away from the "bzh_dell_smm_io_x64.sys" and just using Dell's SMBIOS WMI interface to issue the fan control commands. This has a number of benefits:
* No third-party/custom driver will be needed.
* It will not be necessary to make the registry change to allow drivers lacking a Microsoft signature to be loaded.
* Should be more forward-compatible with new systems.
Downside:
No one has done it before (on Windows in particular), as far as I can tell.
I've successfully interacted with the SMBIOS via WMI before — that's how the program checks and sets the "thermal mode" setting. The problem is an unknown/cryptic interface without documentation.
I ran across this project which has documented a lot of the SMBIOS/WMI stuff. It's for Linux, but it should help me figure out the interface with less guesswork. They already know the tokens for enabling/disabling fan control, setting the different fan levels, etc.
https://github.com/dell/libsmbios
[Edit]...Actually a repo with Dell people committing to it, so it has some "official" status.
Hopefully, I can figure this out in the next few days; if so, I will issue a "beta 2" release around August 1.Last edited: Jul 19, 2021 -
Aaron44126 Notebook Prophet
Making some progress...
* The "DellFanLib" implementation is now entirely .NET; I ported everything and threw all of the C++ code away. (Easier to read and deal with IMO.) The only C++ code left is the BZH driver.
* Now able to read arbitrary token values in Windows via WMI; even ones not listed in the SMBIOS DMI tables. I dug around in the Linux kernel source code to see how the commands are supposed to be structured.
* The Precision 7530 BIOS appears to contain the token flags for manual fan control. Also it has five fan levels instead of three.
* So far unsuccessful in writing any token values. Starting with something simple like controlling the keyboard backlight brightness level, which is something that the Linux kernel also does. I'm going to hop over to Linux and try there, to make sure that it "should" work as I expect on this system. Dell actually has a command line tool for it called smbios-token-ctl, but it won't let you set values for tokens that aren't listed in the SMBIOS DMI tables. (The keyboard brightness ones are; the fan control ones are not.)
* I dug around in the libsmbios git repository... This is actual Dell code for interacting with the BIOS. Tools like smbios-token-ctl make calls to a C library, and the code that actually interacts with the BIOS is not present in the repo, so I can't see how it works. However, I found that they used to have a complete C++ library for dealing with this, which appears to support reading the token values on Windows, but without using WMI. They never implemented write support on Windows but there is a Linux implementation. Another approach that I am going to look into; going lower level than WMI would allow this approach to work on systems older than Precision 7X10.
[Edit]
Digging around a bit more...
Pretty sure that "writing" tokens from Windows will be possible, but only by implementing another custom driver. This requires writing to the kernel memory space and regular programs aren't allowed to do that (even if run "as administrator"). This is probably why writing tokens using the WMI interface does not work...
Anyway. This means I need to do some proof-of-concept work on Linux. No way I'm going to try to learn driver development without having a pretty clear indication that what I'm trying to do will actually work in the end.Last edited: Jul 22, 2021 -
Aaron44126 Notebook Prophet
Today, I was successful in setting "tokens" from Windows through the WMI/SMI interface. I'm able to set things like the keyboard brightness level, and various options that are available to be set in the BIOS. Basically I can hit the various things in this list:
https://github.com/dell/libsmbios/blob/master/doc/token_list.csv
Also, I did a full scan of tokens from 0000 to FFFF and found that there are some that exist in the Precision 7530 BIOS but are not on this list. ( @Ionising_Radiation Maybe the undervolt enable/disable flag is in there... The easiest way to check would be to do a dump on two systems of the same model, but one with the flag set and one with it not set, and then just compare them.)
Anyway, the fan control tokens do work on the Precision 7530. I'm waiting for confirmation that they work on the Precision 7X60 systems and then I will work on updating the app to support them.
I mentioned that there are five fan levels, but when I tested them, two of them resulted in the same speed so effectively there are just four. Still, better than before. On my Precision 7530 I was able to set it to:
0 RPM
≈ 2300 RPM
≈ 3900 RPM
≈ 4800 RPM
...Though the fans can't be set individually with this method, when selecting a value it sets both fans to the same speed.
[Edit]
Also, I see where you can change the system's "subsystem ID" which I did not try but that would maybe allow a situation where you would not have to modify the NVIDIA driver INF file after loading in an unsupported GPU, by just setting the ID to the system that the GPU is supposed to be in .......Last edited: Jul 23, 2021Ionising_Radiation likes this. -
Aaron44126 Notebook Prophet
Not sure how I was not aware of this project before now ...
https://github.com/hirschmann/nbfc
https://github.com/UraniumDonut/nbfc-revive
Looks like there's a lot of information in there on probing EC registers for fan stuff, I'll be digging in to find maybe yet another fan control solution...Last edited: Jul 27, 2021custom90gt and alaskajoel like this. -
Hello,
I just installed the Dell Fan Management 3 Beta.
I have the Dell Inspiron 13 5301 with the i5-1135g7.
It works perfectly, especially the consistency mode.
There are 3 fan levels : 0 rpm, 2500 rpm and 4800 rpm.
I set the consistency mode at 3000 rpm and it's perfect.
Thank you from Nice, France.alaskajoel and Aaron44126 like this.
DellFanManagement & DellFanKeepAlive – Tools for managing the fan speed in Dell laptops
Discussion in 'Dell' started by Aaron44126, Jun 18, 2020.