MINISFORUM EliteMini H31G Coffee Lake Mini PC Review with Windows & Linux

MINISFORUM EliteMini H31G Review

MINISFORUM have launched their EliteMini H31G which combines a desktop CPU with a discrete graphics card in a mini PC form factor. It supports various Intel 9th and 8th gen desktop processors combined with an NVIDIA Geforce GTX1050 Ti graphics card and targets both gamers and content creators. Available as a barebones device and in various configurations MINISFORUM sent a fully configured model for review.

Hardware overview

The MINISFORUM EliteMini H31G is a remarkably small mini PC for what it offers and physically consists of a 154 mm x 153 mm x 62 mm (6.06 x 6.02 x 2.44 inches) rectangular plastic case with a metal base. It is an actively cooled mini PC that uses Intel’s LGA 1151 socket and supports desktop processors up to a maximum TDP of 65W. The review model came with an Intel Core i5 9500F Coffee Lake processor pre-installed which is a six-core 6-thread 3.00 GHz processor boosting to 4.40 GHz. The included and non-upgradable discrete graphics card is an NVIDIA Geforce GTX1050 Ti based on Pascal architecture with 4GB of GDDR5 memory and 768 CUDA cores.

The front panel has a blue LED illuminated power button, a headphone jack, and a small pin-hole to access a reset button. The left side panel includes ports for line in, mic in, and headphones out together with a micro-SD card slot. The rear panel includes the power jack, HDMI port, mini DisplayPort, gigabit Ethernet port, four USB 3.0 (USB 3.1 Gen 1 or USB 3.2 Gen 1×1) ports, and a Kensington lock. Having all the USB ports on the rear of the device is not particularly convenient especially as they are stacked and close together meaning bulky USB devices may restrict otherwise free ports.

Additionally, there is WiFi 6 (802.11ax), support for dual-channel DDR4 2666MHz SODIMM memory as well as an M.2 2280 NVMe slot, an M.2 2242 SATA slot, and space for a 2.5” SATA drive. The review model included a single 8GB 2400MHz memory stick and a 256GB M.2 2280 NVMe SSD drive.

The full specifications for MINISFORUM Elite include:

The internal storage is easily accessed by unscrewing the four captive screws on the base and then removing it:

To access the memory you need to remove the plastic 2.5” drive tray by unscrewing the four screws:

If you want to access the CPU socket you will have to take out the entire motherboard and remove the fan assembly:

as can be seen in this breakdown image:

To power the mini PC an external 19V/7.4A power adapter is required which is nearly as large and heavy as the mini PC itself:

MINISFORUM EliteMini H31G box contents

In the box you get the power adapter and cord, an HDMI cable, a mini DisplayPort to DisplayPort cable, and a VESA mounting bracket together with screws for attaching the device to behind a monitor:

Also included is a mesh dust filter with magnetic strips which can be placed over the fan intake on the top of the device.

Review methodology

When reviewing mini PCs I typically look at their performance under both Windows and Linux (Ubuntu) and compare against some of the more recently released mini PCs. Specifically, I am now reviewing using Windows 10 version 2004 and Ubuntu 20.04 LTS and test with a selection of commonly used Windows benchmarks and/or equivalents for Linux together with Thomas Kaiser’s ‘sbc-bench’ which is a small set of different CPU performance tests focusing on server performance when run on Ubuntu. I also use ‘Phoronix Test Suite’ and now benchmark with the same set of tests on both Windows and Ubuntu for comparison purposes. On Ubuntu, I also compile the v5.4 Linux kernel using the default config as a test of performance using a real-world scenario.

Prior to benchmarking, I perform all necessary updates and/or installations to run the latest versions of both OSes. I also capture some basic details of the mini PCs under review for each OS.

Windows 10 performance

The H31G came installed with a licensed copy of Windows 10 Home version 1909 build 18363.904. Rather than attempting to upgrade Windows, I opted to reinstall with version 2004 using a downloaded Windows ISO and then upgrade to build 19041.508. A quick look at the hardware information shows it is aligned to the specification with the exception of the Windows edition however MINISFORUM have confirmed that the customer-shipped units will include Windows 10 Pro:

Click to Enlarge

Note that the included M.2 NVMe drive is self-branded as ‘minisforum’ so the manufacturer is unknown.

A brief check showed working audio, micro-SD, Wi-Fi, Bluetooth, and Ethernet. The two audio output ports show up with the front headphone jack as:

and the side line out port as:

I then ran my (2020) standard set of benchmarking tools to look at performance under Windows:

For my specific set of Phoronix Test Suite tests the results were:

All these results can then be compared with other recent mini PCs

Click to Enlarge

As expected the EliteMini H31G mini PC is much more powerful compared to traditional mini PCs. I also tested the Blender ‘BMW’ benchmark for both CPU and GPU (CUDA):

MINISFORUM EliteMini H31G Ubuntu performance

After shrinking the Windows partition in half and creating a new partition I installed Ubuntu using an Ubuntu 20.04.1 ISO as dual boot. After installation and updates including installing the NVIDIA driver, a brief check confirmed working audio, micro-SD, Wi-Fi, Bluetooth, and Ethernet. The two audio output ports show up with the front headphone jack as:

and the side line out port as:

The key hardware information under Ubuntu 20.04.1 is as follows:

I then ran my Linux benchmarks for which the majority of the results are text-based but the graphical ones included:

And for the same set of Phoronix Test Suite tests the results were:

The complete results together with a comparison of EliteMini H31G against other recent mini PCs are:

Click to Enlarge


Again the H31G mini PC is much more powerful compared to traditional mini PCs running Ubuntu.

The results from running the Blender ‘BMW’ benchmark for both CPU and GPU (CUDA) were:

Browsers & Kodi

For real-world testing, I played some videos in Edge, Chrome and Kodi on Windows and in Firefox, Chrome and Kodi on Ubuntu. The following tables summarise the tests and results for each of web browsing, Kodi in general, and Kodi playing specific videos:

Hardware acceleration is not supported in Ubuntu for NVIDIA graphics when decoding VP9 and 10-bit HEVC (H.265) videos which results in software decoding being used and occasional skipped frames together with louder fan noise.

I also tried playing an 8K video in Kodi on both OS. In Windows an 8K 30 FPS video played without issue:

However in Ubuntu, the software decoding resulted in 100% CPU usage and consequently juddery playback and loud fans:

For 8K 60 FPS videos in Windows the GPU decoding max’ed out at 100% resulting in occasional frame skipping:

and in Ubuntu with software decoding and 100% CPU usage the result was again juddery playback and very loud fans:


The inclusion of an NVIDIA Geforce GTX1050 Ti graphics card makes gaming possible. I tested three games under Steam in both Windows and Ubuntu (Counter Strike: Global Offensive, Grand Theft Auto V, and Shadow Of The Tomb Raider) at two resolutions (1920×1080 and 1280×720) with a mix of settings:

Note that on Ubuntu I relied on Steam’s in-game FPS counter to estimate the average FPS as I did not have tools equivalent to MSI AFterburner/Rivatuner available. However, this can be visually verified with the in-game benchmark from Shadow Of The Tomb Raider:

Whilst the results were similar, overall using Windows is slightly better for gaming performance including not having to wait for (or skip) Vulkan shaders to be processed.


Network connectivity throughput was measured on Ubuntu using ‘iperf’:

The wifi results are very good especially for the 5 GHz band with speeds only slightly slower than gigabit ethernet.

EliteMini H31G Thermals

As previously mentioned the H31G uses active cooling with four copper pipe heat sinks and two fans to assist with heat dissipation from both the CPU and GPU. Although the device didn’t become hot to touch, the fans are audible under load.

During benchmarking the maximum temperature I recorded on the top of the device was around 28°C in an ambient room temperature of 23.7°C. The hottest area is the back of the device where the fans vent out the hot air. The loudest the fans became during the benchmarking peaked at 61 dBA when the fans ran at their maximum RPM compared to around 38 dBA when running without load and around 50 dBA under load.

Running a stress test on Ubuntu saw the CPU temperature rise quickly to 80/82°C when the fans ramped up resulting in the temperature dropping to 68/70°C and then climbing up to 82/84°C where they remained hovering. The test was interrupted after everything appeared stable and the CPU temperature dropped immediately to around 58°C and then down to 38/40°C after a further three minutes or so:

Whilst the stress test was running the fans were loud at around 50 dBA. However in games, the fans can start ramping up and down to and from their maximum RPM and become very loud at over 60dBA as previously mentioned. This can be seen visually by comparing the CPU temperature against the fan RPM during the Shadow Of The Tomb Raider (SOTTR) benchmark where for both Windows and Ubuntu during the market scene the CPU workload increases causing the temperature to rise making the fans respond:

A simple way to prevent this during games is to use ‘vsync’ or equivalent if the average FPS is higher than 60 FPS as this prevents the CPU from overworking. For example in GTA V at 1920×1080 resolution at the end of the benchmark, the CPU is hitting 85°C and there is also visible stuttering at times as the framerate 1% and 0.1% lows drops to 5 and 4 respectively:

Setting ‘vsync’ (note the refresh rate)

fixes both the fan bursts (as the CPU now only reaches 66°C) and the stuttering (both the framerate 1% and 0.1% lows improve to 45 and 25 respectively):

However, in more demanding games and/or settings where the framerate is already lower than 60 FPS an alternative approach is required.


As a result of the CPU getting very hot two issues occur. Firstly, the fans ramp up excessively when dealing with the higher CPU temperatures as seen above. Secondly in response to the high CPU temperature thermal throttling occurs both in Windows:

and in Ubuntu:

By reducing the power to the CPU through undervolting less heat will be produced whilst maintaining at least the same level of performance. However, the amount you can undervolt and still maintain stability is determined by the silicon lottery. Another benefit of reducing the CPU temperatures is to minimize the need or frequency of thermal throttling occurring and thereby actually improve performance as a result.

I used Intel’s Extreme Tuning Utility or XTU tool to undervolt the core voltage by -0.125V or -125 mV:

However, I could have used Throttlestop:

Note that due to the Plundervolt vulnerability (CVE-2019-11157),  you need to use a version that hasn’t been patched as the BIOS does not offer the ability to undervolt.

Running the SOTTR benchmark when using an undervolt of -0.125V in Windows reduced the CPU temperature enough to prevent the extreme fan bursts:

without impacting the gaming performance:

A similar result was achieved in Ubuntu by manually writing the encoded voltage offset to the relevant CPU machine specific register (MSR):

As mentioned undervolting can result in improved performance previously lost through thermal throttling. The same -0.125V undervolt improved the Cinebench multi-core score from 2200 to 2417:

It also resulted in better CPU Blender scores in both Windows (7m7s down to 6m24s):

and Ubuntu (5m38s down to 5m13s):

leaving as expected the GPU (CUDA) score unaffected (at 4m22s):

Using dual-channel Memory

As the review model came with only a single 8GB stick of memory installed (therefore single-channel) a simple way to improve performance is to replace this with two 4GB sticks and run in dual-channel. Adding additional memory capacity will also improve performance up to a certain point through reducing swapping.

For example when I replaced the 8GB stick with two 16GB sticks giving me 32GB in total:

I saw an improvement in the Sky Diver benchmark from 19377 to 20135:

Combined Performance Improvements

By increasing both the memory (2 x 16GB) and undervolting the CPU (-0.125V) not only did the mini PC run quieter whilst gaming by preventing the fan bursts but performance improvements were also achieved.

For example in Windows:

Sky Diver improved from 19377 to 20428:

PC Mark 10 improved from 5153 to 5334:

GTA V running at 1280×720 improved from 145 FPS to 172 FPS:

SOTTR running at 1280×720 improved from 85 FPS to 97 FPS:

A similar improvement in Ubuntu was also observed for SOTTR going from 89 FPS to 92 FPS:

EliteMini H31G Power Consumption

Power consumption with the 32GB of RAM installed was measured as follows:

  • Initially plugged in – 1.4W
  • Powered off (shutdown) – 1.1W (Windows) and 0.8W (Ubuntu)
  • BIOS*  – 30.7W
  • Boot (GRUB) menu – 30.7W
  • Idle – 15.9W (Windows) and 14.1W (Ubuntu)
  • CPU – 101.7W then 88.1W (Windows ‘cinebench’) and 125.0W then 90.1W (Ubuntu ‘stress’)
  • 4K video playback** – 32.8W (Windows) and 59.0W (Ubuntu)
  • Gaming benchmark*** – Up to 150W (Windows) and up to 150W (Ubuntu)

*BIOS (see below)

**The power figures fluctuate so the value is the average of the median high and median low power readings. The 4K video power draw in Ubuntu was higher than Windows due to software decoding of the VP9 codec in Ubuntu whereas Windows used hardware acceleration.

*** The in-game benchmark from Shadow Of The Tomb Raider was used and the maximum power draw occurred during the market scene near the end of the benchmark. With a -0.125V undervolt applied the maximum power draw lowered to 139W (Windows) and 142W (Ubuntu).


A brief overview is available in the following video:

The BIOS includes an option ‘H/W Monitor’ which allows the fans to be controlled through four modes: Full On Mode, PWM Manually Mode, Thermal Cruise Mode, and SMART FAN Mode which is the default. The first three allow setting the PWM output to between 0 and 255 to control the duty cycle percentage for the fans. Unfortunately, no settings which might allow further fine-tuning are accessible for SMART FAN Mode.

EliteMini H31G review – final observations

The primary limitation of small form factor mini PCs is their reliance on integrated graphics which currently results in poor performance in more demanding applications and games. By combining a discrete graphics card with a desktop processor and still maintaining the small physical footprint the EliteMini H31G makes for an exciting mini PC proposition. Whilst not perfect due to the demands of cooling both the CPU and GPU the overall result is still very good with impressive performance coupled with flexible memory and storage options. When space is an absolute premium and graphics are a must then the H31G is a viable choice given its minimal 1.46L volume.

Highlights: Limitations:
Performance vs size No front/side facing USB ports or USB-C
Wifi 6 Loud fans under load

MINISFORUM is now taking orders on their website with shipping by the end of November. The model reviewed above costs $629.00 with free worldwide shipping and MINISFORUM provides 30-day returns, 24-months warranty, and lifelong tech support.

Share this:

Support CNX Software! Donate via cryptocurrencies or become a Patron on Patreon

4 Replies to “MINISFORUM EliteMini H31G Coffee Lake Mini PC Review with Windows & Linux”

  1. Awesome review!

    “Adding additional memory capacity will also improve performance up to a certain point through reducing swapping.”

    Before swapping Anon pages happens, page cache gets evicted due to memory pressure. That causes delays when those pages are accessed and have to be loaded back from disk. More memory allows more page cache for shared libraries and filesystem metadata blocks, which results in less page faults and disk access. The term for this is “residency”, just the same as for CPU caches, but instead referring to system memory acting as disk cache.

    More memory = higher residency and that’s what improves performance. To a point. ie if you have 128G of RAM and while running your application you never have less than 96GB free, you obviously have 96GB more memory than you needed lol.

    So just because you’re not swapping doesn’t mean that more memory won’t improve your performance.

    Also, just because you have used swap doesn’t mean your performance is being impacted. For example, I have a Google Compute T1 instance running Ubuntu 18.04 with Xfce desktop in a little under 600MB of RAM, with a LAMP stack in the background. When I am not using the desktop, its Anon pages get swapped out to enhance the page cache for the LAMP stack. I go weeks without using the desktop. Sometimes I force eviction of the desktop by writing 400MB from /dev/null to /dev/shm via ssh, then deleting the temporary file. When I’m done this is what things look like:

    $ free
           total    used    free   shared buff/cache  available
    Mem:     594888   199048    53648    5016   342192   299984
    Swap:    3740608   189152   3551456

    As you can see I’m using 189152M of swap. But I have 299984M of cached pages and 199048M free. The LAMP stack never depletes the available RAM, so there’s no performance impact even though there’s roughly 32% of the memory swapped out.

    Swap isn’t the problem when it comes to performance. Residency is the important thing.

    1. The experience was initially somewhat limited. The wireless mouse was undetectable forcing the use of a wired one. WiFi was also undetectable as was Ethernet however I was able to get Ethernet working by loading/reloading the relevant modules. Screenshots could not be saved however that might be a limitation of using a ‘live’ ISO. As an aside the ‘nouveau’ driver was automatically used for graphics. As to compatibility, I am unsure of the impact of not having WiFi or how difficult it would be to add WiFi 6 support so cannot give a definitive answer.

Leave a Reply

Your email address will not be published. Required fields are marked *