You Shall be Quiet! A Fantastic Investigation
October 2021
Imagine you buy a shiny new computer case, then assemble all hardware until you get to the point when you finally press the power button to start your piece of art - and it boots! - … and after that problems arise.
tl;dr at the end.
The shiny new case up for investigation
But first, let us start with the setting. The case is a be quiet! Dark Base Pro 900 Black rev. 2. I want to point out one specific feature, which was no selling point for me personally, but if there is some feature, you want to use it, am I right? The case contains a so-called “fan hub”, which allows you to control up to eight fans manually with a slider in the front panel as well as automatically by the mainboard using PWM. My mainboard is a Gigabyte X570 AORUS PRO (rev. 1.2). In the photo snapshot (sorry for bad quality!), you can see two “fan rails” with four PWM ports each (labels 1 to 8). The top left cable A is the PWM cable, which must be connected to a mainboard PWM header to allow the mainboard to control the fans. B, C are power cables, and D connects the front panel slider. The fan hub came assembled in the parcel with all cables connected. Most importantly, the three pre-installed case fans were connected to ports 6, 7, 8. We will see why this is important…
The problem and snolutions
Back to starting the computer and experiencing problems: The fans controlled by the fan hub spun with full speed and reported 0 RPM. Manually changing fan speed with the front panel slider worked perfectly fine, but switching to “auto” mode by moving the front panel slider to the left did not. In the mainboard BIOS, I tried to manually enforce the fan header’s mode to PWM, however, this did not change anything. In addition, other fan headers did not work either. It looked like the fans did not run in PWM mode. Crawling through the internet, I discovered several threads with people having problems with this fan hub. In the end, all threads had three different kind of outcomes: 1. The thread died prematurely with a cliffhanger. 2. The thread opener surrendered and did not use the fan hub. 3. The thread opener somehow solved the problem without explicitly stating the solution or the solution did not entirely fix my issues. This blog post should help to avoid such situations in the future. So, let us gather the scattered information!
The right connection
As I mentioned earlier, the case fans were initially connected port 6, 7, and 8 after opening the parcel for the first time. This was error number one. As some users mentioned, one fan MUST be connected to port 1. Connecting one fan to port 1 solved the RPM reporting issue. My explanation: The fan hub ALWAYS reports the RPM of the fan connected to port 1. No fan connected = 0 RPM. (The clever reader might have noticed that I also moved one fan to port 5. This was my first attempt in fixing things, since I thought port 5 would be port 1 - reading labels would have helped. However, this did not change anything. Out of laziness I did not move the fan back to port 6 or 7; this should not have any impact, but YMMV) .
We now have fans spinning with maximum RPM and a hub correctly reporting the RPM to the mainboard. I configured the fan header to mode “PWM” manually in the BIOS. However, controlling fans still did not work. To pin down the source of the issue, I tried to manually change fan curves in the BIOS and manually set RPM speed in both Linux and Windows. It looked like the fan hub did not respond to the transmitted PWM signal.
At this point, I was about to request support by the case manufacturer since I suspected a hardware issue. However, I
remembered
a forum thread
where a user noted that some headers on mainboards are not “real” PWM headers despite having four pins. However, the
mainboard manual clearly states that all fan headers can operate in PWM mode with no differences between them. So, it
has to work with port SYS_FAN4, right? … right? I was so wrong. Despite my beliefs, I tried connecting the fan hub
to CPU_OPT instead of SYS_FAN4. Results: Fans spin with full RPM and correctly report the readings in fan header
mode “auto”. But after changing header mode to “PWN”, everything finally worked! Then, I connected the fan hub to
SYS_FAN2 just to try out some other header. This showed the same behavior as CPU_OPT. I was confused since I did
not understand why CPU_OPT and SYS_FAN2 should be different from SYS_FAN4? To rule out hardware issues, I
tried to use SYS_FAN5_PUMP - same behavior as SYS_FAN4. Regular PWM fans work perfectly fine when connected to
headers SYS_FAN4 and SYS_FAN5_PUMP!
We can see the solution in the output from the tool sensors
on Linux:
We can see that fans are controlled by different chipsets. Mystery solved, case closed, not a fan of it.
tl;dr The be quiet! PWM fan hub should be configured and connected as follows:
- Fan hub port 1 reports PWM to the mainboard. No fan connected to this port = 0 RPM.
- Enforce the mainboard fan header’s mode to PWM and do not use “auto”.
- Some chipsets may have problems with the fan hub (e.g. it8792).