SOYO M4 Plus Fan Control
I like to have my backup server, Nextcloud, etc. at home, because then I know where my data is. Currently, services like these are running on a homebuilt server around an Intel N3700. This system doesn’t draw much power and is completely passively cooled, so I don’t mind it being continuously on.
However the CPU is showing its age, mostly because I gave the computer the additional task of being my media centre, where The Modern Web (YouTube) would send it lagging, a lot. More modern systems around the ‘Intel Processor’ line of low-power CPUs are available, either as ‘mini PCs’ or passively cooled firewall appliances. Some even have internal expansion ports despite their small size and power budget.
As my current server/HTPC runs fine, I didn’t want to buy any new hardware just for an upgrade, so I set up an alert for ’N150’ and waited for a used computer with expansion capabilities for a good price. This computer happened to be a Soyo M4 Plus.
The Soyo M4 Plus does have a fan, unlike my current setup, but I was positive that it’d just let me turn it off under low load or run with thermal throttling instead. As it turns out, not without a fight.
There are lots of fan settings in the BIOS, including temperature thresholds and PWM values. None of these do anything, though and there is no software support using typical fan control utilities. It’s not very noisy, but the CPU fan runs continuously and there is no software-only way to stop it from doing that.
At least, the BIOS doesn’t mind if I unplug the fan and its tachometer signal goes missing. The computer runs fine and doesn’t melt immediately. Possibly it’s even fine to run throttled without any active cooling, but I didn’t run a prolonged stress test. My goal was for the fan to be off for regular operation and activate when needed.
The lack of control is because the CPU fan’s PWM signal is driven by a small 8-pin microcontroller, which does, as far as I can tell, not communicate with the rest of the system. Instead, it has an analogue temperature sensor somewhere and controls the fan speed based on that.