I am not going to go into a big long explanation of the possibilities here (maybe later). First, I want you to try an experiment: Set the duty cycle to a minimum of 25%. See if the problem still occurs.
Let us know if problem continues. Few days ago Intel® released a new BIOS version 44. Please update the BIOS using F7 or BIOS recovery method then, reset BIOS settings to default with F9.
Well I did both (Fixed duty cycle at 20% and upgraded to BIOS version 44, no BIOS reset FYI) and it seems that I'm not getting this bug anymore after several days testing.
Thank you for your help
Thank you for your update.
OK, now some explanation...
(A) Minimum Duty Cycle
4-wire fans implement fan speed control within the fan itself. The duty cycle of the PWM signal provided to it specifies the percentage of full speed that is desired. Now, every fan has limitations on the lowest sustainable duty cycle (lowest sustainable speed) at which it can operate. By specification, when presented with a non-sustainable duty cycle, a fan is allowed to respond in one of three ways:
- (Type A) It will continue to operate at its lowest sustainable speed, even if the PWM duty cycle is 0%.
- (Type B) If the PWM duty cycle is not 0%, it will continue to operate at its lowest sustainable speed. If the PWM duty cycle is 0%, the fan will stop spinning.
- (Type C) The fan will attempt to operate at the speed specified by the PWM duty cycle. If this becomes unsustainable, the fan is allowed to stop.
Since this fan is used to cool the processor, Type C fans are somewhat undesirable. Unfortunately, most of the fans available are of Type C and the remainder are often prohibitively priced. As a result, it is important to you to keep your minimum duty cycle at or above the lowest sustainable. Now, in order to ensure supply, Intel utilizes fans from a number of vendors. On average*, the minimum sustainable duty cycle for these fans is in the 20-25% range. Now, the actual speed of an individual fan in response to a particular duty cycle can vary and will usually degrade over time. There are many factors that can affect this - friction (bearing lubrication, dirt buildup, etc.) and temperature being just a few. As a result, I would recommend that you be conservative and use the high end of the range (i.e. 25%) as your minimum. From an acoustics standpoint, you are unlikely to hear the difference between 20% and 25% (but if you do, just wait a few years and this ability will go away).
[* - This average is based upon the analysis that I did during the Haswell generation's development (i.e. the D54250WY and D35010WY NUCs). I am retired now, so I cannot say whether the numbers have changed with later generation NUCs, but I rather doubt it (nothing drastic has happened in the industry in the intervening time).]
Ok, that was a really long-winded explanation for why you should set your minimum duty cycle to 25% (what can I say, I like to teach). Next, let's discuss the use of a fixed fan speed value.
(B) Processor Fan Speed Control
As your processor gets busier, it is going to generate more heat. This heat needs to be dissipated. The dissipation rate is based upon a number of factors. Most important are (a) the speed of the fan (i.e. the amount of airflow generated) and (b) the temperature of the air within this airflow (i.e. the cooler the air, the more heat it can dissipate). If the fan is not allowed to increase its speed as the heat builds up, this heat can eventually cause processor degradation.
Every processor publishes a recommendation of the maximum temperature that it can sustain for its lifetime without suffering any degradation (i.e. it could be this temperature all the time and it wouldn't cause any degradation). This temperature limit is referred to as the Tcontrol temperature. By specification, in the absence of other information (like the actual temperature of air feeding into the fan), the fan speed control solution is required to maintain the temperature at or below this Tcontrol temperature. That is, if the temperature is above this limit, the fan should be operating at full speed (100% duty cycle). By default, the fan speed control programming that is implemented by the BIOS ensures that, once the temperature of the processor comes within 10 degrees of the Tcontrol limit, the fan speed will begin increasing and, if the temperature reaches the Tcontrol limit, the fan will be at full speed (100% duty cycle).
In your case, by setting both the minimum and maximum duty cycles to the same value, you have prevented the fan from properly responding to heat buildup. This is not a good thing; if it is happening often, you will be lessening the lifetime for your processor (and, technically, you may be voiding your warranty). I will presume that you have done this because you didn't like how noisy the fan becomes. My primary recommendation is: live with it. I know, however, how annoying these fans can be (it's a function of the small size of the chassis). The compromise solution is to shorten the temperature range over which the fan is taken from minimum to maximum. That way, the temperature can go to a higher level without the fan speed being increased. The downside of this compromise is that, if the temperature does get high enough to increase the fan speed, the rate of response is going to be more aggressive and thus more noticeable.
[Aside: this downside is an example of what is called psycho-acoustics. This is the study of how changes in acoustic levels affect people. An important phenomenon is that, over time, people will tend to start ignoring sounds that remain constant but, if these sounds start to vary in pitch or intensity, this won't happen and they can (will) then become a source of annoyance.]
Most folks are satisfied with this compromise. The fan speed is only going to change when temperatures get very hot and this doesn't happen that often. My recommendation on a good compromise is to shorten the temperature range to 5°C. That is, raise the minimum processor temperature by 5°C and increase the duty cycle increment so that the duty cycle will reach the 100% level at the Tcontrol temperature. To explain this better, suppose the BIOS default says to raise the duty cycle from its 25% minimum by an increment of 8% for each °C above 70°C. Knowing that the BIOS uses a 10°C temperature range, we know that the actual desired duty cycle increment was 7.5°C, but the value must be an integer so it had to be raised to 8°C to guarantee reaching 100% at or before the temperature reaches Tcontrol. If we want to raise the minimum temperature to 75°C, we need to use an integer increment that gets us to (or above) 100% over the 5°C range. (100% - 25%) / 5°C = 75% / 5°C = 15%.
15% is what we need to use.
(C) Other considerations
As mentioned, dissipating the heat generated by the processor is dependent upon the fan speed (duty cycle) and the temperature of the air. It needs to be remembered, however, that there are a lot of other components that make up the NUC and these components have to be cooled as well. In the standard NUC design, air enters the chassis via the inlets on the bottom. It then flows over the components on the 'bottom' of the board (Intel folks will always say 'board', not 'mainboard' and not 'motherboard'), goes around the edges of the board to the 'top' of the board, then travels through the fan and over the heatsink and is then exhausted from the chassis. To cool the components on the bottom of the board -- including any add-on mini PCIe (including WLAN, mSATA/M.2, etc.) cards and the memory SODIMMs -- it is important that there is sufficient airflow over these components as well. Thus, the fan speed control decision-making also needs to take into account the temperature of components on (or attached to) the bottom of the board.
In most NUCs, two temperature sensors are placed on the bottom of the board so that these temperatures can be monitored and taken into account. One is typically placed under the SODIMMs and one is typically placed under the primary mini PCIe card connector (i.e. the one intended for mSATA/M.2 SSDs). Unfortunately, the fan speed control solution only allows you to base the decision-making on two temperature inputs and one of these needs to be the processor temperature, so you can only use one of the temperature sensors on the bottom of the board. Which of these two sensors you decide to use is dependent upon which proves more sensitive to airflow. Because it is typically the most sensitive, the sensor under the mini PCIe card is used by default. If you are not using a card in this connector, you may want to switch over to use the sensor under the SODIMMs.
Like with the processor temperature, you can shorten the temperature range used for this secondary sensor. A method similar to that discussed above for the processor can be applied to do so.
Ok, you are probably as exhausted from reading this as I am from typing it in, so enough said. Let me summarize by saying I do not recommend the use of a fixed fan speed and leave it at that...
Edit: Oops, I missed something. I mentioned that the temperature of the air entering the NUC is a factor for dissipation (i.e. cool efficiency). If you are using your NUC in an area with higher temperatures or poorer airflow (like placing it in a closet), you are going to want to raise the minimum duty cycle to compensate.
Wow I didn't expect a detailed answer, thanks a lot for these explanations. I'm sure it will help a lot of people.
I have just registered at this site and signed in to say THANK YOU.
You are welcome, thank you for your words and time.