ASUS Z87-Deluxe fake 4-pin headers & other fan control info
Posted: Sat Jun 22, 2013 8:23 pm
I've just built a new Haswell rig with a Z87-Deluxe motherboard, and wanted to share what I've discovered about its fan control abilities. This is info I wanted when researching the build but couldn't find anywhere, so hopefully it'll be useful to others. I apologize for the epic length, but there's actually a lot to cover.
First off, watch out for the chassis fan headers, they're not what they seem. This board has 6 fan headers: CPU_FAN, CPU_OPT, and CHA_FAN 1-4. All of them look like normal 4-pin fan headers, but CHA_FAN 1-4 are *not* true 4-pin PWM fan headers. They don't provide any PWM control capability, and in fact act mostly like 3-pin fan headers, controlling all fans, whether 3 or 4 pin, using 3-pin style voltage control. The 4th pin, which should be used to control 4-pin fan speeds while the motor power stays at +12V, is instead hardwired for a constant 100% duty cycle PWM signal (fixed +5V). 4-pin fans will see this PWM signal and always run at full throttle, while the motor power is adjusted 3-pin style to control the actual speed resulting from that full throttle. 3-pin fans will work with these headers as if they were plain old normal 3-pin fan headers.
You can get a clue about this weirdness from the pinout diagrams for the fan headers in the user's manual. The 4th pin for the CPU_FAN and CPU_OPT headers is labeled as "CPU fan PWM", but for the CHA_FAN headers is instead labeled as "+5V". In the PWM fan control signalling scheme, a fixed, unmodulated +5V PWM line is just a hardwired constant full speed 100% duty cycle command. But I don't see the point of including it; PWM fans already default to constant full speed when plugged into standard 3-pin fan headers (leaving their 4th pin unconnected) anyway. This is just a tricksy way to make a 3-pin header look like a 4-pin header without really being one.
Why did ASUS go to the trouble of making fake 4-pin headers, when normal 3-pin headers would have worked just as well? It's not helpful, it just causes confusion. When someone plugs a 4-pin PWM fan into a standard-looking 4-pin fan header, they're going to naturally assume the fan will be controlled via PWM. If you plug a 4-pin fan into a 3-pin header, at least you know up front that you're sacrificing the fan's PWM ability and using it as a 3-pin fan. It's almost like ASUS is actively trying to conceal the fact that PWM fans aren't really supported and will instead be run in 3-pin mode.
"Who cares?" many of you are probably thinking by now. After all, both kinds of fans do end up speed controlled (in a Clintonian "it depends on what the meaning of 'control' is" kind of way). But PWM-controlled fans behave differently than voltage-controlled fans, especially at low speeds. Often a PWM fan will start reliably at and hold a lower RPM with PWM than with voltage control. In my case, low-speed behavior was critical; I especially wanted to make sure that my fans would run at a very low RPM and be totally silent when the PC was at idle or low loads, which is really most of the time, and then ramp up to audible speeds only at higher loads, when I'm probably gaming and won't care anyway. For instance, I've got Noctua NF-A15 fans that will run dead silent at about 220 RPM at their minimum 18% PWM duty cycle. But if you ignore the PWM and use voltage control instead, they don't start until about 6.2 volts (52%), at around 675 RPM, which is not quiet enough for me when I'm coding at 3 AM. I ended up solving the problem by daisy-chaining the case fans off of the CPU_OPT header, but I still don't appreciate the misleading design.
Also, in line with that higher starting voltage issue, ASUS enforces a minimum 60% voltage limit (7.2V) on voltage-controlled fans in the BIOS, while it allows a much more useful 20% minimum PWM duty cycle. This isn't a big issue for Windows users, since the Fan Xpert 2 software can override the BIOS limits and tailor them to your fan's actual abilities, but non-Windows users are stuck. For me, 60% is more like the *maximum* I'd ever actually want, during heavy but non-benchmarking usage, so having it as the minimum would really suck.
By the way, I don't think these pseudo-4-pin headers are unique to this board. I spot-checked a few other ASUS Z87 and Z77 board's manuals and saw the same "+5V" tag on some of their fan pinouts. And I'm pretty sure I've seen some forum posts in the past that mentioned PWM fans being controlled as 3-pin fans. Be alert.
OK, so enough ranting about the chassis fan headers. The CPU_FAN header is very different. It really does control both 3-pin and 4-pin fans, using voltage control for 3-pins and PWM for 4-pins. It manages this using a simple but clever trick that I can't believe nobody else has thought of until now. On the edge of the CPU_FAN header, there's a little detector switch that gets triggered when you plug in a 4-pin fan, pushed by the extra connector width, letting the fan controller know to use the PWM signal line instead of adjusting the voltage. Strangely, this cool feature is hardly mentioned anywhere except for a small un-commented drawing by the fan pinouts and a terse note on the manual's specs page saying the "CPU Fan connector supports both 3-pin (DC mode) and 4-pin (PWM mode)". Tellingly, it does not say that about the chassis fan connectors. From photos, it looks like this new CPU fan type detection switch is included on all ASUS' Z87 boards except the most stripped-down -C and -K models.
And lastly, the CPU_OPT header is basically just a passive copy of whatever's being sent to the CPU_FAN header, and can't be separately controlled. If CPU_FAN is in PWM mode, the same PWM signal is sent by CPU_OPT. If CPU_FAN is in voltage control mode, the same voltage is supplied by CPU_OPT. But what if you plug in different fan types? Probably not very useful. If you have a 4-pin in CPU_FAN being controlled with PWM, a 3-pin in CPU_OPT will just see the typical constant 12V of any 3-pin fan on a (normal) 4-pin header and run flat out. And if you have a 3-pin in CPU_FAN being controlled by voltage, a 4-pin in CPU_OPT will confusingly run even slower than the reduced voltage should normally make it; it looks like the PWM signal still gets sent, *along with* the reduced voltage, so 100% is still full speed, but 70% becomes 70% duty cycle of the 70% voltage speed, for a net 49% actual speed. Strange.
So that's the hardware, now the software. At the BIOS level things are pretty standard. There are separate Q-Fan controls for all the fan headers except CPU_OPT, and they mostly work like in previous ASUS boards, with Silent, Standard, Turbo, and Manual control curves. One thing worth mentioning is that since the chassis fan headers are voltage controlled, their minimum speed is forced to 60% (Augh!), but that can be overridden in Windows using Fan Xpert 2 according to your fan's actual abilities. The chassis fans can only respond to the CPU temperature, unfortunately.
For the CPU_FAN header, the controls are a bit more complicated. Instead of just Enabled, you can choose Auto or Advanced. Auto really means "force the header into 4-pin PWM mode", and Advanced really means "detect the fan type with the nifty fan header switch" (which sounds more like Auto to me, but whatever). In Auto (4-pin) mode, the CPU fan profiles use a reasonable minimum 20% duty cycle instead of the 60% minimum voltage of the chassis fans. But in Advanced (detect) mode there's a big problem: since ASUS wants to enforce the 60% minimum speed with voltage-controlled fans, they just always force the 60% minimum for Advanced mode, without caring what kind of fan is or will be actually plugged in, just in case you end up with a 3-pin fan there. So if you do plug in a 4-pin fan while the BIOS is set to Advanced mode, it gets stuck with the 60% minimum anyway. Which means you'll probably want to select Auto mode whenever using 4-pin fans, which means you'll only select Advanced mode when using 3-pin fans, which really kind of defeats the whole purpose of the nifty fan header detection switch. If you end up making a manual BIOS setting according to the fan type anyway, they might as well have just had a simple 3-pin/4-pin mode BIOS setting and skipped the whole hardware switch thing entirely. Sigh.
If you're not running Windows, that's it; the fans keep running according to your BIOS settings until you shut down. But if you run Windows, ASUS' Fan Xpert 2 software can take over control of the fans, giving extra flexibility. And it looks like Fan Xpert 2 is now standard with all these new Z87 boards, so no more discrimination with lesser "Fan Xpert but not 2" versions for the cheaper boards.
Here's how I think the BIOS/Fan Xpert handoff works: I believe the fans are actually controlled by an independant chip on the motherboard, not by any running software (to prevent overheating if the PC locks up, which would freeze any control software). When you boot the PC, the BIOS loads its saved fan settings into the fan control chip, and that sets their behavior until Windows is loaded. When Windows boots, it starts the ASUS Fan Control Service daemon, which then loads your last applied Fan Xpert 2 settings into the controller chip to override the initial BIOS settings. This happens shortly after Windows starts, before you even log in. If you then later use Fan Xpert 2 to apply a new fan profile, that immediately gets loaded into the control chip, and also becomes the "current" settings for that fan to be re-applied by the Fan Service the next time Windows is started. The Fan Xpert settings aren't written to the BIOS, they're only in effect while Windows is running.
That matches the behavior I see, anyway. If you set the fans to one speed in BIOS and another in Fan Xpert, you can clearly hear how the PC boots using the BIOS speed and then shifts to the Fan Xpert speed as soon as Windows comes up, and see your last settings already in effect when you go into Fan Xpert. And if you kill the AI Suite app and stop the Fan Service, the fans continue to be actively controlled even without any fan-related software running. If you completely uninstalled AI Suite III, including the Fan Service daemon, I think your PC would just use the BIOS settings forever, but I haven't actually tried it.
As far as Fan Xpert 2 itself goes, that's already been pretty well described in various reviews, and this is already way too long, so I won't describe all that again. The main point here is that Fan Xpert 2 will test your fans to determine their actual minimum speeds, and tailor the fan control curves to fit. These control curves will completely override any BIOS settings and their hardcoded limits, so that you can use the fan's full range.
Also, I've noticed one small difference from what I've read in reviews; when setting a custom fan profile, previous versions of Fan Xpert 2 set the minimum allowed fan speed to the power required to start the fan, which is usually higher than the minimum speed the fan can be reduced to without stopping once it's spinning (for 3-pin fans, anyway). With this version, it now sets the minimum allowed speed in the profile to the minimum reducible speed. This change might let you run fans at a significantly lower speed than before, and it shouldn't really cause any problems; worst case, if a fan doesn't start because the temp is too low at first, the temp will just rise until the corresponding fan speed hits the starting value, and then the fan will kick in and cool back down to the lower speed while still running. Or you could avoid that by just making sure the BIOS settings will have the fan spinning before Windows starts and takes over with the lower minimum.
Overall the software seems pretty solid, and I haven't had any trouble with BIOS/Fan Xpert conflicts, erratic control, or failures to reload prior settings. I think they've fixed the bugs I've seen reported with earlier versions, and there should be no need to disable BIOS Q-Fan control to use Fan Xpert, as some have said they had to do before. I have Q-Fan set to Silent to avoid making the fans start out loud when rebooting, and then custom fan curves once in Windows.
That's it for the provided software. What about SpeedFan? While I have some hopes for eventually using that to let the case fans take the GPU temps into account, for now, the latest v4.49 doesn't support the Z87-Deluxe well at all. It doesn't see any fan control or fan speed chips, or the system voltages, only temperatures. And for some reason it's reading my 4770K's core temps wrong, showing about half the values seen in CoreTemp or RealTemp. I'm sure it'll eventually be updated, but it may take a long time with the huge flood of new boards just released. Plus, the new CPU_FAN header switch might take some extra work to handle.
And finally, a non-fan note for any prospective Z87-Deluxe buyers who might be wondering: no, the extra 2-digit Q-Code readout on the board doesn't do anything (yet?). ASUS calls the whole thing a 4-digit Q-Code, not two separate displays, but the only codes defined are all still 2 digits long, so the first 2 always read 00. I'd had some hopes that it would display temps or something (after all, ASUS must have had *some* reason for adding it), but no. They should really just make an API for setting the values in software, so apps could make them display temps or fan speeds or network traffic or something useful. Right now, once your system has booted into the OS and is running OK, the Q-Code display is pretty much wasted.
First off, watch out for the chassis fan headers, they're not what they seem. This board has 6 fan headers: CPU_FAN, CPU_OPT, and CHA_FAN 1-4. All of them look like normal 4-pin fan headers, but CHA_FAN 1-4 are *not* true 4-pin PWM fan headers. They don't provide any PWM control capability, and in fact act mostly like 3-pin fan headers, controlling all fans, whether 3 or 4 pin, using 3-pin style voltage control. The 4th pin, which should be used to control 4-pin fan speeds while the motor power stays at +12V, is instead hardwired for a constant 100% duty cycle PWM signal (fixed +5V). 4-pin fans will see this PWM signal and always run at full throttle, while the motor power is adjusted 3-pin style to control the actual speed resulting from that full throttle. 3-pin fans will work with these headers as if they were plain old normal 3-pin fan headers.
You can get a clue about this weirdness from the pinout diagrams for the fan headers in the user's manual. The 4th pin for the CPU_FAN and CPU_OPT headers is labeled as "CPU fan PWM", but for the CHA_FAN headers is instead labeled as "+5V". In the PWM fan control signalling scheme, a fixed, unmodulated +5V PWM line is just a hardwired constant full speed 100% duty cycle command. But I don't see the point of including it; PWM fans already default to constant full speed when plugged into standard 3-pin fan headers (leaving their 4th pin unconnected) anyway. This is just a tricksy way to make a 3-pin header look like a 4-pin header without really being one.
Why did ASUS go to the trouble of making fake 4-pin headers, when normal 3-pin headers would have worked just as well? It's not helpful, it just causes confusion. When someone plugs a 4-pin PWM fan into a standard-looking 4-pin fan header, they're going to naturally assume the fan will be controlled via PWM. If you plug a 4-pin fan into a 3-pin header, at least you know up front that you're sacrificing the fan's PWM ability and using it as a 3-pin fan. It's almost like ASUS is actively trying to conceal the fact that PWM fans aren't really supported and will instead be run in 3-pin mode.
"Who cares?" many of you are probably thinking by now. After all, both kinds of fans do end up speed controlled (in a Clintonian "it depends on what the meaning of 'control' is" kind of way). But PWM-controlled fans behave differently than voltage-controlled fans, especially at low speeds. Often a PWM fan will start reliably at and hold a lower RPM with PWM than with voltage control. In my case, low-speed behavior was critical; I especially wanted to make sure that my fans would run at a very low RPM and be totally silent when the PC was at idle or low loads, which is really most of the time, and then ramp up to audible speeds only at higher loads, when I'm probably gaming and won't care anyway. For instance, I've got Noctua NF-A15 fans that will run dead silent at about 220 RPM at their minimum 18% PWM duty cycle. But if you ignore the PWM and use voltage control instead, they don't start until about 6.2 volts (52%), at around 675 RPM, which is not quiet enough for me when I'm coding at 3 AM. I ended up solving the problem by daisy-chaining the case fans off of the CPU_OPT header, but I still don't appreciate the misleading design.
Also, in line with that higher starting voltage issue, ASUS enforces a minimum 60% voltage limit (7.2V) on voltage-controlled fans in the BIOS, while it allows a much more useful 20% minimum PWM duty cycle. This isn't a big issue for Windows users, since the Fan Xpert 2 software can override the BIOS limits and tailor them to your fan's actual abilities, but non-Windows users are stuck. For me, 60% is more like the *maximum* I'd ever actually want, during heavy but non-benchmarking usage, so having it as the minimum would really suck.
By the way, I don't think these pseudo-4-pin headers are unique to this board. I spot-checked a few other ASUS Z87 and Z77 board's manuals and saw the same "+5V" tag on some of their fan pinouts. And I'm pretty sure I've seen some forum posts in the past that mentioned PWM fans being controlled as 3-pin fans. Be alert.
OK, so enough ranting about the chassis fan headers. The CPU_FAN header is very different. It really does control both 3-pin and 4-pin fans, using voltage control for 3-pins and PWM for 4-pins. It manages this using a simple but clever trick that I can't believe nobody else has thought of until now. On the edge of the CPU_FAN header, there's a little detector switch that gets triggered when you plug in a 4-pin fan, pushed by the extra connector width, letting the fan controller know to use the PWM signal line instead of adjusting the voltage. Strangely, this cool feature is hardly mentioned anywhere except for a small un-commented drawing by the fan pinouts and a terse note on the manual's specs page saying the "CPU Fan connector supports both 3-pin (DC mode) and 4-pin (PWM mode)". Tellingly, it does not say that about the chassis fan connectors. From photos, it looks like this new CPU fan type detection switch is included on all ASUS' Z87 boards except the most stripped-down -C and -K models.
And lastly, the CPU_OPT header is basically just a passive copy of whatever's being sent to the CPU_FAN header, and can't be separately controlled. If CPU_FAN is in PWM mode, the same PWM signal is sent by CPU_OPT. If CPU_FAN is in voltage control mode, the same voltage is supplied by CPU_OPT. But what if you plug in different fan types? Probably not very useful. If you have a 4-pin in CPU_FAN being controlled with PWM, a 3-pin in CPU_OPT will just see the typical constant 12V of any 3-pin fan on a (normal) 4-pin header and run flat out. And if you have a 3-pin in CPU_FAN being controlled by voltage, a 4-pin in CPU_OPT will confusingly run even slower than the reduced voltage should normally make it; it looks like the PWM signal still gets sent, *along with* the reduced voltage, so 100% is still full speed, but 70% becomes 70% duty cycle of the 70% voltage speed, for a net 49% actual speed. Strange.
So that's the hardware, now the software. At the BIOS level things are pretty standard. There are separate Q-Fan controls for all the fan headers except CPU_OPT, and they mostly work like in previous ASUS boards, with Silent, Standard, Turbo, and Manual control curves. One thing worth mentioning is that since the chassis fan headers are voltage controlled, their minimum speed is forced to 60% (Augh!), but that can be overridden in Windows using Fan Xpert 2 according to your fan's actual abilities. The chassis fans can only respond to the CPU temperature, unfortunately.
For the CPU_FAN header, the controls are a bit more complicated. Instead of just Enabled, you can choose Auto or Advanced. Auto really means "force the header into 4-pin PWM mode", and Advanced really means "detect the fan type with the nifty fan header switch" (which sounds more like Auto to me, but whatever). In Auto (4-pin) mode, the CPU fan profiles use a reasonable minimum 20% duty cycle instead of the 60% minimum voltage of the chassis fans. But in Advanced (detect) mode there's a big problem: since ASUS wants to enforce the 60% minimum speed with voltage-controlled fans, they just always force the 60% minimum for Advanced mode, without caring what kind of fan is or will be actually plugged in, just in case you end up with a 3-pin fan there. So if you do plug in a 4-pin fan while the BIOS is set to Advanced mode, it gets stuck with the 60% minimum anyway. Which means you'll probably want to select Auto mode whenever using 4-pin fans, which means you'll only select Advanced mode when using 3-pin fans, which really kind of defeats the whole purpose of the nifty fan header detection switch. If you end up making a manual BIOS setting according to the fan type anyway, they might as well have just had a simple 3-pin/4-pin mode BIOS setting and skipped the whole hardware switch thing entirely. Sigh.
If you're not running Windows, that's it; the fans keep running according to your BIOS settings until you shut down. But if you run Windows, ASUS' Fan Xpert 2 software can take over control of the fans, giving extra flexibility. And it looks like Fan Xpert 2 is now standard with all these new Z87 boards, so no more discrimination with lesser "Fan Xpert but not 2" versions for the cheaper boards.
Here's how I think the BIOS/Fan Xpert handoff works: I believe the fans are actually controlled by an independant chip on the motherboard, not by any running software (to prevent overheating if the PC locks up, which would freeze any control software). When you boot the PC, the BIOS loads its saved fan settings into the fan control chip, and that sets their behavior until Windows is loaded. When Windows boots, it starts the ASUS Fan Control Service daemon, which then loads your last applied Fan Xpert 2 settings into the controller chip to override the initial BIOS settings. This happens shortly after Windows starts, before you even log in. If you then later use Fan Xpert 2 to apply a new fan profile, that immediately gets loaded into the control chip, and also becomes the "current" settings for that fan to be re-applied by the Fan Service the next time Windows is started. The Fan Xpert settings aren't written to the BIOS, they're only in effect while Windows is running.
That matches the behavior I see, anyway. If you set the fans to one speed in BIOS and another in Fan Xpert, you can clearly hear how the PC boots using the BIOS speed and then shifts to the Fan Xpert speed as soon as Windows comes up, and see your last settings already in effect when you go into Fan Xpert. And if you kill the AI Suite app and stop the Fan Service, the fans continue to be actively controlled even without any fan-related software running. If you completely uninstalled AI Suite III, including the Fan Service daemon, I think your PC would just use the BIOS settings forever, but I haven't actually tried it.
As far as Fan Xpert 2 itself goes, that's already been pretty well described in various reviews, and this is already way too long, so I won't describe all that again. The main point here is that Fan Xpert 2 will test your fans to determine their actual minimum speeds, and tailor the fan control curves to fit. These control curves will completely override any BIOS settings and their hardcoded limits, so that you can use the fan's full range.
Also, I've noticed one small difference from what I've read in reviews; when setting a custom fan profile, previous versions of Fan Xpert 2 set the minimum allowed fan speed to the power required to start the fan, which is usually higher than the minimum speed the fan can be reduced to without stopping once it's spinning (for 3-pin fans, anyway). With this version, it now sets the minimum allowed speed in the profile to the minimum reducible speed. This change might let you run fans at a significantly lower speed than before, and it shouldn't really cause any problems; worst case, if a fan doesn't start because the temp is too low at first, the temp will just rise until the corresponding fan speed hits the starting value, and then the fan will kick in and cool back down to the lower speed while still running. Or you could avoid that by just making sure the BIOS settings will have the fan spinning before Windows starts and takes over with the lower minimum.
Overall the software seems pretty solid, and I haven't had any trouble with BIOS/Fan Xpert conflicts, erratic control, or failures to reload prior settings. I think they've fixed the bugs I've seen reported with earlier versions, and there should be no need to disable BIOS Q-Fan control to use Fan Xpert, as some have said they had to do before. I have Q-Fan set to Silent to avoid making the fans start out loud when rebooting, and then custom fan curves once in Windows.
That's it for the provided software. What about SpeedFan? While I have some hopes for eventually using that to let the case fans take the GPU temps into account, for now, the latest v4.49 doesn't support the Z87-Deluxe well at all. It doesn't see any fan control or fan speed chips, or the system voltages, only temperatures. And for some reason it's reading my 4770K's core temps wrong, showing about half the values seen in CoreTemp or RealTemp. I'm sure it'll eventually be updated, but it may take a long time with the huge flood of new boards just released. Plus, the new CPU_FAN header switch might take some extra work to handle.
And finally, a non-fan note for any prospective Z87-Deluxe buyers who might be wondering: no, the extra 2-digit Q-Code readout on the board doesn't do anything (yet?). ASUS calls the whole thing a 4-digit Q-Code, not two separate displays, but the only codes defined are all still 2 digits long, so the first 2 always read 00. I'd had some hopes that it would display temps or something (after all, ASUS must have had *some* reason for adding it), but no. They should really just make an API for setting the values in software, so apps could make them display temps or fan speeds or network traffic or something useful. Right now, once your system has booted into the OS and is running OK, the Q-Code display is pretty much wasted.