I bought a Machenike MiniPC on a whim in my country's online store. Even though it was a bit pricier than the current prices of TopTon Mini PCs for the specs it has, it is still a vast upgrade over my electronically decaying secondhand laptop. From 16DDR3 to 32DDR5 ram, and from an Intel i3 of some ancient generation to a AMD Ryzen 7 7735HS.The tasks that used to feel sluggish feels so snappy now. Visual Studio Code no longer feels like an electron app, and that means something (I still use Sublime Text though).
But damn when it is noisy, it is noisy. When the fan starts spinning, it is not just a background buzz. It is shrill. Shrill that will make your ears itch.
The CoolerControl solution above was a result of some drastic trial and error and a bit of observation. I don't know why it works, but here is what I noticed with my MiniPC.
- The MiniPC will reach temperatures of 80 degrees Celsius on idle. Be it a forgotten background task, browser shenanigan, scheduled task, or a result of the fan being powered down most of the time, the MiniPC cpu temps will just get hot. And when it reaches 80 degrees to 90 degrees, the fan and the rest of the motherboard will just start shrieking and glitching.
- YouTube videos and Twitch streaming for some reason is graphics intensive. Not as intensive as say, video or audio processing, but the fans notice when you do watch an online video or stream. I don't know why; disabling hardware acceleration will only help a little, but not a lot. Watching downloaded high resolution videos is fine, even from an external hard disk drive.
- There are instances where the integrated graphics card will do 100% load bursts. I was not able to detect why it happens, it is probably normal behavior as it is not persistent, and command line tools for graphics cards are barely of help. But the more 100% load bursts the graphics card does, the more temp spikes happen.
The first solution I've tried is to artificially underclock my AMD CPU by setting the governor to powersave instead of ondemand. This barely helped as it made my peripherals sleep randomly; the keyboard and mouse will just stop working, and sleep too quickly for comfort. Ondemand, which was the default, was the way to go.
CoolerControl was the noob-friendly solution I found for my machine. It provides a well-designed monitor for the temps in your machine, as well as control options via profiles and functions. Don't ask me how the profiles and functions work; I don't know how they work, I don't know how they differ. Creating a profile or a function is easy though; click Profiles & Functions from the sidebar >> click New Profile or New Function.
What worked for me is setting a New Fixed Profile to 40%. Based from observation, when creating a Fixed Profile, you are telling your machine to maintain your temps to the temperature you set. If that isn't what it actually does, don't quote me. At all even.
But what happened when I set a Fixed Profile at 40%, my machine now maintains that temperature on idle, at around 40% to 50%, while when on active use, my machine's CPU temps reaches 60%. In a way, my MiniPC feels more predictable now, and it only shrieks when doing some intensive tasks or Youtube videos on Chrome, which is not ideal. But at least now, you can easily reason what could be causing your MiniPC fans to shriek, unlike before, when the fans just brrrs out of heated madness.
I've tried a high Fixed Profile percentage, and a low Fixed Profile percentage. Those didn't work the way I want to, if at all.
I hope it helps you deal with your MiniPC temps, as I never really found a satisfactory solution in online search or in forums. Feel free to discuss it elsewhere; I don't understand why this worked, but this worked for me.
And by the way, the CoolerControl settings only works when it is on, so keep it running while using your machine.
Edit (2024-12-05):
Updating your Linux Kernel/distribution might help improve things. In my case, upgrading Linux Mint to the newest release allowed my CPU to use AMD-PState rather than the ACPI-CPUFreq. ACPI-CPUFreq did not interface well with my AMD Ryzen, and its powersave governor put my peripherals to sleep. Now with AMD-PState, my processors are on powersave, and without impact to the regular performance of my mini-pc and its peripherals.
If you are having trouble looking for cooling solutions for your mini-pc, look for single-fan router coolers or router fans. The fans used in these coolers are about the same size as desktop internal fans, and are the same form factor as most square-sized mini-pcs. If you happen to be looking for one in Lazada, here is the router cooling fan (affiliate link) I bought.