When I first saw the iKOOLCORE R1 I was fascinated that a mini PC of similar size to the smallest fully functional ones available (think Chuwi LarkBox, GMK NucBox or ECS LIVA Q Series) could be equipped with four 2.5 gigabit Ethernet (2.5GbE) ports. I approached iKOOLCORE who kindly provided an R1 for review and I’ve looked at performance running both Windows 11 and Ubuntu 22.04 and dabbled with using hypervisors on this mini PC through Proxmox virtual environment.
iKOOLCORE R1 specifications
iKOOLCORE list the R1 specifications on their website as:
Of note are the ‘EC, FCC, RoHS’ certifications indicating both European conformity and approval for use in the US.
Technically ‘EC’ refers to an ‘EC declaration of conformity’ which is not a certificate, however, the ‘EC declaration of conformity’ is called a ‘CE statement’ or ‘CE certificate’ which is why you often see this abbreviated as ‘CE’.
The rest of the specifications are aligned to the physical device with the possible exception of the data-only Type-C USB port (see below):
iKOOLCORE R1 overview
Overview of hardware
The iKOOLCORE R1 physically consists of a 75 x 75 x 48mm (2.95 x 2.95 x 1.89 inches) square metal case which has a removable plastic top. As an actively cooled mini PC, the R1 uses either an Intel Jasper Lake Pentium Silver mobile N6005 processor (as in the review unit) which has 4 cores and 4 threads and can boost to 3.3GHz together with Intel UHD Graphics, or it is available with a Celeron 5105 processor.
The front panel has a power button and two USB 3.1 ports. On the left panel are a Type-C USB port and a microSD card slot. The rear panel includes four Intel I226-V 2.5 gigabit Ethernet ports, an HDMI 2.0 port, and a Type-C USB port for Power Delivery. Internally, storage is a 42mm M.2 NVMe (‘M’ key) PCIe Gen 3.0 SSD drive which is accessed by ‘popping’ off the top, and the review sample included a Western Digital SN735 NVMe SSD 512GB M.2 2242 drive.
Due to the R1’s size, there is soldered-on LPDDR4 memory and the review sample included dual-channel 16GB 2933MHz memory although 8GB is also available. Also included in the box are a VESA mounting bracket and screws, a 30W (12V 2.5A) Type-C USB power supply, and a ‘DC 5.5 x 2.1mm female to USB Type-C male power cable adapter’ allowing the use of a more typical mini PC power supply with a barrel connector if required.
The R1’s power chip supports an input voltage of between 12 and 20V with the current varying depending on the device’s power consumption. It can use either a DC power supply with the included adapter or Power Delivery (PD) using the rear Type-C USB port and the included power supply. Additionally, the R1’s motherboard has hardware protection to prevent any issues from arising if the power supply is plugged into the side Type-C USB data port.
Overview of software
The iKOOLCORE R1 came pre-installed with Proxmox 7.3-6:
and included VMs of OpenWRT in Chinese:
or when the language is switched to English:
a VM of Debian 11:
and Windows 10 Enterprise LTSC VM also in Chinese:
and to prove it really is Windows:
Docker is also running on the Debian VM with various containers including Heimdall:
and OpenSpeedTest:
together with some others which are covered in detail in the wiki.
I pottered around the demo installation and looked at the Ethernet connection speed between the R1 and a Windows PC on the same network:
I also tried playing some videos in the Windows 10 VM:
To prepare for my performance testing I then ‘wiped’ the demo installation by performing a clean installation of Windows 11 Pro version 22H2 and upgraded it to the latest the build 22621.1413:
I also shrank the Windows partition in half to create a new partition into which I installed Ubuntu as dual boot using an Ubuntu 22.04.2 ISO and applied all available updates:
Because of the simplicity of accessing the internal storage, I also swapped out the included M.2 2242 512GB drive for a 2TB drive onto which I installed ESXi version 8.0 build 21203435 which recognized the Intel NICs without issue. I then installed Proxmox version 7.3-1 and created VMs for pfSense Community Edition 2.6.0 and TrueNAS CORE 13.0-U3.1 which all worked without issue:
As a final verification test, I measured the network throughput from a Windows PC connected to the same network as the R1 to my TrueNAS VM using ‘iperf3’:
which confirmed that the 2.5 gigabit Ethernet ports functioned as expected.
Key Observations – Drivers, USB-C, System Stability
Immediately after installing Windows from its ISO, there were missing drivers including the one for the Ethernet controller:
This driver can be downloaded from the iKOOLCORE website under Downloads, then ISOs(OpenSource only), then Driver, then iKOOLCORE R1, and finally Wired_driver_27.6_x64.zip.
Even after fully updating Windows and using Intel’s Driver & Support Assistant there are still missing drivers:
These can be resolved by first downloading and installing the Intel Chipset Device Software for Intel NUC products:
followed by the Serial IO Driver for Intel NUC11AT products:
Installing Ubuntu went without issue. However, when booting Ubuntu there are several error messages being reported in the ‘dmesg’ about ‘Could not resolve symbol [\_SB.UBTC.RUCC], AE_NOT_FOUND’ which are relatively widely reported on the internet and appear not to be an issue.
A quick look at the base hardware information shows it is aligned with the specification:
The processor’s ‘Power Limits’ (PL) are configured. For Windows ‘PL1’ and for Ubuntu under ‘Constraint 0’ they are set to 10 watts. For Windows ‘PL2’ and for Ubuntu under ‘Constraint 1’ they are set to 25 watts:
The memory is configured to run at its maximum speed of 2933MHz:
The M.2 2242 drive, whilst PCIe Gen 3, is only running at x2 meaning two data lanes resulting in a theoretical maximum throughput of 1.969GB/s:
The quad 2.5 gigabit Ethernet ports use Intel I226-V network interface controllers:
With regard to the USB ports, the specification lists both the Type-A USB ports as ‘USB 3.2 Gen1’ so I tested them using a Samsung 980 PRO PCle 4.0 NVMe M.2 SSD housed in an ‘USB to M.2 NVMe adapter’ (ORICO M2PAC3-G20 M.2 NVMe SSD Enclosure) which confirmed that the front ‘blue’ USB ports were indeed ‘USB 3.2 Gen 1×1’ i.e. 5Gbit/s as per the specification:
and this was also confirmed in Ubuntu:
I then turned my attention to the side Type-C USB port. First I confirmed that it was data-only as ‘Alternate Mode’ was not supported:
I then tried testing the speed of the Type-C USB port using my ORICO enclosure which has an ASMedia ASM2364 device controller and whilst it showed up as a ‘USB 3.2 Gen 2×1’ i.e. 10Gbit/s port, most of the time it just ‘hung’:
The one time I did manage to get it to both connect and run ‘CrystalDiskMark’, for some unknown reason it connected as a USB 2.0 device using the same port that the Billboard device uses (Port5) and not the Type-C USB port (Port10):
I also tried testing the port in Ubuntu which, like Windows, showed the Type-C USB port as ‘USB 3.2 Gen 2×1’ i.e. 10Gbit/s rather than the 5Gbit/s noted in the specification:
One possible reason why the drive was ‘hanging’ on Ubuntu was suggested after looking at the running processes, which showed it was still trying to mount the NTFS partition of the drive:
So I tried ruling this out by formatting the drive with only an ‘ext4’ partition however it still ‘hung’ on Ubuntu as it did in Windows when formatted just with an ‘NTFS’ partition.
Assuming that the R1’s Type-C USB port just had a problem recognizing the Orico enclosure, I tried using Samsung portable SSD drives. On Ubuntu I tested the speed using ‘fio’ of a 1TB Samsung T7 with one ‘ext4’ partition and which, according to the specifications, is USB 3.2 Gen.2 (10Gbps) with Sequential Read of up to 1,050MB/sec and Sequential Write of up to 1,000MB/sec:
However, I couldn’t consistently get the Samsung T7 to be recognized after connecting it. This was also the case on Windows where connection success was extremely variable. For Windows testing, I used ‘CrystalDiskMark’ on a 1TB Samsung T5 with one ‘NTFS’ partition and which, according to the specifications, is compatible with USB 3.2 Gen.2 (10Gbps) and has Sequential Read/Writes of up to 540MB/sec. Sometimes it ‘hung’, other times it didn’t connect but showed an error:
and the times it did connect, whilst the read speed seemed correct, the write speed was nowhere near the expected 5Gbit/s but more like it was writing at USB 2.0 speeds:
However, sometimes it connected and produced unbelievable results:
On balance, it seems like there is currently an underlying issue with the data Type-C USB port. This may just be a problem with this review sample or because it might be a pre-production sample.
Unfortunately, this was not the only issue encountered. When I was installing the ‘Fire Strike’ benchmark on Windows the device crashed a couple of times. Interestingly each time after just pressing the power button, Windows resumed and the installation continued. Fortunately, I had HWiNFO64 running but the only indicator of concern was the M.2 SSD drive temperature:
I removed the top cover and let the drive cool down but the resumed installation still crashed suggesting this was not the root cause. After the next power toggle, the installation succeeded.
But later, when running the Fire Strike benchmark, the mini PC crashed towards the end of the benchmark.
As I was using the included 12V 2.5A (30W) power supply I replaced it with my own 65W Type-C USB power supply that outputs of 5V 3A, 9V 3A, 12V 3A, 15V 3A, 20V 3.25A (15W 27W 36W 45W 65W). However, Fire Strike continued to crash. Looking at the monitoring provided by the benchmark indicated that the CPU temperature was frequently exceeding 70°C:
which should have triggered CPU throttling as the UEFI (BIOS) ‘Tcc Activation Offset’ was set at ‘30’ i.e. when the CPU reaches 70°C a PROCHOT# condition will be triggered to cool the CPU down:
So I modified the UEFI (BIOS) setting to ‘15’ which would allow the CPU to reach 90°C without throttling. Despite the higher temperatures and without obvious throttling, Fire Strike continued to crash:
Similarly, Cinebench R23 had also been crashing however by allowing the higher CPU temperature the benchmark now completed:
I then experimented with adjusting the ‘Power Limits’, first by reducing PL2 and then both PL1 and PL2 until I got Fire Strike and Cinebench R23 to both complete and produce semi-respectable results. The final values for PL1 and PL2 were both set to 8W:
which is probably a little on the conservative side but at this point I just wanted to get some results.
I reset the UEFI (BIOS) to the default settings to perform the Ubuntu benchmarking which ran without incident. Afterward I then tried repeating the Windows benchmarks as I wanted to re-check my initial findings. Whilst Fire Strike crashed a couple of times, it also managed to complete as did Cinebench R23. As a result, I ran the remaining benchmarks used in my ‘Windows Performance’ testing and I’ve included a comparison chart against the lower PL values further below.
Finally, a brief check showed working audio, Ethernet ports, and the microSD card reader in both Windows and Ubuntu.
iKOOLCORE R1 performance in Windows 11 Pro
I first set the power mode to ‘High performance’ and ran some well-known benchmarking tools to look at performance under Windows. Note, these are the results using the ‘riskier’ default UEFI (BIOS) settings.
Storage performance from the M.2 NVMe was:
The overall Windows performance was:
with CPU performance measured as:
and iGPU performance measured as:
In comparison, the following table shows the results for the above test runs together with the results for when the values of both PL1 and PL2 were set to 8 watts:
Whilst the overall performance loss is not particularly significant, the ‘Physics Score’ for Fire Strike is interesting given that it measures CPU performance and it was during this part of the benchmark the mini PC kept crashing. Achieving a high score with less power indicates less thermal throttling as there isn’t such a need to throttle. Revisiting the monitoring when Fire Strike crashed shows there was a significant drop in CPU frequency prior to each crash suggesting that throttling couldn’t happen fast enough to prevent a failsafe ‘crash’.
For real-world testing of the iGPU, I played various videos in Edge and there were no issues encountered playing videos up to 4K 60FPS with only the occasional frame dropped at this highest resolution:
with CPU usage reasonably intensive:
Ubuntu 22.04 performance
I first set the CPU Scaling Governor to ‘performance’ and ran some of my Linux benchmarks:
Storage performance from the M.2 NVMe was:
The overall Ubuntu performance was:
with CPU performance measured as:
and iGPU performance measured as:
For real-world testing of the iGPU, I played various videos in Firefox. Playing videos at 4K 60FPS resulted in momentary stalls and frequent dropped frames:
Decreasing the resolution to 1440p substantially improved the playback and only the occasional frame was dropped:
but, like Windows, the CPU usage was reasonably intensive:
Network Performance (2.5GbE and USB WiFi dongle)
Network connectivity throughput was measured using ‘iperf3’. The 2.5 gigabit Ethernet ports performed as expected at around 2.35 Gbits/s in Windows:
and at around 2.21 Gbits/s in Ubuntu:
Whilst the R1 does not include a WiFi card, it is possible to use a ‘Wireless USB Adapter’. I tested this by using TP-Link’s Archer T3U Plus which is rated for up to 400Mbps on the 2.4GHz band and up to 867Mbps on 5GHz:
As expected, I didn’t get anything like that and on Ubuntu, throughput only averaged around 136Mbps on the 5GHz band.
However, one feature that may be useful is using the adapter to create a WiFi ‘hotspot’ for use in remote management:
Thermal Performance
I’ve briefly touched on thermal performance already but to look in more detail I ran a stress test in Ubuntu which saw the CPU temperature climb immediately to 75°C and then maintained an average of 74.8°C for the duration of the test. Prior to the start of the test, the frequency of the CPU was 3300MHz. When the test started the frequency immediately dropped to 2700MHz and then continued to step down by 100MHz to around 2300MHz for the rest of the test to maintain the CPU temperature of 75°C :
This temperature was also seen whilst running Cinebench in Windows (with the ‘riskier’ default settings):
Although a slightly higher maximum temperature was seen when running Fire Strike in Windows (when it ran that is):
The CPU temperature of 75°C was also the maximum average temperature seen when running sbc-bench in Ubuntu:
The iKOOLCORE R1 uses active cooling and has, at the base of the device, a fan. Unfortunately, this is the biggest drawback of an otherwise very good device as the fan cannot be controlled and runs at full tilt continuously whilst the device is switched on. And it is not exactly quiet. On my sound meter next to the device I measured 40.9dBA which isn’t necessarily that high however it is the pitch of the noise which makes it noticeable. It could be said that not only does the R1 act like a server, but it also sounds like one too!
Fortunately, a new fanless case for the R1 is under preparation which, according to the renderings, will look something like this:
Power Consumption
Power consumption was measured as follows:
- Powered off (shutdown) – 1.6 watts
- UEFI (BIOS) – 18.3 watts
- Idle – 11.8 watts (Windows) and 13.1 watts (Ubuntu)
- CPU stressed* – 24.5 watts peak dropping to 20.0 watts (Windows ‘Cinebench’) and 20.5 watts peak dropping to 17.5 watts (Ubuntu ‘stress’)
- Video playback* – 17.1 watts (Windows Edge 4K60FPS) and 20.5 watts (Ubuntu Firefox 1440p60FPS)
*The power figures fluctuate in part due to the fan so the value is the average of the median high and median low power readings.
Summary
The iKOOLCORE R1 is an exciting advancement for mini PCs. To miniaturize a quad-LAN server into such a small footprint is quite an achievement. Given that mini PCs are only recently being upgraded to include 2.5 gigabit Ethernet ports, the R1 includes four of them and they are Intel and not Realtek. It also manages to include multiple USB ports and extendable storage through a ‘bootable’ microSD card. The current relatively loud fan will be addressed with a forthcoming passive case. One further enhancement that could be considered is putting rubber feet on the base of the device to prevent it from sliding off a desk under the weight of the attached cables. Overall performance is impressive even after dropping the Power Limits to minimize any thermal issues under Windows and the R1 offers good value for money. Further details on the R1 can be found on their bilingual wiki.
I’d like to thank iKOOLCORE for providing the R1 for review. It can be purchased from their website for $199 and up depending on the configuration.
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
Nice little box, and at a very competitive price for the specs. Arm SBCs are getting less and less attractive with such a competition.
As a Linux box with 4 network ports, absolutely.
But there’s no incentive to upgrade the telly – I will continue to view content in 720/1080p so long as these cheap intel cores choke at streaming 4K.
Desktop users won’t be happy about always roaring fan, but for home server it won’t last long. It could be worth to perform dizassembly – to see, what fan is used and if specific model is easely obtainable and replacable.
N5105 and N6005 can’t run RAM over 2933 MHZ, so provided specs (of 4233 Ghz !!!) seem deceptive.
BTW Proxmox on this type of CPU is stable (in long run) only with custom edge kernel – I can judge as owner of similar, but passively cooled platform.
> N5105 and N6005 can’t run RAM over 2933 MHZ, so provided specs (of 4233 Ghz !!!) seem deceptive.
Most probably they wanted to talk about LPDDR4x-4266 and mixed something up… At least Ian pointed out that the RAM clocks at the maximum 2933 MT/s the Jasper Lake memory controller is capable of.
Thank you for pointing that out, I have updated the product description. In fact, what I wanted to convey was that I used Samsung’s LPDDR5 memory chips with a frequency of 4233MHz on the iKOOLCORE R1. Each chip has a capacity of 8GB, but due to the CPU’s limitation of running at a maximum frequency of 2933MHz, it is somewhat wasteful in terms of hardware. If this could cause some misunderstanding or make customers feel deceived, then I will make corrections to the product description. As you can see, I have already made the necessary changes.
> I used Samsung’s LPDDR5 memory chips with a frequency of 4233MHz
Well, according to the SPD EEPROM it’s 2 x Samsung ‘3UH7H70AM-AGCL’ (LPDDR4x-4266).
But honestly this weird use of MHz, Mbps and MT/s confuses me since LPDDR4x-4266 uses a clock rate of 2133 MHz for full speed (double data rate). Both Intel and you talk about ‘2933 MHz’ while it should read ‘2933 MT/s’ instead (at 1466 MHz)?
Yeah the MHz on DRAM are almost always doubled, and it’s a problem because vendors who know it’s not correct still make it because they expect their users not to understand otherwise. It’s like calories which food vendors divide by 1000 before announcing them because consumers would be terrified by seeing the real value after having been brainwashed for so many years. There used to be IDE hard drives then DAT/DLT/LTO tapes like this in the past with some vendors starting to announce compressed capacities “assuming 2x compression”, and all competitors being forced to follow. For tapes it’s a problem because when archiving logs you normally send already compressed data and you discover that your 50 GB of logs don’t fit on a “80 GB” tape!
While I understand why marketing folks continued to use the MHz label for MT/s values 2 decades ago when switching from ‘SDRAM’ to ‘DDR’ (single vs. double data rate -> 133 MHz SDRAM looked faster than 100 MHz DDR-200) I don’t understand why we all continue with this nonsense.
Look at e.g. Jasper vs. Adler Lake SoCs on Intel’s ARK. With Jasper Lake they show only the MHz nonsense and with Alder Lake conflicting BS.
I know. As I said, it’s sad, but it’s what consumers want to hear. When people misuse terms and units they almost redefine them and the dumber wins 🙁