webMAN-MOD icon indicating copy to clipboard operation
webMAN-MOD copied to clipboard

[Suggestion] Manual Fan Control

Open PS3-4K-Pro opened this issue 2 years ago • 5 comments

Aldo, maybe a checkbox for the highest fan speed is needed, just like the lowest one, because if we use a web command or try to manually set a value higher than the declared in that field won't allow us to set it. I think manual mode could bypass it (and just work if the hightest check box is marked) or only make the automatic modes use those values (lowest and hightest).

image

PS3-4K-Pro avatar Jul 28 '22 05:07 PS3-4K-Pro

The % range for fan speed is used by dynamic mode (auto).

Manual mode let you set the desired fan speed manually. This is intentional.

aldostools avatar Jul 28 '22 11:07 aldostools

The % range for fan speed is used by dynamic mode (auto).

Manual mode let you set the desired fan speed manually. This is intentional.

I can't set any Higher value for manual mode than the one set in the hightest field, even if the check box is not checked.

Let's say i set it to 91, after saving it will back to 90 as my highest speed is set to 90

PS3-4K-Pro avatar Jul 28 '22 18:07 PS3-4K-Pro

I can't set any Higher value for manual mode than the one set in the hightest field, even if the check box is not checked. Let's say i set it to 91, after saving it will back to 90 as my highest speed is set to 90

It does seem that the code is indeed inconsistent in the enforcement of maximum manual fan speed. You can find multiple instances in setup.h, where it's using webman_config->maxfan (max value set in the setup page) as the limit, while in combos.h (holding SELECT + UP/DOWN?) the limit is hardcoded as 95%.

setup.h: webman_config->man_rate = get_valuen(param, "manu=", MIN_FANSPEED, webman_config->maxfan); // % webman_config->man_rate = RANGE(webman_config->man_rate, MIN_FANSPEED, webman_config->maxfan); // %

combos.h: webman_config->man_rate = RANGE(webman_config->man_rate, 20, 95); //%

My guess is that it's just an oversight as for example the macro MIN_FANSPEED is declared as 20% in fancontrol.h, but there's no MAX_FANSPEED (presumably 95%). That means there's no single single point to reference to, resulting in this incosistency.

Declaring the new macro and fixing all references (not all of them listed here) does seem to fix the issue.

kostirez1 avatar Aug 05 '22 15:08 kostirez1

Thank you for reporting this inconsitency.

Actually it was intentional to allow the user to increase the fan speed manually to any desired value without restrictions when the combo is used. However, as you comment, it becomes an inconsistent design. I will change the 95% to webman_config->maxfan for the next update

combos.h webman_config->man_rate = RANGE(webman_config->man_rate, MIN_FANSPEED, webman_config->maxfan); //%

Thanks again.

aldostools avatar Aug 05 '22 17:08 aldostools

So it means that the % range used by dynamic mode is also supposed to limit the upper value of manual mode? Would it be possible to reflect this in the max attribute of HTML input field, so the web browser wouldn't let you set it past the currently saved upper value of dynamic mode?

I think it's a bit confusing for normal users, leading to confusion as to why is the value silently changed to lower value (equivalent to webman_config->maxfan).

Even I had been confused why is webMAN MOD automatically switching to PS2 Manual fan mode when being unloaded, only to find out that it's possible to lower "PS2 Emulator fan speed" value below the minimum of dynamic mod range and then it will switch to SYSCON mode instead. (the default before loading webMAN MOD)

I'm sorry if this is documented somewhere and I'm just blind, but it's just unexpected behavior to me. 😅

kostirez1 avatar Aug 05 '22 20:08 kostirez1