Hardkernel have added Intel Jasper Lake mini PCs to their ODROID-H series and they are known as the ODROID-H3 and ODROID-H3+. Like the discontinued ODROID-H2/H2+, this new series also supports the Net Card which will add four extra 2.5 gigabit Ethernet ports. Hardkernel kindly sent an ODROID-H3+ together with a selection of accessories for review and I’m going to look at the effect on performance when changing the Power Limit values in the UEFI (BIOS) together with the network performance of the Net Card.
ODROID-H3+ hardware overview
The ODROID-H3+ physically consists of a 110 x 110 mm (4.33 x 4.33-inch) motherboard complete with an Intel Pentium Silver Jasper Lake mobile N6005 processor which has 4 cores and 4 threads and can boost to 3.3 GHz and also includes Intel UHD Graphics.
The processor, and nearly the entire motherboard, is covered by a large metal heat sink:
The front of the motherboard has a power switch, a reset switch, and five LED indicators for NVMe, SATA, power, sleep, and PMIC. The rear has a power jack, dual 2.5 gigabit Ethernet ports, dual USB 2.0 ports, dual USB 3.1 (USB 3.2 Gen 2×1 i.e. 10 Gbit/s) ports, a DisplayPort 1.2, an HDMI 2.0 port and audio ports consisting of audio out, audio in and SPDIF out. Along the left, there are two SATA 3 ports and two corresponding SATA power connectors plus the CMOS battery connector. On the right, there is a 24-pin peripheral expansion (GPIO) header and a fan header to allow active cooling. Finally, on the top of the board, there is the eMMC socket and on the underside, there is an M.2 2280 NVMe PCIe Gen 3.0 slot together with dual DDR4 SODIMM memory slots:
The full specifications state:
Accessories
When purchasing the ODROID-H3+, besides the motherboard you will need additional components to build a fully functional system, typically storage, memory, and a power supply. Hardkernel sent me a range of components including accessories, consisting of:
- A power adapter and cord
- Two sticks of 16 GB DDR4 3200 MHz memory for a total of 32 GB of memory
- A 64 GB eMMC card
- A Net Card
- A cooling fan
- A power switch
I was also sent a DIY-build case, the ODROID-H3 Case Type 7, which is suitable for the Net Card and two 2.5” SATA drives:
ODROID-H3+ PL Review Preparation including Issues and Resolutions
The first part of the review looks at modifying the processor’s Power Limits (PL) on the ODROID-H3+ and specifically looks at ‘PL4’ and its ability to allow the CPU to run in ‘Unlimited Performance mode’. For this, I decided to install Windows 11 Pro and run a sub-set of my usual benchmarks of 3DMark’s Fire Strike, PassMark’s PerformanceTest, and Maxon’s Cinebench R20 to measure CPU performance.
Having prepared the ODROID-H3+ by installing the supplied CMOS battery, memory, and eMMC card, I also added to the bottom of the motherboard, four of the short white standoffs from the case accessories which I then secured in place by adding four of the long white standoffs, so this would raise the device and ensure airflow both above and below the ODROID-H3+:
Next, I installed Windows 11 Pro from USB having downloaded the Windows 11 ISO from Microsoft. On booting Windows and after updating, checking the drivers showed some were missing:
Searching the Odroid forums pointed to installing the ‘Chipset Device Software for Intel NUC11AT Products’:
However, after this, the ‘Base System:’ driver was still missing:
This was resolved by downloading the ‘GNA Scoring Accelerator’ again for NUC11AT products:
Once the driver issue had been fixed, given the eMMC card is only 64GB, there was not a lot of free space left:
Because I didn’t need the 13GB Windows hibernation file…
… I removed it using the ‘powercfg /H off’ command and then installed the benchmark software.
Hardkernel has very extensive documentation on the ODROID-H3+ on their wiki page which aside from including how to install Ubuntu, includes the board layout, schematics, pin details for the board’s various headers, and other hardware-specific information.
ODROID-H3+ PL Performance (Unlimited Performance mode)
First looking at some basic information about the ODROID-H3+. Accessing the UEFI (BIOS) shows that ‘PL4’ is set to 30000:
which, as per the ‘help’ screen:
means the CPU will be restricted to a 10W maximum power consumption.
Interestingly, HWiNFO64 doesn’t show ‘PL4’ but it does show ‘PL1’ as 10W and ‘PL2’ as 25W even though they were disabled in the UEFI (BIOS). What is shown that reflects the change of the ‘PL4’ value, is the value for ‘CPU Power Limits (Max)’ which has been set to 30A:
The HWiNFO64 summary information is as follows:
Whilst the installed memory is DDR4 3200 MHz:
it only runs at 2933 MHz:
GPU-Z still doesn’t recognize the Intel Jasper Lake iGPU:
The eMMC card performance is as expected:
Running the benchmarks provides the (default) baseline in the table below. Of particular interest from the benchmark results is the detailed monitoring information provided by Fire Strike:
The CPU temperature is recorded for the duration of the benchmark and shows it was stable with no extremes, reaching a maximum of just under 72°C. This shows that a ‘PL4’ setting of 30000 is perfectly acceptable for running the ODROID-H3+ as passively cooled.
Next, I changed the value for ‘PL4’ to 0 try ‘Unlimited Performance mode’:
Hardkernel covers the actual process of changing the value on their wiki.
This time in HWiFO64 the effect of the new ‘PL4’ value is that ‘CPU Power Limits (Max)’ has increased to 75A:
After running the benchmarks (see the second column in the table below), whilst the scores have improved considerably, the temperature monitoring during Fire Strike shows that active cooling is required because the temperature during the CPU-intensive tasks of the ‘Physics test’ is constantly around 105°C:
The next column of the table shows the benchmark results when running the ODROID-H3+ with the typical values for ‘PL1’ (10W) and ‘PL2’ (25W) seen in other mini PCs with the same processor:
Interestingly, the HWiFO64 information doesn’t appear to change with ‘CPU Power Limits (Max)’ again showing 75A:
Therefore it isn’t possible to determine what the ‘PL4’ settings are using this application alone and the UEFI (BIOS) must be entered and checked manually.
The benchmark results are very similar but overall slightly worse than the results for those when ‘PL4’ was set to 0 albeit the differences are very small. The Fire Strike detailed monitoring information is also similar but with some slight observable differences although once again, the temperature during the ‘Physics test’ reached 105°C indicating that these Power Limit settings require active cooling:
So given that ‘Unlimited Performance mode’ offers the best overall performance, whilst obviously incurring some thermal throttling, I wanted to see what the effect of adding a fan would have on the results.
By using the silver standoffs from the case and inserting them in through the fan mounting holes, I was able to improvise an active cooling set-up:
The results are arguably better with the fan than without based on the number of benchmarks being greater, albeit again marginally:
The one benchmark that stands out is the CPU-intensive ‘CINEBENCH Release 20’. The addition of the fan generates over a 5% increase. Given the other benchmark margins are so small, it is possible that the analysis could have been skewed by the margin of error from running a benchmark.
To gauge what the margin of error might be for the ‘CINEBENCH Release 20’.test I ran it three times, which admittedly is a small sample, and calculated the margin of error to be in the order of ±1.2%:
Revisiting the results with the assumption that the benchmarking margin of error is relatively small, this still suggests that ‘Unlimited Performance mode’ will give the best performance, and, given the temperature reaching the CPU’s ‘TJUNCTION‘ of 105°C without a fan, this mode also requires active cooling to prevent thermal throttling and, as the saying goes, to prevent the CPU from frying (or potentially degrading through electromigration or similar):.
ODROID-H3+ Net Card Review Preparation including Issues and Resolutions
The second part of the review looks at the performance of the ODROID-H3+ Net Card which uses the motherboard’s PCIe slot to add four extra 2.5 gigabit Ethernet ports.
When testing a mini PC’s Ethernet performance, I normally connect the mini PC to a router which is also connected to a PC whose Ethernet connection speeds are known to run at the maximum. I then use ‘iperf3’ to test network speeds. As the ODROID-H3+ includes dual 2.5 gigabit Ethernet ports, one of these could be used as a WAN port and the other as a Management port when adding the Net Card which could then provide four LAN ports. By installing an application like pfSense on the ODROID-H3+, it could then be used as a router.
Alternatively, given the ODROID-H3+ supports two external SATA drives, together with the Net Card and installing an appliance like TrueNAS, the ODROID-H3+ would make an ideal NAS. Both functionalities could be combined, and although TrueNAS supports Virtual Machines which could be used for installing pfSense, my preference was to use a hypervisor and run pfSense and TrueNAS as VMs.
Initially, I looked at using ESXi, however all the ODROID-H3+ and Net Card Ethernet ports use the RTL8125B chipset which isn’t natively supported by ESXi, so I decided to use PROXMOX.
First I physically installed the Net Card on the ODROID-H3+ with reference to Hardkernel’s wiki page on the Net Card.
Prior to using the Net Card, a different version of the UEFI (BIOS) needs to be flashed in order to provide 4 bifurcated x1 lanes from the PCIe slot which again is explained in detail on the Hardkernel Net Card wiki page including details of the actual process.
Hardkernel differentiates their UEFI (BIOS) version by using the ‘Project Version’ and ‘Build Date’ settings. Unfortunately, HWiNFO64 doesn’t show the ‘Project Version’ of the installed UEFI (BIOS) but it does show the ‘Build Date’:
For the ‘Project Version’, you specifically have to boot into the UEFI (BIOS) and check the main screen:
More importantly, there is no distinction between the regular and Net Card UEFI (BIOS) which suggests it is best practice to flash the Net Card UEFI (BIOS) when attaching the Net Card and also flash the regular UEFI (BIOS) when removing the Net Card:
After updating the UEFI (BIOS) I reset ‘PL4’ to 0 to keep using ‘Unlimited Performance mode’ given I was going to continue using the fan.
Having prepared the Net Card, I next configured two 2.5” SATA drives by repurposing two M.2 NVMe SATA drives and installing them into two M.2 SSD to 2.5” SATA adapters.
Next, I built the case by following the video on Harkernel’s wiki page and added the fan on top as explained in this video.
Unfortunately, PROXMOX doesn’t support the eMMC card as it fails to recognize the drive. Whilst this is logged as an ‘open’ issue on the PROXMOX ‘GitHub’ page, the issue does include a possible solution. There are several ways to use this suggestion, including manually making a bootable USB drive and editing then copying the installation files to it, or, respin the PROXMOX ISO with a pre-edited version of the installer. Given my interest in ISO respinning I chose the latter option and having unsquashed the installer file system, I applied a rather heavy-handed and highly unsupportable edit of:
1 |
sed -i '748c\\treturn "${dev}p$partnum";' squashfs-root/usr/bin/proxinstall |
and then respun the ISO, wrote it to a USB, and successfully installed PROXMOX on the ODROID-H3+ eMMC card.
Afterward, installing pfSense was straightforward:
as was installing TrueNAS:
To set up the test network, in PROXMOX I configured one of the ODROID-H3+ Ethernet ports as my WAN bridge, and then bound all of the four Net Card Ethernet ports as my LAN bridge which I passed to both VMs. I then added the SSD physical disks as virtual SCSI disks and passed them through to the TrueNAS VM:
Having configured some rules on the pfSense firewall, the ODROID-H3+ was ready for testing network performance using ‘iperf3’:
ODROID-H3+ Net Card Performance
The actual testing was conducted by connecting two PCs to the Net Card’s LAN, one with a 10 gigabit Ethernet port to act as a server, and the other with a 2.5 gigabit Ethernet port to act as the client. Both the server PC and client PC were dual boot Windows 11 Pro and Ubuntu 22.04.1. I used ‘iperf3’ to test network performance between various combinations of PCs (client and server), hypervisor (PROXMOX), and one of the VMs (TrueNAS):
The testing shows that the Net Card’s 2.5 gigabit Ethernet ports perform as expected with a maximum average speed of 2.35 gigabits per second:
The PC-to-PC average was 2.22 Gbits/s for download and 2.04 Gbits/s for upload.
The rest of the result permutations and combinations highlight the potential overheads of hypervisors, VMs, and appliance applications and are included for interest.
CPU Usage
In parallel, I also very briefly looked at the CPU load on the ODROID-H3+ by monitoring ‘/proc/stat’. When idle, the CPU usage was less than 5%. Running ‘iperf3’ between PROXMOX and the server PC running Windows, during download (2.36 Gbits/s) the CPU usage was around 30% however during upload (1.84 Gbits/s) the CPU usage dropped to around 20%. Whereas between TrueNAS and the Windows server PC, the CPU usage was around 85% during download (2.35 Gbits/s) and 35% during upload (1.90 Gbits/s). This suggests that the overhead of running the TrueNAS appliance creates additional CPU load which should be considered if running the ODROID-H3+ passively.
Power Consumption
Power consumption was measured using the above configuration, i.e. with the Net Card installed, using the case and fan, together with ‘PL4’ set to 0 and running PROXMOX, etc:
- Powered off – 1.2 Watts
- UEFI (BIOS) – 18.8 Watts
- GRUB boot menu – 18.0 Watts
- Idle
- 8.2 Watts (PROXMOX)
- 10.2 Watts (with pfSense)
- 10.5 Watts (and TrueNAS)
- 11.6 Watts (and 2 PCs connected)
- On a LAN-connected Windows PC, opening ‘File Explorer’ with ‘View’ set to ‘Extra large icons’ on a directory containing multiple images – 18.8 Watts
Final Observations
Using a ‘PL4’ power setting of 0 coupled with a fan certainly seems to be the easiest way to get ‘Ultimate Performance’ from the ODROID-H3+ SBC. If the Net Card is added then CPU usage will increase and will undoubtedly make use of the ‘Ultimate Performance’.
Having used the ODROID-H3+ as a NAS and router for the purposes of testing and storing images and results for this review, by running PROXMOX headlessly with auto-startup of the VMs at power on, my personal experience of the ODROID-H3+ and Net Card has been very good.
Highlights | Limitations |
---|---|
Multiple ports and headers | Realtek Ethernet ports |
PCIe NVMe support | No WiFi or SD card slots |
Both passive and active cooling | No OOTB PROXMOX eMMC support |
I’d like to thank Hardkernel for providing the ODROID-H3+ board and accessories for review. The ODROID-H3+ can be purchased for $165, the case type 7 for $20, and the Net Card for $47.
Ian is interested in mini PCs and helps with reviews of mini PCs running Windows, Ubuntu and other Linux operating systems. You can follow him on Facebook or Twitter.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
Maybe one way to avoid throttling at PL4=0 is to limit the frequency to 3.2 or maybe 3.1 GHz which could possibly still provide you the benefits of the higher non-throttled frequency.
> This suggests that the overhead of running the TrueNAS appliance creates additional CPU load
The 85% CPU utilization were just caused by an iperf3 run between client and this VM? Don’t you think this could be due to CPU cycles wasted caused by bridging and not ‘appliance creating additional CPU load’? Quick check with the pfsense VM might clarify (iperf being available through Package Manager and then Diagnostics)
If it helps, measuring CPU load using ‘vmstat’, between pfSense and the Windows server PC, the CPU usage was around 57% during download (2.35 Gbits/s) and 97% during upload (1.90 Gbits/s).
If this had 128gb of storage it would be a more viable option for running windows on.
Hardkernel sent the 64GB module to Ian, but they also sell a 128GB module. It should also be possible to run the OS from the SSD.
It actually doesn’t need the eMMC module. It works just fine with either SATA or NVMe storage directly, just like any other x86-64 box. I’ve got an Odroid H3 (not plus) running from a Samsung SSD 970 EVO Plus (1TB) with Kubuntu 22.04 LTS “Jammy Jellyfish” as a video watching station. The Samsung 970 EVO Plus is an NVMe SSD, and if using NVMe SSD’s, these really are the most compatible. WD Black NVMe SSD’s, you can install the OS, but you cannot boot from it. The 970 EVO’s, you can. Go figure. SATA 2.5″ SSD’s, it boots fine from Inland, Corsair, Intel, and so on, so no worries there.
There’s two SATA-ports and, if one were to skip the Net-card, an M.2-slot for an NVMe SSD, so you have plenty of options for jacking in a lot of storage.
This isn’t an Alder Lake, this is just an ordinary Jasper Lake, introduced a year before (as correctly mentioned further down). Which means its cores are not Gracemont (Alder Lakes E-Cores), but Tremont. And its IGPU isn’t Xe graphics, but based on the old architecture which Intel used up to Icelake. Also explains why the RAM only runs at 2933 MHz. The Jasper Lake can’t run it any faster.
It might be superior to some Alder Lake-N options in some cases due to having dual-channel DDR4 instead of single-channel DDR4/DDR5.
Thanks – it’s a typo and it should have read ‘Hardkernel have added Intel Jasper Lake mini PCs to their ODROID-H series and they are known as the ODROID-H3 and ODROID-H3+.’
Way too expensive.
There are good alternatives on AliExpress for ~30-40% less.
Feel free to post links. Also, how often do they get BIOS-updates? How good is their support? I mean, some of the value with Odroid’s stuff is that they do provide BIOS-updates and they have working support, which many Chinese vendors do not offer at all.
Maybe from Your POV, x86_64 is a tight margin market on that type of cpu/system implementation, but with Hardkernel H3(/H3+) ~$129(/~$165) there’s a(nother) pretty versatile and accessible base for individual projects on now up to 2x32GB (each ~$107) RAM and net expansion board 4×2.5Gbps (~$47). 128GB emmc ~$45.
How do I find this alternatives?
TIA.
You might want to test the networking with Realtek’s drivers instead of the generic r8168 or whatever. They should have better performance.
https://www.realtek.com/en/component/zoo/category/network-interface-controllers-10-100-1000m-gigabit-ethernet-pci-express-software
My understanding was that the Realtek drivers were only recommended for Windows installations experiencing problems. When I tested Windows on the ODROID-H3+ I did install them but saw no network performance change.
However, for the client PC running Ubuntu 22.04.1 I’ve just checked and it was using Ethernet with the Realtek RTL8125 chipset and the default r8169 driver with rtl8125b-2_0.0.2 firmware. So I’ll have to upgrade the driver with the Realtek one as you suggest and see what the effect is.