Jump to content
xamindar

Temperature based fan speed control?

116 posts in this topic Last Reply

Recommended Posts

I'm looking for a way to connect the fan that blows air across the hard drives to a temperature controller that will set the speed of the fan based on the temperature. So for example, if the hard drives hit 35C then spin the fan up to full and then when they drop below 30C to lower the speed down to a level that is inaudible.

 

Is there such a device out there that can do this? Any of you have experience with it? Something that has temperature sensor leads that could be put in the 5 in 3 backplane and then apply those readings to the speed of that fan would be very usefull.

 

Or, as another way of doing this, if possible. Can the fan be plugged into the main board and then speed adjusted based on the hdd SMART temperatures?

 

Thanks for any input.

 

EDIT: Go HERE for my answer to my question. ;)

Share this post


Link to post

If your mobo supports PWM fan control, you can do it, but you need to write some scripts.

 

Or you can use a Matrix Orbital display module... the MX series displays have 3 speed-controllable fan headers and 4 ports for temperature probes.... but you'll have to write your own software to interface with it.

 

I am working on some unRAID specific software for the Matrix Orbital, but I'm having to do it all in C and my C skills are rusty ;)

 

 

Share this post


Link to post

Here are some ideas:

 

Fan Controller Kit (TC647B) 

http://store.fundamentallogic.com/ecom/index.php?main_page=index&cPath=25

http://spiffie.org/kits/tc642/start.shtml

 

"These are easy to build, use, and understand fan controllers based around Microchip's TC64x series of chips. It's designed to control 12V computer fans based on the temperature, but can be easily adapted for any voltage of fan and a selection of sensors. "

kits:tc642:r_all_done.jpg?w=300

 

 

=====

I've also been bugging CrystalFontz to make a fully autonomous version of their CFA633.  It currently requires serial communication to provide good functionality.

http://www.crystalfontz.com/product/CFA633TMCKU

 

- Temperature monitoring: up to 32 channels at up to 0.5 deg C absolute accuracy.

- Four fan connectors with RPM monitoring and variable PWM fan power control.

- Maximum continuous current draw must be no more than 1.5 A per fan connector, no more than 4 A total. Pulsed

current may be up to 5 A per connector, the pulse width must be less than 50 mS. This pulse specification allows

for the fan's start-up current spike.

 

http://www.crystalfontz.com/products/633usb/datasheets/169/CFA_633_k1.9b.pdf

ziresize.php?name=662&x=800&y=105&q=80&cache=1

ziresize.php?name=663&x=800&y=105&q=80&cache=1

block_diagram.gif

 

 

 

Share this post


Link to post

I'm looking into different ideas for controling fans but until something I really like comes along I'm using this 5 fan temperature controller.  I just installed it yesterday and so far it's working.  I wanted to be able to set the temp threshhold for each fan but so far I'm not sure how.  The manual is printed in 2 pitch font.  I had to use a magnifying glass to read it.  But the quality of the parts is fine however and I guess that's what counts.  Anyway, I have one taped onto my parity drive and the temp readout matches what unRAID says the temp is so it's accurate.  It has 5 fan connectors and 5 temp probes.

 

http://www.newegg.com/Product/Product.aspx?Item=N82E16811992005

NZXT_Sentry-2.5_25.jpg.33940573fb1fb6c7f24f5b177f42f126.jpg

Share this post


Link to post

I've looked at many of those cheapie fan controllers.  Most do not have temperature control (only speed control) and are also very limited on power output per channel (I'd like to run a higher power fan or blower).  

 

The CFA633 can deliver a reasonable amount of power but cannot currently be used as a plug-in appliance (even after programming).   The fan controller kit (TC647B) has lots of power control but is very limited at temperature control (analog, one sensor, one output).

 

Share this post


Link to post

That TC647B is interesting. How do you program it? Not sure if I have the tools to program it but building it sounds fun.

 

I have found a couple interesting ones:

Lian Li TR-5 - Seems to do exactly what I need. But one thing I can't figure out. It has an auto speed setting based on temperature but it doesn't look like you can set it to which temperatures you want the fan speeds to change. That doesn't make sense to me. Anyone have experience with these things? This one is a little on the expensive side as well.

http://www.newegg.com/Product/Product.aspx?Item=N82E16811999194 - Looks like similar control as the Lian one but has a bunch of media card slots as well. Would be kinda neat to write some scripts to auto mount any cards plugged into it, copy the data on the cards to unraid, then unmount them. Would make a quick backup sollution for memory cards. Regarding temperature control, how do you set which temperatures to speed up the fans at? These things seem to have no information on that.

 

I saw some others around when I was searching last week but can't seem to find them, oh well.

 

Also, I'll have to check my motherboard and see if Linux will detect fan speed and such with it. I know the bios does for all three fan connectors, now to check on linux. If this works then I wouldn't even need one of these panels and can just have unraid take care of it for me as bubbaQ suggested.

 

My main reason for all this is because my unraid sits right next to the TV and I want it as quiet as possible but also need it to kick into high gear if the HDD temps get too high.

Share this post


Link to post

Well, I figured out that my little mini itx board that unraid is using has pwm fan speed control on all three fan ports so I can just use that. I spent some time and wrote a very simple script to check the temperatures of the drives, pick the highest one, then set the speed of the fan accordingly between three speed settings. I am still waiting for a fan to come in the mail that I will use with the 5 in 3 backplane (norco ss-500) but I have tested this script on the cpu fan and it works great. I am definitely open to criticism as this is only the second bash script I have ever written.

 

It's not very smart so you have to edit it and be sure to set all the user variables correctly. Then just add a cron entry to run this script every 5 minutes or so and it should work.

 

Also one more thing. I don't know if smartctl will reset the spindown timer so it may cause the drives to never spin down. Anyone know if this is the case? I do know that running the smartctl on a drive in standby does NOT cause it to spin up so this is probably not an issue.

 

#!/bin/bash
# unraid_array_fan.sh v0.4
# v0.1  First try at it.
# v0.2: Made a small change so the fan speed on low doesn't fluctuate every time the script is run.
# v0.3: It will now enable fan speed change before trying to change it. I missed 
#	it at first because pwmconfig was doing it for me while I was testing the fan.
# v0.4: Corrected temp reading to "Temperature_Celsius" as my new Seagate drive
#	was returning two numbers with just "Temperature".
# A simple script to check for the highest hard disk temperatures in an array
# or backplane and then set the fan to an apropriate speed. Fan needs to be connected
# to motherboard with pwm support, not array.
# DEPENDS ON:grep,awk,smartctl,hdparm

### VARIABLES FOR USER TO SET ###
# Amount of drives in the array. Make sure it matches the amount you filled out below.
NUM_OF_DRIVES=3

# unRAID drives that are in the array/backplane of the fan we need to control
HD[1]=/dev/sdb
HD[2]=/dev/sdc
HD[3]=/dev/sde
HD[4]=/dev/
HD[5]=/dev/

# Temperatures to change fan speed at
# Any temp between OFF and HIGH will cause fan to run on low speed setting 
FAN_OFF_TEMP=30		# Anything this number and below - fan is off
FAN_HIGH_TEMP=36	# Anything this number or above - fan is high speed

# Fan speed settings. Run pwmconfig (part of the lm_sensors package) to determine 
# what numbers you want to use for your fan pwm settings. Should not need to
# change the OFF variable, only the LOW and maybe also HIGH to what you desire.
# Any real number between 0 and 255.
FAN_OFF_PWM=100
FAN_LOW_PWM=120
FAN_HIGH_PWM=255

# Fan device. Depends on your system. pwmconfig can help with finding this out. 
# pwm1 is usually the cpu fan. You can "cat /sys/class/hwmon/hwmon0/device/fan1_input"
# or fan2_input and so on to see the current rpm of the fan. If 0 then fan is off or 
# there is no fan connected or motherboard can't read rpm of fan.
ARRAY_FAN=/sys/class/hwmon/hwmon1/device/pwm2

### END USER SET VARIABLES ###

# Program variables - do not modify
HIGHEST_TEMP=0
CURRENT_DRIVE=1
CURRENT_TEMP=0

# while loop to get the highest temperature of active drives. 
# If all are spun down then high temp will be set to 0.
while [ "$CURRENT_DRIVE" -le "$NUM_OF_DRIVES" ]
do
 SLEEPING=`hdparm -C ${HD[$CURRENT_DRIVE]} | grep -c standby`
 if [ "$SLEEPING" == "0" ]; then
   CURRENT_TEMP=`smartctl -d ata -A ${HD[$CURRENT_DRIVE]} | grep -m 1 -i Temperature_Celsius | awk '{print $10}'`
   if [ "$HIGHEST_TEMP" -le "$CURRENT_TEMP" ]; then
     HIGHEST_TEMP=$CURRENT_TEMP
   fi
 fi
#echo $CURRENT_TEMP
 let "CURRENT_DRIVE+=1"
done
echo "Highest temp is: "$HIGHEST_TEMP

# Enable speed change on this fan if not already
if [ "$ARRAY_FAN" != "1" ]; then
 echo 1 > "${ARRAY_FAN}_enable"
fi

# Set the fan speed based on highest temperature
if [ "$HIGHEST_TEMP" -le "$FAN_OFF_TEMP" ]; then
 # set fan to off
 echo $FAN_OFF_PWM > $ARRAY_FAN
 echo "Setting pwm to: "$FAN_OFF_PWM
 elif [ "$HIGHEST_TEMP" -ge "$FAN_HIGH_TEMP" ]; then
   # set fan to full speed
   echo $FAN_HIGH_PWM > $ARRAY_FAN
   echo "Setting pwm to: "$FAN_HIGH_PWM
 else
   CURRENT_SPEED=`cat $ARRAY_FAN`
   # set fan to full speed first to make sure it spins up then change it to low setting.
   if [ "$CURRENT_SPEED" -lt "$FAN_LOW_PWM" ]; then
     echo $FAN_HIGH_PWM > $ARRAY_FAN
     sleep 2
   fi
   echo $FAN_LOW_PWM > $ARRAY_FAN
   echo "Setting pwm to: "$FAN_LOW_PWM
fi

 

EDIT: v0.2: Made a small change so the fan speed on low doesn't fluctuate every time the script is run.

EDIT: v0.3: It will now enable fan speed change before trying to change it. I missed it at first because pwmconfig was doing it for me while I was testing the fan.

EDIT: v0.4: Corrected temp reading to "Temperature_Celsius" as my new Seagate drive was returning two numbers with just "Temperature".

unraid-fan-speed.sh.zip

Share this post


Link to post

Very interested to hear your progress and results with this!  My only criticism is that I don't think life-support functions (power, cooling) should rely on an OS to function.

 

 

Share this post


Link to post
I don't think life-support functions (power, cooling) should rely on an OS to function.

 

That's why you don't try to control CPU or PSU fans... they have their own self-contained control mechanisms.

Share this post


Link to post

I don't think life-support functions (power, cooling) should rely on an OS to function.

 

That's why you don't try to control CPU or PSU fans... they have their own self-contained control mechanisms.

Exactly. There is no bios control for hdd temperature so we have to write our own. I was just using the cpu fan as a test as it is currently the only controllable fan I have on the system. If I don't modify it but just "cat /sys/class/hwmon/hwmon1/device/pwm1" I can see how the number is automatically changed by the bios as the cpu temp rises or lowers, kinda neat. But I have noticed once I manually change it the bios releases control of it and it will stay where I set it until I reboot. There might be another way without rebooting but I haven't bothered to look as this is only testing anyway. The wonders of linux, you can do pretty much anything you can dream up with linux.

Also, I don't see controlling the hdd fans with the os as a problem as they are defaulted to full speed without the script and if the temperature rises too high there is an over temp buzzer on the array that will go off.

Share this post


Link to post

Woohoo! Got the new fan today and installed it into my unraid. This script works perfect!

I had an issue with crontab at first but I must have had a typo in the crontab. Did a couple reboots and everything is working. The script runs every three minutes from cron and changes fan speed when heeded.

 

No need for any special front panel display.

Share this post


Link to post

Can anyone out there tell me if some manufacturers name the temperature field differently than "Temperature_Celsius"? I installed a new seagate drive and it was returning two temperature fields when I was just searching for "Temperature" by its self so I had to modify my script to look for the whole "Temperature_Celsius".

 

If anyone has other manufacturers like samsung or hitachi (anything other than WD or seagate) it would be a great help if you could run the following command against those drives and verify if the temperature field is labeled as "Temperature_Celsius" or not.

"smartctl -d ata -A /dev/sdX" (without quotes and where X is the drive leter, ie a, b, c and so on)

 

You can find out which drive it is from the devices tab of the unraid web interface. You will see something like (sdb) right before the drive serial number. This command is not dangerous at all, just returns smart fields and may spin up some drives to get it, that's it. The temperature field is usually number 194 but not always.

 

Thanks for any help. It will help to make this script work for any drive.

 

Share this post


Link to post

Xamindar, thanks for the script!

 

I am running the Supermicro X7SBE mainboard and albeit I see the fans and their speed through the IPMI card from the BIOS, pwmconfig doesn't show them as controllable. Any hints as to what I might check?

 

The fans are set in the BIOS to "3-pin optimized for server" and there is clearly speed control applied to them (there is another setting "full on 12V" which I have deselected). I have 5 fans in total each connected to each own header (2 for the case on the back and 3 on the mid fanboard) in addition to the 6th fan for the CPU. They are grouped in 3 groups (case, disk fans on mid fanboard and cpu) and all are 3-wire connected to the mainboard.

 

Tried to set the BIOS to "3-pin optimized for workstations" but only the average RPM slowed down from 800/1500/1000 to 700/1400/900.

 

I found this http://www.lm-sensors.org/browser/lm-sensors/trunk/doc/fan-divisors and played with the fan divisors, set them from 1...64 in /etc/sensors3.conf, rerun sensors -s, then pwmconfig again without any change.

 

Here the chip, a Windbond W83627HF than is used http://www.mjmwired.net/kernel/Documentation/hwmon/w83627hf

 

 

Output of pwmconfig:

# pwmconfig revision 5345 (2008-09-28)

This program will search your sensors for pulse width modulation (pwm)

controls, and test each one to see if it controls a fan on

your motherboard. Note that many motherboards do not have pwm

circuitry installed, even if your sensor chip supports pwm.

 

We will attempt to briefly stop each fan using the pwm controls.

The program will attempt to restore each fan to full speed

after testing. However, it is ** very important ** that you

physically verify that the fans have been to full speed

after the program has completed.

 

Found the following devices:

  hwmon0/device is w83627hf

  hwmon1/device is coretemp

  hwmon2/device is coretemp

 

Found the following PWM controls:

  hwmon0/device/pwm1

  hwmon0/device/pwm2

 

Giving the fans some time to reach full speed...

Found the following fan sensors:

  hwmon0/device/fan1_input    current speed: 0 ... skipping!

  hwmon0/device/fan2_input    current speed: 0 ... skipping!

  hwmon0/device/fan3_input    current speed: 0 ... skipping!

 

There are no working fan sensors, all readings are 0.

Make sure you have a 3-wire fan connected.

You may also need to increase the fan divisors.

See doc/fan-divisors for more information.

 

 

This is what the IPMI card is showing me from the monitoring sensors:

Sensor Type Sensor Name Sensor Status Sensor Reading

  OEM reserved #c0 CPU Temp Low

  Temperature Sys Temp OK 39 degrees C

  Voltage CPU Vcore OK 1.280 (+/- 0.004) Volts

  Voltage DIMM Volt OK 1.824 Volts

  Voltage 3.3V OK 3.248 Volts

  Voltage 5V OK 4.920 (+/- 0.012) Volts

  Voltage 12V OK 12.096 (+/- 0.048) Volts

  Voltage -12V OK -12.300 (+/- -0.050) Volts

  Voltage 5VSB OK 4.944 (+/- 0.012) Volts

  Voltage VBAT OK 3.184 (+/- 0.008) Volts

  Fan Fan1 OK 800 RPM

  Fan Fan2 OK 800 RPM

  Fan Fan3 OK 800 RPM

  Fan Fan4 OK 1500 RPM

  Fan Fan5 OK 1500 RPM

  Fan Fan6/CPU OK 1000 RPM

  Power Supply Power Supply OK

  Module / Board Thermal Trip OK

  System Firmware Progress BIOS OK

 

 

When I run the script, it reports:

root@tank:~# /boot/scripts/unraid-fan-speed.sh

Highest temp is: 44

/boot/scripts/unraid-fan-speed.sh: line 78: /sys/class/hwmon/hwmon0/device/pwm2_enable: No such file or directory

Setting pwm to: 255

 

Share this post


Link to post

Dang, I had a whole long reply typed out then my computer froze (laptop doesn't like to compile programs for a long time, the ram overheats).

 

What do you see under /sys/class/hwmon/hwmon0/device ?? "ls /sys/class/hwmon/hwmon0/device"

 

Are you running on a full slackware setup? Looks like you are if you are using lm-sensors. Looks like you either don't have 3-wire fans connected or your sensors do not have the correct circuitry connected on the mainboard to control them.

 

Try the following while physically watching the fan:

"echo 0 > /sys/class/hwmon/hwmon0/device/pwm2" - that is a zero. It should completely stop that fan. If it does stop spinning then you will be able to control them.

"echo 255 > /sys/class/hwmon/hwmon0/device/pwm2" - will bring it back to full speed.

If that does nothing at all then either linux is not allowed to change the speed or the board doesn't support it. The error the script gave means it was unable to set the file that tells whether linux controls the fan or the bios controls the fan. I haven't done much testing with different sensor drivers so don't know if there is a different spot for that in your case. Post a directory listing of /sys/class/hwmon/hwmon0/device so we can see if there is anything else that might help.

 

Also "cat /sys/class/hwmon/hwmon0/device/fan2_input" should give you the rpm of the fan on pwm2.

 

Share this post


Link to post

Hi there, reading this post with great interest due to my slightly different predicament - my drives running too cold! http://lime-technology.com/forum/index.php?topic=5198.msg55428#msg55428

 

 

What i was wondering is if it is possible to modify the script so that it can send an (optional) email alert out when high or low variables for temp are sensed?

 

thanks for the script - looking forward toi trying it out  ;D

 

Share this post


Link to post

What i was wondering is if it is possible to modify the script so that it can send an (optional) email alert out when high or low variables for temp are sensed?

 

You just need to configure mail on unRAID and call it from the script. There are different mail systems available for unraid but in general emailing works perfect from unRAID.

 

You may want to search the forum for "unraid_notify-2.53-noarch-unRAID.tgz" and install it, or just look here:

http://lime-technology.com/forum/index.php?topic=2470.0

Share this post


Link to post

What do you see under /sys/class/hwmon/hwmon0/device ?? "ls /sys/class/hwmon/hwmon0/device"

 

I am attaching a ls -l output of "/sys/class/hwmon/hwmon0/device".

 

Are you running on a full slackware setup? Looks like you are if you are using lm-sensors. Looks like you either don't have 3-wire fans connected or your sensors do not have the correct circuitry connected on the mainboard to control them.

 

Running stock unRAID 4.5.3 with a couple of installed packages, however nothing related to lm-sensors, at least not that I know of. ll the fans are attached using 3-wire cables and they are all different speeds as shown by the BIOS and IPMI card.

 

pwmconfig itself reports the interface control chip: hwmon0/device is w83627hf

Attaching the full output of pwmconfig below.

 

This is my mainboard: http://www.supermicro.com/products/motherboard/Xeon3000/3210/X7SBE.cfm

Please take a look at the "Management" and "PC Health Monitoring" section. It mentions "status monitor with firmware / software speed control" for the FANs.

 

Try the following while physically watching the fan:

"echo 0 > /sys/class/hwmon/hwmon0/device/pwm2" - that is a zero. It should completely stop that fan. If it does stop spinning then you will be able to control them.

"echo 255 > /sys/class/hwmon/hwmon0/device/pwm2" - will bring it back to full speed.

If that does nothing at all then either linux is not allowed to change the speed or the board doesn't support it. The error the script gave means it was unable to set the file that tells whether linux controls the fan or the bios controls the fan. I haven't done much testing with different sensor drivers so don't know if there is a different spot for that in your case. Post a directory listing of /sys/class/hwmon/hwmon0/device so we can see if there is anything else that might help.

 

I can write to pwm2 and change the value from 0...255, however the fan speed doesn't change. I can not open up the servers case right now, I am watching that the fan speed do no change on the IPMI card display for "Monitoring Sensors".

 

I quite frankly think that Linux is not allowed to change the fan speed.

 

Also "cat /sys/class/hwmon/hwmon0/device/fan2_input" should give you the rpm of the fan on pwm2.

 

This one is 0.

 

Thanks much for all your efforts and help, highly appreciated!

sys-class-hwmon-hwmon0-device.txt

pwmconfig-output.txt

Share this post


Link to post

Did you enable PWM control with pwm_enable???

Thats one of the problems. He doesn't have pwm_enable. The script wasn't able to change it and the directory listing he posted doesn't include it. His fans are spinning but fan2_input is not showing any rpm values. I don't really have much experience with this to know what the problem is. Looks like your board deffinately supports fan speeds.

 

starcat, do the IPMI fan speeds ever change? They should constantly fluctuate a little as the fans don't go the exact same speed at all times. From one of your earlier posts they were all even numbers (800, 1500...). That doesn't make sense to me unless your monitors are rounding them to the closest 100 or something. In any case, sorry, I'm out of ideas.

 

Sense you have the fan divisors (I don't on mine for some reason) you can read up on it here: http://www.lm-sensors.org/browser/lm-sensors/trunk/doc/fan-divisors

Share this post


Link to post

If the BIOS or some other setting is blocking PWM control, that may prevent pwm_enable from being available.

 

And on some mobos, it just won't work, due to lack of support circuits on the mobo.  Cheap bastards!

Share this post


Link to post

I don't have pwm_control, command not found. Are there any Slackware packages that I need to install?

 

Mobo used is the Supermicro X7SBE: http://www.supermicro.com/products/motherboard/Xeon3000/3210/X7SBE.cfm it is not cheap with $240 and the specs page show all this should be possible. It also has two Winbond chips on it.

 

The IPMI fan speeds don't show fluctuation, they are rounded and reflect only massive change in speed. The BIOS however shows them constantly fluctuating.

 

I read up the lm-sensors URL and tried the divisors, also different sensors3.conf files, no change. Perhaps I need to install lm-sensors packages from Slackware distro as I don't have pwm_control at all?

 

This would be interesting to others too, as a lot of the members here are using the X7SBE mainboard.

Thank you much guys!

 

Edit:

Page 4-20 of the X7SBE Manual found at http://www.supermicro.com/manuals/motherboard/3210/MNL-0970.pdf says the following about Fan Speed Control Modes:

 

This feature allows you to decide how the system controls the speeds of the onboard fans. If the option is set to “4-pin”, the fan speed will be controlled by Pulse Width Modulation (PWM). Select “Workstation” or "Server" if your system is used as a Workstation or Server respectively. Select “Disable” to disable the fan speed control function to allow the onboard fans to constantly run at full speed (12V). The Options are: 1. Disable and 2. 3-pin (server) 3-pin (workstation), 4-pin (server) and 4-pin (workstation). Do not select 4-pin settings if you have a mix of 3-pin and 4-pin fans.

 

Looks like I have to enable 4-pin fans even if I am using 3-wire if I want to get PWM support!?

 

Edit2:

Changed BIOS to 4-wire fans. Running unraid-fan-speed.sh shows again:

 

Highest temp is: 34
./unraid-fan-speed.sh: line 78: /sys/class/hwmon/hwmon0/device/pwm2_enable: No such file or directory
Setting pwm to: 120

 

and pwmcofnig:

 

# pwmconfig revision 5345 (2008-09-28)
This program will search your sensors for pulse width modulation (pwm)
controls, and test each one to see if it controls a fan on
your motherboard. Note that many motherboards do not have pwm
circuitry installed, even if your sensor chip supports pwm.

We will attempt to briefly stop each fan using the pwm controls.
The program will attempt to restore each fan to full speed
after testing. However, it is ** very important ** that you
physically verify that the fans have been to full speed
after the program has completed.

Found the following devices:
  hwmon0/device is w83627hf
  hwmon1/device is coretemp
  hwmon2/device is coretemp

Found the following PWM controls:
  hwmon0/device/pwm1
  hwmon0/device/pwm2

Giving the fans some time to reach full speed...
Found the following fan sensors:
  hwmon0/device/fan1_input     current speed: 0 ... skipping!
  hwmon0/device/fan2_input     current speed: 0 ... skipping!
  hwmon0/device/fan3_input     current speed: 0 ... skipping!

There are no working fan sensors, all readings are 0.
Make sure you have a 3-wire fan connected.
You may also need to increase the fan divisors.
See doc/fan-divisors for more information.

 

 

Share this post


Link to post

Starcat, I am rooting for you to get this figured out and working so that I can enable this feature too.  Just curious, wouldn't you need a 4-pin fan to enable the 4-pin settings?  I hope the new Norco 120mm fans come with a 4-pin connector.

Share this post


Link to post

Hmm, not really sure how to interpret this. I don't really believe it needs 4-wire fans in order to get PWM as already the 3-wire fans are being able to get speed control and report frequency. I believe that this is just a setting telling the BIOS either to get control (3-pin) or to allow PWM (4-pin setting). Both can be used with 3- and 4-wire fans. When mixing fans, then only 3-pin setting is possible. At least this is how I am interpreting this, correct me if I am wrong and if I need to get 4-wire fans for PWM, if that's the case I surely will.

Share this post


Link to post

Don't confuse PWM in lm-sensors with PWM in the bios. I was reading about the 4-pin and 3-pin stuff when I was writing my script and don't know why lm-sensors calls everything pwm. The way I understand it real pwm (4 pin fans) are controlled by pulsing the power at different intervals while always staying at 12 volts. Apparently they are less likely to stall at lower rpms that way. But then there are 3 pin (non pwm) fans. The speed of them is changed by lowering the voltage. This way of changing speed does stall the fan at low rpms and depending on the fan depends on when it stalls. Also, you have to raise the power pretty high to get the fan to start again. Obviously 4 pin is better but 3 pin works just fine in most cases.

 

I am pretty sure if you are using only 3 pin fans you need to select 3 pin in the bios. Don't worry about it not calling it pwm. Lm-sensors should still be able to control them. I have no idea why there is a server and a workstation setting though. If I were you I would try the three settings of disabled, 3 pin server, and 3 pin workstation and see if any of those change what you see under your hwmon0/devices area. Specifically look for pwm2_enable or see if fan2_input is reporting rpms.

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.