Script to control fan speed in response to hard drive temperatures

Ericloewe

Server Wrangler
Moderator
Joined
Feb 15, 2014
Messages
20,175
Sounds interesting. You should probably write that up in detail.
 
Joined
Dec 2, 2015
Messages
730
I finally found that there's a product range from Corsair which subscribes to the concept of CorsairLink, which has been (at least partially) reverse engineered by the linux community to a project called OpenCorsairLink, which I had seen somebody had ported to MacOS... finally, something to give me some hope. I rushed out and ordered the Commander Pro (one of the products in that range), which has 4 temperature sensors, 6 PWM fan ports, a USB connection to the MoBo (and a hub in case you still need the header for other connections), plus some controls for LED lighting (in case you're one of "those people").
This is a very interesting project! Congrats for getting it working. It really merits its own thread, as I expect there will be a fair bit of interest, and it can get confusing when threads contain discussions on more than one disparate subject.

I have borked the IPMI on my backup server, so depending on what it takes to resurrect it, I may be tempted to follow you down the CorsairLink road.
 

Stux

MVP
Joined
Jun 2, 2016
Messages
4,358
Sounds like you ended up learning a little bit of Perl and C++ ;)
 

Chris Moore

Hall of Famer
Joined
May 2, 2015
Messages
10,080
Happy to share any details or answer questions on what I did if it's interesting. (I guess it means this script can be adapted for use in almost any system provided you can buy one of the corsair devices)
This really is great work. I wish I had read the details when this first happened. Do you have the source code available for download?
If you could create a separate thread with all the modifications detailed to help others repeat what you have done, it would be a terrific benefit to the community. There are many older systems (X9 series Supermicro boards for example) that are still perfectly capable of running FreeNAS but have no granular control of the fans. Many people might be interested in this if they were aware of it.

Great work!

Also,
plus some controls for LED lighting (in case you're one of "those people").
Great sense of humor.
 

sretalla

Powered by Neutrality
Moderator
Joined
Jan 1, 2016
Messages
9,702
Do you have the source code available for download?
I have the source (and obviously the compiled executable for 3 and 4 pin fans... I never did work out how to deal with a variable type conversion needed to set that at the command line), but since the project is GPL, I'm technically required to publish it to the project, which I'm sadly lacking the confidence/knowledge on how to do properly without messing up anyone else's additions.

I doubt anyone would really attempt to prosecute me for it, but making the compiled executables available would also be in breach of the license.

I really do want to do that, but am short on time to learn what needs to be done and then do it.

I'd be happy to be guided by somebody with the knowledge to get to that result.

Before I get to having the GitHub link to code that can be used/shared, I guess a thread doesn't help much.
 

Chris Moore

Hall of Famer
Joined
May 2, 2015
Messages
10,080
but since the project is GPL, I'm technically required to publish it to the project, which I'm sadly lacking the confidence/knowledge on how to do properly without messing up anyone else's additions.
It probably needs to be a fork because you said the original was for Linux and this is probably going to be more specific to BSD and possibly even specific to FreeNAS to some degree.
I am not sure as to the exact details of what GPL expects, but for those of us using FreeNAS, it might be sufficient to put the code up on github and share the link back to the forum. That would allow others to further customize and improve the function of this code.
 

sretalla

Powered by Neutrality
Moderator
Joined
Jan 1, 2016
Messages
9,702
I'm not certain it needs forking as most of the changes I made were just to add/fix the command sets for the commander pro (seems the developers were working on some of the other devices covered by the API first... perhaps all devices are covered now).

I did need to adjust the makefile a little to make it play nice on FreeNAS, but that may not even have been needed if I did the compile on FreeBSD vanilla... I really would like to do that this time.

If I can manage to compile it on FreeBSD and then run the resulting executable on FreeNAS, we wouldn't need a fork and the GPL conditions would be met (perhaps requiring me to just re-share the makefile I alter).

Just as a summary (of my understanding at least), the GPL requires that if any changes are made to the code in order to use the product, that those changes be shared back to the project (officially I already owe them this, but as I said, my hacker abilities ran out at just getting the code to compile and do what I needed, I'm no source code management expert).

I did make a couple of nice changes in the way the command line exports the speeds of all fans every time, not just the one you are playing with, so perhaps I will need to ask for that to go in, or create a fork for that, but again, under GPL, the fork must be shared/open source.
 

sretalla

Powered by Neutrality
Moderator
Joined
Jan 1, 2016
Messages
9,702
So in case somebody finds this thread and hopes to use the OpenCorsairLink option with a Commander Pro device, I have now posted the required information to the separate thread:

https://forums.freenas.org/index.php?threads/opencorsairlink-in-a-jail-to-control-fans.71873/

Just to clarify in advance (since the title of the thread is a little misleading), it doesn't run in a jail, just directly on the host (you can store the executable and script on your pool).
 

Jr922

Explorer
Joined
Apr 22, 2016
Messages
58
whats the most recent version of the original script? is it still the "2.1 stux"
I need to rewrite mine and I would greatly appreciate the most recent without searching 13 pages.
 
Joined
Dec 2, 2015
Messages
730
whats the most recent version of the original script? is it still the "2.1 stux"
I need to rewrite mine and I would greatly appreciate the most recent without searching 13 pages.
Yes, @Stux's mod in post #102 is the latest version of this script of which I am aware. But, both @Stux and I have since moved on to newer fan control scripts. I have updated the original post of this thread to point to those scripts.
 

Jr922

Explorer
Joined
Apr 22, 2016
Messages
58
Yes, @Stux's mod in post #102 is the latest version of this script of which I am aware. But, both @Stux and I have since moved on to newer fan control scripts. I have updated the original post of this thread to point to those scripts.

Thank you, I see the updated link in the first post now, I started looking in the middle which was dumb, hopefully I can just drop in most of the parameters from the old one i've been using.
 

KevDog

Patron
Joined
Nov 26, 2016
Messages
462
Rather old thread but I thought I'd ask a questions anyway

I have a Supermicro Board X11CF and I bought two additional fans yesterday (Noctura 120mm ) to add to system. I went ahead and Noctura fan splitters and hooked the PWM head to the Noctura fan. The two fans were added to the FANA and FAN4 header.
I'm noticing the system is extremely loud -- sounds like a jet airplane

I'm getting the following readings (I'm unsure what NR means in the 3rd column but it corresponds to Headers FANA and FAN4):
Code:
# ipmitool sdr
CPU Temp         | 34 degrees C      | ok
PCH Temp         | 24 degrees C      | ok
System Temp      | 28 degrees C      | ok
Peripheral Temp  | 26 degrees C      | ok
VcpuVRM Temp     | 32 degrees C      | ok
DIMMA1 Temp      | 24 degrees C      | ok
DIMMA2 Temp      | 23 degrees C      | ok
DIMMB1 Temp      | 22 degrees C      | ok
DIMMB2 Temp      | 22 degrees C      | ok
FAN1             | 2000 RPM          | ok
FAN2             | 1200 RPM          | ok
FAN3             | 1400 RPM          | ok
FAN4             | 2800 RPM          | nr
FANA             | 2800 RPM          | nr
12V              | 12.19 Volts       | ok
5VCC             | 4.92 Volts        | ok
3.3VCC           | 3.35 Volts        | ok
VBAT             | 3.14 Volts        | ok
Vcpu             | 1.26 Volts        | ok
VDIMMAB          | 1.19 Volts        | ok
5VSB             | 5.03 Volts        | ok
3.3VSB           | 3.27 Volts        | ok
VPCH 1.5V        | 1.04 Volts        | ok
Chassis Intru    | 0x00              | ok


Looking at the results I was like --- 2800RPM -- no wonder its loud. I went ahead and looked at my fan thresholds:
Code:
# ipmitool sensor list al
CPU Temp         | 35.000     | degrees C  | ok    | 0.000     | 0.000     | 0.000     | 95.000    | 100.000   | 100.000
PCH Temp         | 24.000     | degrees C  | ok    | -11.000   | -8.000    | -5.000    | 90.000    | 95.000    | 100.000
System Temp      | 28.000     | degrees C  | ok    | -9.000    | -7.000    | -5.000    | 80.000    | 85.000    | 90.000
Peripheral Temp  | 26.000     | degrees C  | ok    | -9.000    | -7.000    | -5.000    | 80.000    | 85.000    | 90.000
VcpuVRM Temp     | 31.000     | degrees C  | ok    | -9.000    | -7.000    | -5.000    | 95.000    | 100.000   | 105.000
DIMMA1 Temp      | 24.000     | degrees C  | ok    | 1.000     | 2.000     | 4.000     | 80.000    | 85.000    | 90.000
DIMMA2 Temp      | 23.000     | degrees C  | ok    | 1.000     | 2.000     | 4.000     | 80.000    | 85.000    | 90.000
DIMMB1 Temp      | 22.000     | degrees C  | ok    | 1.000     | 2.000     | 4.000     | 80.000    | 85.000    | 90.000
DIMMB2 Temp      | 22.000     | degrees C  | ok    | 1.000     | 2.000     | 4.000     | 80.000    | 85.000    | 90.000
FAN1             | 2000.000   | RPM        | ok    | 300.000   | 500.000   | 700.000   | 2600.000  | 2800.000  | 3000.000
FAN2             | 1200.000   | RPM        | ok    | 100.000   | 200.000   | 300.000   | 2500.000  | 2200.000  | 2000.000
FAN3             | 1400.000   | RPM        | ok    | 100.000   | 200.000   | 300.000   | 2500.000  | 2200.000  | 2000.000
FAN4             | 2800.000   | RPM        | nr    | 100.000   | 200.000   | 300.000   | 2500.000  | 2200.000  | 2000.000
FANA             | 2800.000   | RPM        | nr    | 100.000   | 200.000   | 300.000   | 2500.000  | 2200.000  | 2000.000
12V              | 12.192     | Volts      | ok    | 10.144    | 10.272    | 10.784    | 12.960    | 13.280    | 13.408
5VCC             | 4.896      | Volts      | ok    | 4.246     | 4.298     | 4.480     | 5.390     | 5.546     | 5.598
3.3VCC           | 3.350      | Volts      | ok    | 2.789     | 2.823     | 2.959     | 3.554     | 3.656     | 3.690
VBAT             | 3.140      | Volts      | ok    | 2.384     | 2.496     | 2.580     | 3.476     | 3.588     | 3.672
Vcpu             | 1.282      | Volts      | ok    | 0.085     | 0.085     | 0.085     | 1.588     | 1.750     | 1.768
VDIMMAB          | 1.191      | Volts      | ok    | 0.948     | 0.975     | 1.047     | 1.344     | 1.425     | 1.443
5VSB             | 5.026      | Volts      | ok    | 4.246     | 4.376     | 4.480     | 5.390     | 5.546     | 5.598
3.3VSB           | 3.265      | Volts      | ok    | 2.755     | 2.840     | 2.908     | 3.503     | 3.605     | 3.639
VPCH 1.5V        | 1.041      | Volts      | ok    | 0.825     | 0.852     | 0.915     | 1.176     | 1.239     | 1.266
Chassis Intru    | 0x0        | discrete   | 0x0000| na        | na        | na        | na        | na        | na


So according to these readings my fans are running above the level of threshold.
I'm getting a sense the NR is part of my problem
I can manually kick the fan speed down with:
Code:
ipmitool raw 0x30 0x70 0x66 0x01 0x01 0x16

But these changes only last a few seconds before they spin back up

In terms of the MOBO settings: whether I set the SuperMicro and Standard, Full, Optimal, Heavy Duty - the fan speeds stay the same.
Fans I purchased were these : https://www.amazon.com/gp/product/B00KFCRATC/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1
so I can't see a problem with the fans.

In terms of headers - FAN1 is CPU and the others FAN(2-4), FANA are peripheral.

Any help with this issue would be great.
 

sretalla

Powered by Neutrality
Moderator
Joined
Jan 1, 2016
Messages
9,702
You should be running Kevin's script instead since you already have the hardware for it.

It manages the fans via IPMI and will control them much more granularly than the BIOS.
 

KevDog

Patron
Joined
Nov 26, 2016
Messages
462
So this seems to be an exercise in frustration.

I downloaded the script and it runs for awhile then resets the BMC. After the BMC reset fan's kick down to low speed but then I get:

2020-02-12 09:22:42: CPU Fan speed: No reading
2020-02-12 09:22:42: CPU Fan speed unavailable
2020-02-12 09:22:42: fan_speed = no
2020-02-12 09:22:42: HD Fan speed: No reading
2020-02-12 09:22:42: HD Fan speed unavailable
2020-02-12 09:22:42: Fan speeds are unreadable after 40 seconds, will try again

Eventually BMC takes over and fans are reset to 2800RPM.
Then the cycle repeats.

I'm still thinking it has something to do with the NR reading on headers A and 4 since I believe that means Non-readable or something.

Or possibly it's just my fan sucks -- idk.

I did a few tests. I originally had FAN4 hooked via a splitter to a noctura and enermax fan. I removed the splitter and connected each fan individually to the FAN4 header

With Noctura only:
Code:
FAN4             | 3000 RPM          | nr


With Enermax fan only
FAN4 | 1600 RPM | ok

With splitter and PWM hooked to Enermax fan
Code:
FAN4             | 1500 RPM          | ok


Maybe its just the fan that sucks
 
Last edited:

thepixelgeek

Patron
Joined
Jan 21, 2016
Messages
271
Eventually BMC takes over and fans are reset to 2800RPM.
Then the cycle repeats.
Perhaps this is due to thresholds. It was for me. I also changed $hd_fan_duty_low in the config file. Using Kevin's script.

 

KevDog

Patron
Joined
Nov 26, 2016
Messages
462
Maybe this isn't for me.
I changed so the CPU is on header FANA and the others are on FAN1-4. The problematic fan combo (loud) sits on FAN4/FAN2

The script does adjustments but immediately the BMC reverts:

Code:
2020-02-12 11:13:58: temperature error = -10
2020-02-12 11:13:58: PID corrections are P = -80, I = 0 and D = 0
2020-02-12 11:13:58: PID control new duty cycle is 30%
2020-02-12 11:13:58: Setting Zone 0 duty cycle to 30%
2020-02-12 11:14:09: core_temps:
30.0
30.0
25.0
25.0
32.0
32.0
29.0
29.0
2020-02-12 11:14:09: core_temp = 30.0 C
2020-02-12 11:14:09: core_temp = 30.0 C
2020-02-12 11:14:09: core_temp = 25.0 C
2020-02-12 11:14:09: core_temp = 25.0 C
2020-02-12 11:14:09: core_temp = 32.0 C
2020-02-12 11:14:09: core_temp = 32.0 C
2020-02-12 11:14:09: core_temp = 29.0 C
2020-02-12 11:14:09: core_temp = 29.0 C
2020-02-12 11:14:09: CPU Temp: 32.0
2020-02-12 11:14:09: fan_speed = 2000
2020-02-12 11:14:09: CPU Fan speed: 2000 RPM
2020-02-12 11:14:10: fan_speed = 1200
2020-02-12 11:14:10: HD Fan speed: 1200 RPM
2020-02-12 11:14:10: CPU fan speed should be low, but 2000 > 1440.
2020-02-12 11:14:10: bmc_fail_count:  1, bmc_fail_threshold: 1
2020-02-12 11:14:10: Fan speeds are not where they should be, will try again.
2020-02-12 11:14:10: fanmode: full = 1


I repeatedly get the script resetting the BMC with messages like:

Code:
2020-02-12 11:07:28: CPU Fan: low
2020-02-12 11:07:28: fan_speed = 2000
2020-02-12 11:07:28: CPU Fan speed: 2000 RPM
2020-02-12 11:07:29: fan_speed = 1200
2020-02-12 11:07:29: HD Fan speed: 1200 RPM
2020-02-12 11:07:29: CPU fan speed should be low, but 2000 > 1440.
2020-02-12 11:07:29: bmc_fail_count:  2, bmc_fail_threshold: 1
2020-02-12 11:07:29: Fan speeds are still not where they should be after 2 attempts, will reboot BMC.
2020-02-12 11:07:29: fanmode: full = 1
2020-02-12 11:07:29: Setting fan mode to 1 (full)


It then goes on to reboot BMC which it does every so every 2-3 minutes. When BMC kicks back on I get:
FAN1 | 1200 RPM | ok
FAN2 | 2800 RPM | nr
FAN3 | 1500 RPM | ok
FAN4 | 1500 RPM | ok
FANA | 2000 RPM | nr

Thresholds are
Code:
FAN1             | 1200.000   | RPM        | ok    | 300.000   | 400.000   | 500.000   | 2600.000  | 2800.000  | 3000.000
FAN2             | 2800.000   | RPM        | nr    | 300.000   | 400.000   | 500.000   | 2500.000  | 2200.000  | 2000.000
FAN3             | 1500.000   | RPM        | ok    | 300.000   | 400.000   | 500.000   | 2500.000  | 2200.000  | 2000.000
FAN4             | 1500.000   | RPM        | ok    | 300.000   | 400.000   | 500.000   | 2500.000  | 2200.000  | 2000.000
FANA             | 2000.000   | RPM        | ok    | 300.000   | 700.000   | 900.000   | 2600.000  | 2800.000  | 3000.000


Kevin's script has following set:
Code:
#######################
## FAN CONFIGURATION
####################

## FAN SPEEDS
## You need to determine the actual max fan speeds that are achieved by the fans
## Connected to the cpu_fan_header and the hd_fan_header.
## These values are used to verify high/low fan speeds and trigger a BMC reset if necessary.
$cpu_max_fan_speed    = 1800;
$hd_max_fan_speed     = 3300;


## CPU FAN DUTY LEVELS
## These levels are used to control the CPU fans
$fan_duty_high         = 100;    # percentage on, ie 100% is full speed.
$fan_duty_med          =  60;
$fan_duty_low          =  30;

## HD FAN DUTY LEVELS
## These levels are used to control the HD fans
$hd_fan_duty_high      = 100;    # percentage on, ie 100% is full speed.
$hd_fan_duty_med_high  =  80;
$hd_fan_duty_med_low   =  50;
$hd_fan_duty_low       =  30;    # some 120mm fans stall below 30.

## FAN ZONES
# Your CPU/case fans should probably be connected to the main fan sockets, which are in fan zone zero
# Your HD fans should be connected to FANA which is in Zone 1
# You could switch the CPU/HD fans around, as long as you change the zones and fan header configurations.
#
# 0 = FAN1..5
# 1 = FANA..FANC
$cpu_fan_zone = 1;
$hd_fan_zone  = 0;


## FAN HEADERS
## these are the fan headers which are used to verify the fan zone is high. FAN1+ are all in Zone 0, FANA is Zone 1.
## cpu_fan_header should be in the cpu_fan_zone
## hd_fan_header should be in the hd_fan_zone
$cpu_fan_header = "FANA";                 # used for printing to standard output for debugging
$hd_fan_header  = "FAN1";                 # used for printing to standard output for debugging
@hd_fan_list = ("FAN2", "FAN3", "FAN4");  # used for logging to file
 
Last edited:

Glorious1

Guru
Joined
Nov 23, 2014
Messages
1,211
Did you set your thresholds?
 

thepixelgeek

Patron
Joined
Jan 21, 2016
Messages
271
Maybe this isn't for me.
I changed so the CPU is on header FANA and the others are on FAN1-4. The problematic fan combo (loud) sits on FAN4/FAN2

The script does adjustments but immediately the BMC reverts:

Code:
2020-02-12 11:13:58: temperature error = -10
2020-02-12 11:13:58: PID corrections are P = -80, I = 0 and D = 0
2020-02-12 11:13:58: PID control new duty cycle is 30%
2020-02-12 11:13:58: Setting Zone 0 duty cycle to 30%
2020-02-12 11:14:09: core_temps:
30.0
30.0
25.0
25.0
32.0
32.0
29.0
29.0
2020-02-12 11:14:09: core_temp = 30.0 C
2020-02-12 11:14:09: core_temp = 30.0 C
2020-02-12 11:14:09: core_temp = 25.0 C
2020-02-12 11:14:09: core_temp = 25.0 C
2020-02-12 11:14:09: core_temp = 32.0 C
2020-02-12 11:14:09: core_temp = 32.0 C
2020-02-12 11:14:09: core_temp = 29.0 C
2020-02-12 11:14:09: core_temp = 29.0 C
2020-02-12 11:14:09: CPU Temp: 32.0
2020-02-12 11:14:09: fan_speed = 2000
2020-02-12 11:14:09: CPU Fan speed: 2000 RPM
2020-02-12 11:14:10: fan_speed = 1200
2020-02-12 11:14:10: HD Fan speed: 1200 RPM
2020-02-12 11:14:10: CPU fan speed should be low, but 2000 > 1440.
2020-02-12 11:14:10: bmc_fail_count:  1, bmc_fail_threshold: 1
2020-02-12 11:14:10: Fan speeds are not where they should be, will try again.
2020-02-12 11:14:10: fanmode: full = 1


I repeatedly get the script resetting the BMC with messages like:

Code:
2020-02-12 11:07:28: CPU Fan: low
2020-02-12 11:07:28: fan_speed = 2000
2020-02-12 11:07:28: CPU Fan speed: 2000 RPM
2020-02-12 11:07:29: fan_speed = 1200
2020-02-12 11:07:29: HD Fan speed: 1200 RPM
2020-02-12 11:07:29: CPU fan speed should be low, but 2000 > 1440.
2020-02-12 11:07:29: bmc_fail_count:  2, bmc_fail_threshold: 1
2020-02-12 11:07:29: Fan speeds are still not where they should be after 2 attempts, will reboot BMC.
2020-02-12 11:07:29: fanmode: full = 1
2020-02-12 11:07:29: Setting fan mode to 1 (full)


It then goes on to reboot BMC which it does every so every 2-3 minutes. When BMC kicks back on I get:
FAN1 | 1200 RPM | ok
FAN2 | 2800 RPM | nr
FAN3 | 1500 RPM | ok
FAN4 | 1500 RPM | ok
FANA | 2000 RPM | nr

Thresholds are
Code:
FAN1             | 1200.000   | RPM        | ok    | 300.000   | 400.000   | 500.000   | 2600.000  | 2800.000  | 3000.000
FAN2             | 2800.000   | RPM        | nr    | 300.000   | 400.000   | 500.000   | 2500.000  | 2200.000  | 2000.000
FAN3             | 1500.000   | RPM        | ok    | 300.000   | 400.000   | 500.000   | 2500.000  | 2200.000  | 2000.000
FAN4             | 1500.000   | RPM        | ok    | 300.000   | 400.000   | 500.000   | 2500.000  | 2200.000  | 2000.000
FANA             | 2000.000   | RPM        | ok    | 300.000   | 700.000   | 900.000   | 2600.000  | 2800.000  | 3000.000


Kevin's script has following set:
Code:
#######################
## FAN CONFIGURATION
####################

## FAN SPEEDS
## You need to determine the actual max fan speeds that are achieved by the fans
## Connected to the cpu_fan_header and the hd_fan_header.
## These values are used to verify high/low fan speeds and trigger a BMC reset if necessary.
$cpu_max_fan_speed    = 1800;
$hd_max_fan_speed     = 3300;


## CPU FAN DUTY LEVELS
## These levels are used to control the CPU fans
$fan_duty_high         = 100;    # percentage on, ie 100% is full speed.
$fan_duty_med          =  60;
$fan_duty_low          =  30;

## HD FAN DUTY LEVELS
## These levels are used to control the HD fans
$hd_fan_duty_high      = 100;    # percentage on, ie 100% is full speed.
$hd_fan_duty_med_high  =  80;
$hd_fan_duty_med_low   =  50;
$hd_fan_duty_low       =  30;    # some 120mm fans stall below 30.

## FAN ZONES
# Your CPU/case fans should probably be connected to the main fan sockets, which are in fan zone zero
# Your HD fans should be connected to FANA which is in Zone 1
# You could switch the CPU/HD fans around, as long as you change the zones and fan header configurations.
#
# 0 = FAN1..5
# 1 = FANA..FANC
$cpu_fan_zone = 1;
$hd_fan_zone  = 0;


## FAN HEADERS
## these are the fan headers which are used to verify the fan zone is high. FAN1+ are all in Zone 0, FANA is Zone 1.
## cpu_fan_header should be in the cpu_fan_zone
## hd_fan_header should be in the hd_fan_zone
$cpu_fan_header = "FANA";                 # used for printing to standard output for debugging
$hd_fan_header  = "FAN1";                 # used for printing to standard output for debugging
@hd_fan_list = ("FAN2", "FAN3", "FAN4");  # used for logging to file
Post this issue over in the PID thread, since your using Kevin's script. https://www.ixsystems.com/community/threads/pid-fan-controller-perl-script.50908/
 

KevDog

Patron
Joined
Nov 26, 2016
Messages
462
Did you set your thresholds?
Hey thanks for help --

Did I set my thresholds -- arent they set up above? It's strange because the Noctura fan on Fan2 runs above the threshold -- likely contributing to all the noise.
 

KevDog

Patron
Joined
Nov 26, 2016
Messages
462
Top