Fans and Temperature
Controlling the fan behavior is pretty strightforward:
[fan_control] speed = -1 min_fans = 1
speed setting lets luxminer increase or slow down the fans depending on the temperature needs. Depending on your environment, you will want a finer control, for example running in a lower speed due to noise or fixing the speed at
100 to maximize cooling.
min_fans let you choose what is the minimum number of fans that need to be working. If we go below this minimum, the system panics and stops, in a tentative to avoid hardware damage due to high temperatures. For aging hardware, fans sometimes go offline and then back on again shortly after, so take this into consideration when setting this parameter.
Do remember that if immersion mode is activated, those values are ignored.
Temperature control is divided in two parts. The first one is the definition of maximum temperature thresholds:
[temp_control] target_temp = 80.0 # for S9 models hot_temp = 85.0 # for S9 models panic_temp = 90.0 # for S9 models
In this case, if the miner goes above
target_temp, the automatic fan speed handling of LUXminer jumps immediately to
100 in an effort to lower the temperatures to more reasonable defaults. Regardless of that, once the temperature of
panic_temp is reached, the board voltage is abruptly cut and the system panics to try to avoid hardware damage due to high temperatures.
The second configuration block defines how we should handle the temperature sensors:
[temp_control.sensor] bad_average_threshold = 2 max_bad_readings = 10 min_per_board = 1
First, we use
min_per_board to define what is the minimum number of working temperature sensors required, per board. If this value is not met, the board is rebooted in an effort to make it work, but if it keeps failing, the board is shut down for good.
To determine wether a temperature sensor is good or not, we have the
max_bad_readings parameter. If we get that many bad readings in a row, we assume the sensor is "broken" and act accordingly.
But what defines a "bad" reading? A couple of possible causes:
- We couldn't identify the sensor.
- The sensor does not answer after a rather generous number of tries.
- The sensor answers, but the temperature value is erratic. This is detected by checking the average temperature, and if it goes above
bad_average_thresholdbetween readings, the reading is considered "unreliable", and count as an error.