Radxa ROCK 5 ITX is a mini-ITX motherboard powered by a Rockchip RK3588 octa-core Cortex-A76/A55 processor, and the Shenzhen Milk-V Jupiter is another mini-ITX motherboard, but based on SpacemIT K1 octa-core 64-bit RISC-V processor instead.
When Radxa contacted me about reviewing those, I thought it would be interesting to review a complete kit with a mini-ITX case since I had never built this type of system myself. Yesterday, I was surprised to receive two large packages and thought maybe a company sent me a 3D printer or laser engraver kit, but instead, I got one package with the two Arm and RISC-V mini-ITX motherboards and another with a mini-ITX NAS enclosure with 6x SATA bays.
Radxa ROCK 5 ITX unboxing
Let’s look at the ROCK 5 ITX motherboard and accessories first. The motherboard ships with a rear panel and two screws for the M.2 module.
The motherboard features the Rorkchip RK3588 SoC and LPDDR5 memory chips in the middle of the board, and we’ll also find four SATA ports, two M.2 sockets, headers for a PoE module, some camera and LCD connectors, and a 24-pin ATX power receptacle.
The rear panel comes with a 12V DC jack, a USB Type-C port, an HDMI input, two combo ports with 2.5GbE and USB 2.0 each, two more combo ports with two USB 3.2 and HDMI output each, two 3.5mm audio jacks, and an optional S/PDIF connector.
The bottom of the board is pretty bare except for an additional LCD connector.
My kit also includes a Radxa-branded fansink for the motherboard and a Radxa RA025 25W PoE module.
Radxa ROCK 5 ITX specifications
- SoC – Rockchip RK3588
- CPU – Octa-core processor with four Cortex-A76 cores @ 2.4 GHz, four Cortex-A55 cores @ 1.8 GHz
- GPU – Arm Mali G610MC4 GPU
- VPU
- 8Kp60 10-bit H.265 / VP9 / AVS2 decoder, 8Kp30 H.264 decoder
- 8Kp30 H.265 / H.264 encoder
- AI accelerator – 6 TOPS NPU
- System Memory – 4GB, 8GB, 16GB, or 32GB LPDDR5
- Storage
- Onboard eMMC for ROOBI OS
- M.2 2280 socket for NVMe SSD (PCIe 3.0 x2)
- 4x SATA ports with power header
- MicroSD card socket
- SPI Flash for Bootloader
- Video Output
- 2x HDMI port, one up to 8Kp60, the other up to 4Kp60
- 1x USB-C with DisplayPort Alt. mode up to 4Kp60
- 2x 4-lane MIPI DSI connectors
- 1x eDP with touch panel support
- Four independent displays supported
- Video Input
- HDMI input up to 4Kp60
- 2x 4-lane MIPI CSI connectors (also configurable as 4x 2-lane MIPI CSI)
- Audio
- 3.5mm headphone jack
- 3.5mm microphone Jack
- Front audio header
- Optical S/PDIF output
- Networking
- 2x 2.5 Gbps Ethernet RJ45 port with optional PoE support
- M.2 E-Key socket for WiFi 6 module
- USB
- 4x USB 3.0 Type-A ports
- 2x USB 2.0 Type-A ports
- 1x USB 3.0 OTG/Host Type-C port
- 2x USB 2.0 via front USB header
- Misc
- PWM fan connector
- RTC socket (CR1220 battery)
- Front Panel header for Power Button / Reset Button / Status LED
- Power Supply
- 12V DC power barrel jack (55x25mm)
- Standard 24-pin ATX power supply interface
- PoE Header (additional PoE module required)
- Dimensions – 170 x 170mm (Mini-ITX form factor)
- Temperature Range
- Recommended – 0 to 50°C
- Max – Up to 80°C
- Compliance – FCC/CE
The Rockchip RK3588 mini-iTX motherboard supports Radxa OS, Debian, or Android. The wiki will have more information about software support.
Jupiter RISC-V mini-ITX motherboard unboxing
Let’s switch to the RISC-V mini-ITX motherboard that ships with a rear panel plate and two WiFi antennas since the motherboard integrates a WiFi 6 and Bluetooth 5.2 module.
The Jupiter motherboard has fewer interfaces than the ROCK 5 ITX motherboard, but we can still find one M.2 Key-M socket for storage, a PCIe x8 slot (limited to 2-lane PCIe 2.1), and a 24-pin ATX power supply connector.
The rear panel features a 12V DC power jack, a USB-C port, an HDMI output port, two gigabit Ethernet RJ45 ports, two USB 3.0 ports, two USB 2.0 ports, and 3.5mm audio jacks for headphone and microphone. I did not get any other accessories with the motherboard. I can see two mounting holes for a heatsink or fansink, but this was not part of the package.
MILK-V Jupiter specifications
- SoC – SpacemiT K1
- CPU – 8-core X60 RISC-V (RV64GCVB) processor with RVV 1.0; compliant with RVA22
- GPU – Imagination IMG BXE-2-32 @ 819 MHz with support for OpenCL 3.0, OpenGL ES3.2, Vulkan 1.2
- VPU
- H.265, H.264, VP9, VP8, MPEG-4, MPEG-2 up to 4Kp60 decoding
- H.264, H.264, VP9, VP8 4Kp30 encoding
- NPU – 2.0 TOPS AI accelerator
- System Memory – 4GB, 8GB, or 16GB LPDDR4X
- Storage
- M.2 M Key Connector for M.2 NVMe SSD (PCIe 2.0 x2)
- MicroSD card slot
- SPI Flash for boot
- eMMC connector
- 2x 4-pin SATA power connector (I assume in case a PCIe to SATA card is used)
- Display – HDMI port up to 1920×1440 @ 60Hz
- Audio
- 3.5mm headphone jack
- 3.5mm microphone jack
- Networking
- 2x Gigabit Ethernet RJ45 ports with optional PoE support (additional PoE module required)
- Wi-Fi 6 and Bluetooth 5.2 module
- USB
- 2x USB 3.0 Type-A host ports
- 2x USB 2.0 Type-A host ports
- 1x USB 2.0 Type-C OTG port for firmware download
- 2x USB 3.0 and 2x USB 2.0 via front USB header
- Expansion – PCIe x8 slot (2-lane PCIe 2.1) with supports for graphic cards, PCIe to SATA adapters, etc…
- Debugging – 3-pin UART header
- Misc
- PWM fan connector
- RTC Socket (CR1220 battery)
- Front Panel header for Power Button / Reset Button / Status LED / Power LED
- Power Supply
- 12V DC power barrel jack (55x25mm)
- Standard 24-pin ATX power Supply interface
- Dimensions – 170 x 170mm (Mini-ITX form factor)
The board can run Fedora Remix or Canonical Ubuntu. Additional information can be found in the Wiki.
Auriga 6-Bay NAS mini-ITX chassis
I could not find the enclosure on Radxa’s website, and the company told me it’s an “Auriga” enclosure they purchased on Taobao, but I could also find it on AliExpress for $135 plus shipping.
The mini-ITX enclosure ships with four fans, a power cord, SATA cables, a screw box, a screwdriver, and other bits and pieces. I was told those are included with the case, and do not need to be purchased separately.
The rear panel comes with a power supply (not included by default), four PCIe card slots, an opening for the ports from the mini-ITX motherboard, and two mounting slots for the cooling fans.
The rest of the case is made of panels that can be easily removed to install the motherboard and other accessories. The top comes with a USB 2.0 port, a power button, and some LEDs. The front panel has plenty of holes for ventilation.
Removing one of the side panels reveals an MSI PAGA350 350W PSU sold on AliExpress for $99, but I guess it should be easy enough to source a PSU locally in most countries.
If I take the front cover out, we’ll find six SATA bays suitable for 2.5-inch or 3.5-inch SSDs or HDDs, and two more mounting slots for the remaining fans.
That will be all for today. In the second part of the review, I plan to report my experience installing the ROCK 5 ITX motherboard into the chassis and perform some basic tests since the Rockchip RK3588/RK3588S is a well-known platform that we tested with the Radxa ROCK 5B, NanoPi R6S router, Mixtile Core 3588E SoM, Khadas Edge2 Pro, and others. I’ll then switch the Arm-based ROCK 5 ITX motherboard for the RISC-V powered Jupiter mini-ITX motherboard and go through a more thorough review in the third part since it’s the first time I test a system with the SpacemIT K1 processor.
The Radxa ROCK 5 ITX motherboard can be purchased on AliExpress for $98.37 to $237.47 depending on RAM capacity, and the heatsink adds a little over $5. The Jupiter RISC-V motherboard can be found on Arace for $59.99 and up, but is currently sold out. That means reproducing the Arm setup costs around $330 to $500 before storage and other cards are taken into account, and a RISC-V NAS/workstation can be built for just under $300, again without storage.
Continue reading
- MILK-V Jupiter review – A RISC-V mini-ITX motherboard and PC tested with Ubuntu-based Bianbu OS
- Radxa ROCK 5 ITX RK3588 mini-ITX motherboard review – Building an Arm PC and NAS with Debian KDE
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
Wow! Comparative ARM vs RISC-V review with everything else but the SOC/Mobo being the same!
Looking forward to your results, although I fear RISC-V is going to take a beating ( last time I checked, neither the Linux toolchain nor the kernel were optimized for it yet, and both were for ARM).
PS: if you can, please include power usage numbers, specially at idle and at full load.
I would also be very interested in learning whether they can be fed thought their 12VDC jack directly from a 11.5 – 14.2VDC battery bank (electrically very clean as it’s charged from a MPPT solar charger and panels and not from a car alternator).
The Rockchip RK3588 will be much faster (Cortex-A78/A55) than the SpacemIT K1 (Cortex-A55 like performance). The most interesting parts about the RISC-V motherboard will be to find out which parts are working, which parts are not.
> The Rockchip RK3588 will be much faster (Cortex-A78/A55)
It’s A76 and on the Milk-V Jupiter there currently seems to be a DRAM initialization issue (or maybe the memory controller is not very capable).
> SpacemIT K1 (Cortex-A55 like performance)
According to https://forum.banana-pi.org/t/banana-pi-bpi-f3-spacemit-k1-8-core-risc-v-chip-brief/17457, not quite:
“The computing power for single core in K1 is 30% ahead of ARM A55”.
And according to https://www.cpubenchmark.net/compare/4929vs5104/ARM-Cortex-A76-8-Core-1800-MHz-vs-ARM-Cortex-A55-8-Core-1800-MHz, at the same clock speed the A55 is actually *faster* than the A76 (CPUMark 3013 vs 2792)
Perhaps the key phrase is, “at the same clock speed”. I haven’t seem the SpacemIT K1 clock mentioned anywhere (not in your post, nor anywhere easily googlable at least, only vague references to it being ‘probably’ around 1600Mhz), so perhaps this (combined with lack of general RISC-V optimization/tuning on the Linux toolchain and kernel) would afford the 3588 its better performance.
> I haven’t seem the SpacemIT K1 clock mentioned anywhere
It’s 1800 MHz (at the moment, the Banana clowns run/ran the K1 on their board with 1600 MHz): https://github.com/ThomasKaiser/sbc-bench/blob/master/Results.md
Good luck navigating the Internet in the future if you come to conclusions like marketing BS originating from the Banana clowns reflects reality or Cortex-A55 being faster than A76 🙂
The ROCK 5 ITX is a really great board to make a server or NAS. It balances its PCIe I/O pretty well, with Gen3 x2 for SATA and Gen3 x2 for M.2. This allows to place a 10GbE adapter on the M.2 slot and deliver line-rate 10G from SATA to Ethernet.
It suffers from a small defect which is Rockchip-specific: the DDR5 performance. It ought to run at 2736 MHz (DDR5-5472) but recently the RK3588 ddr init code was downgraded to 2400 MHz (DDR5-4800) “to fix stability issues” (without more details) and at this speed it’s ~10% slower than the ROCK 5B’s DDR4X-4224. It’s sad because DDR5 was initially advertised as a speed increase over previous generations and it ends up being slower. Also, be careful when you test performance, Jean-Luc, when the DDR is configured at 2400 MHz, the DMC is enabled and its “ondemand” governor keeps it running at 536 MHz even under load! I didn’t understand why the RAM had huge access times until @tkaiser pointed this out to me. You’ll likely have to force the min_freq to max_freq so as to get correct numbers.
Another serious regret I had is that they limited the onboard eMMC to 8GB, and decided to condemn it to place that totally useless roobi OS image (it’s basically just a one-use recovery image serving as a boot loader for the first installation, they could have installed it on the SPI instead, or even better, just install EDK2 on SPI and leave eMMC free). That’s annoying because in a NAS you **want** to install your OS on a separate storage device, and while 8GB eMMC is huge for some distros (e.g. debian fits pretty well), others do not (e.g. slackware). I found a solution consisting in adding a cheap M.2 key A+E to B+M converter, on which I plugged a 2242 SSD. This features a single PCIe Gen2 lane but that’s quite sufficient for an OS image (400 MB/s or equivalent to eMMC). It’s just needlessly complicated when you think about the tiny cost difference of a 16 or 32 GB eMMC…
The SoC can run fanless (but with a heat sink). You’ll probably end up just not connecting the fan connector, like many of us who got this board. I also found it difficult to find a CR1220 battery for the RTC and would finally have preferred either a vertical CR2032 socket or just a 2-pin header for an external battery. Finally I found a CR1216 that fits.
The board’s idle consumption is quite low. I seem to remember that my whole machine (board, 4xSATA SSD, 10GbE board with link up, Optane SSD for OS) is less than 10W at the wall. BTW, the onboard DC/DC converters are quite efficient, as I found that powering the board from the 12V jack consumes a few percent less than by passing via the external 12V->ATX adapter that was present in my enclosure.
I’m still in the process of replacing my Odroid-H3 server with this much more capable one. I had not been pleased that much with the design and build quality of an ARM board in a while to be honest.
As a reviewer, I should probably not tweak the system to optimize benchmark results. Unless, I do a benchmark before, and then a benchmark after tweaking.
Maybe Radxa will read your comment, explain what’s going on here, and whether a fix is needed/in the works.
> As a reviewer, I should probably not tweak the system to optimize benchmark results.
IMO a reviewer should do an active review trying to spot such issues. And if I remember correctly the real issue in Willy’s case was a mismatch between the two boot BLOBs that resulted in the DRAM being clocked at the lowest frequency.
This mismatch can happen pretty easily when there’s conflicting stuff residing in the onboard SPI flash and the media the user wants to boot the board from.
No, it’s even worse: when the two blobs mismatch, the DMC devfreq is disabled so it constantly runs at full speed. That’s why 2736 MHz was so fast. Once they perfectly match, it’s enabled and seems to be too conservative, not showing a willingness to jump to higher bins that fast.
> my whole machine (board, 4xSATA SSD, 10GbE board with link up, Optane SSD for OS) is less than 10W at the wall.
That’s quite encouraging! You mean when idling, right?
> BTW, the onboard DC/DC converters are quite efficient, as I found that powering the board from the 12V jack consumes a few percent less than by passing via the external 12V->ATX adapter that was present in my enclosure.
If you have idle power usage numbers at the 12VDC jack (by measuring the amps eg with a clamp DMM) and could share them, I would be very interested.
> If you have idle power usage numbers at the 12VDC jack
4W measured with an ODROID SmartPower 3 and nothing connected.
> You mean when idling, right?
Sorry, yes, I thought I mentioned it but I might have lost it in rewording the sentence. For a home server I consider that idle is the most relevant since it’s basically what it does 24×7.
Also I tend to think that I’d observe what @tkaiser reports with everything unplugged. the 10G NIC is super hot (nothing new, it’s an AQC107, I even added one extra heat sink). The Optane is hot as well. Spec’d at 800mW or so. And my SSDs are four good old 120GB, not exactly the most efficient by todays standards. That would mean ~6W for all of them or roughly 1W per device, that sounds quite reasonable for their generation.
Just to put the comparison in perspective, though priced three-times less, SpacemiT’s K1 is also accordingly three-times slower than the RK3588 in both single and multi-threaded and has roughly slightly over half the memory bandwidth.
So, the question on everyone’s minds isn’t who is faster but whether the K1 is fast enough for NAS and maybe get a feel for how that fast GPU coupled with 8 in-order cores fairs when used as a streamer / point-of-sale (desktop widget rendering… video playback… maybe light browsing and PDF rendering?).
> SpacemiT’s K1 is also accordingly three-times slower than the RK3588 in both single and multi-threaded
Just use the ‘appropriate’ benchmark and RK3588 gets ten times faster: https://browser.geekbench.com/v6/cpu/compare/6979805?baseline=5769184
And while it’s pretty obvious that Geekbench on RISC-V is pure nonsense this won’t stop reviewers publishing these garbage numbers. As for real-world performance ‘three-times slower’ is more realistic but I also suspect a DRAM initialization issue currently slowing the K1 unnecessarily down.
I think comparing GB scores among RISC-V boards is meaning, but comparing across architectures are nonsense at all (at least nonsense for GeekBench)
I’m not sure why architecture differences would matter to Geekbench:
> Geekbench 6 scores are calibrated against a baseline score of 2,500 (which is the score of a Dell Precision 3460 with a Core i7-12700 processor). Higher scores are better, with double the score indicating double the performance.
( https://www.geekbench.com/doc/geekbench6-benchmark-internals.pdf )
I believe the bad result @tkaiser mentioned was due to various bugs and incorrect configurations. But regardless, over time, as people submit more results from different distros, we’ll be able to tell apart the outliers.
> I believe the bad result @tkaiser mentioned was due to various bugs and incorrect configurations.
Nope, that’s mostly since Geekbench sucks (on RISC-V). And the marketing BS you quoted is not really an explanation for anything – at least definitely in the context of cross-platform benchmarking 🙂
I’m mostly relying on what Thomas Kaiser’s sbc-bench figures show. But if I thought they reflect real-world performance, I wouldn’t be here.
Regardless, there’s also the power-consumption to consider since out-of-order speculation tends to be quite more wasteful than what little prediction in-order cores do. But it being a new design with immature software and kernel support will probably spoil this… We’ll see.
> I’m mostly relying on what Thomas Kaiser’s sbc-bench figures show
My script uses the 7-zip benchmark as main metric for a number of reasons (maybe the main one generating scores that can be compared even when they were made in different years) but maybe 7-zip’s hugest downside is overvalueing the performance of primitive/efficiency cores compared to complex/performance cores.
What a good idea to ship a rear panel with the board.
Is this a common practice whe buying a mainboard ?
Like Vall, I’m looking forward to your results.
> What a good idea to ship a rear panel with the board.
Is this a common practice whe buying a mainboard ?
For PCs following the ATX family of form factors, yes, but other SBCs, no since there’s no standard form factor. But yes, in the end this integrates pretty well into a standard PC case and when you see it you don’t imagine it’s running Arm cores. See there for some photos in a slim enclosure: https://wtarreau.blogspot.com/2024/05/an-affordable-10gbe-capable-nas.html
Thank you Willy.
I’m used with SBC’s but haven’t play with “Dektop like” gears since years.
It’s good To know that the integration of this kind of board in an existing case is easy compared to SBC’s.
I will take time to read your extensive review.
Is there a possibility of booting an ISO image on this board?
I think that if you flash EDK2 on it, it could work. There’s one image for the ROCK 5 ITX but I haven’t tested it. However the one I’m having on SolidRun’s LX2K happily booted from an ISO image on a USB thumb drive.
Interesting. If i can boot and install RHEL i’d probably have at least a couple of these for OpenShift Single Node instances! These would be ideal for such a home lab environment.
The SolidRun LX2K board seems to support EDKII UEFI BIOS as well as U-Boot, so that’s a great thing.
Thanks for you feedback @Willy, appreciated!
Note that there remains a major difference between LX2K and ROCK 5, LX2K uses an NXP chip and NXP is among those best supported in mainline kernel, with everything working out of the box very early, so it does help a lot. Rockchip devices rely on a BSP kernel and only start to be ported after boards are sold, so in general support is much less complete for a long time. So even if you manage to boot, say, RHEL on a ROCK 5 (I don’t even know if it would work), it’s very possible that many peripherals will not be supported (typically network, PCIe, etc). Maybe everything will work but I preferred to warn you so that you’re not too disappointed if it’s a blocker for your project.
Good to know about NXP chips!
Re. ROCK 5, yep, i am aware it might not be able to boot and/or get RHEL working properly at all.
Thanks again for your feedback and “warnings” 🙂
that radxa board is looking like the sweet spot for a home made low powered NAS 🙂 cant wait to see the power measurements
Anyone tested whether we are able to run a KVM guest inside of this low power device? That would be a possibility of getting RHEL to run as a VM with VirtIO drivers is my thought.
Or would it be too much of a task for such ARM to perform satisfactory with virtualization?
No idea but that’s an interesting idea. With today’s chip power, and with enough pass-through it could make sense to try to run a dirty, insecure and bogus BSP kernel on the host and present generic hardware to a well maintained OS. I wouldn’t bet much on a performant NAS this way but that might work with graphics, network and/or storage via PCIe cards in pass-through mode.
Yeah, it’s something i’ll test if i choose to go for such an SBC. If 32GB is made available, i’ll consider it as i’ve some other uses cases with whatever OS/distro with BSP kernel such as running some Podman containers and some PHP apps.
But if this is an indication of it’s performance, it’s pretty good i believe when it’s ~25% inferior in single-threaded and ~15% in multi threaded compared to AMD Ryzed Embedded V1756B which is a 45W TDP CPU.
https://browser.geekbench.com/v6/cpu/compare/7009977?baseline=5769184
Another usecase for me is based on it’s “NPU” performance to run some InstructLab or IBM’s Granite AI models for learning purposes. I just have no clue about it’s performace for such AI workloads.
It’s not starting well.
Oops. My bad about the RISC-V bard. It was trying to tell me (in Chinese) that my laptop’s SSD is almost full LoL. After deleting a few files, I can go forward…
Thanks for keeping us posted, @Jean-Luc! Seems like things are more than a little rough ATM.
Crazy to send a serial adapter set to 1.5Mbps by default. What were they thinking? Trying to do Ethernet-over-serial or something? 🤪
Ditto error messages in Chinese. I would have thought that developers around the world (which would be the public for these boards right now) would all understand English, even the ones in China… so why not use English for everything (or at least error messages) and translate later, including to Chinese?
Never heard of Biambu. A little googling brought this: https://bianbu-linux.spacemit.com/en; Is it so hard to just support Debian?
Anyway, great update and looking forward to your further progress.
But still the My ROCK 5 ITX doesn’t boot anymore?
My ROCK 5 ITX board never booted successfully. I’ve been told to try with the ATX power supply.
There’s no reason the 12V jack wouldn’t work. For me a 12V/2A power brick does the job. I suggest that you check among your USB-UART adapters to find one that supports 1.5 Mbps. The CH340, CP2102 and FTDI ones are fine for me.
BTW in the worst case, another rockchip board will support 1.5 Mbps on its other UARTs routed to the 40pin header!
I’m in a house with some old USB-UART adapter. When I run:
Bootterm selects 1000000, so I guess the higher speed is not supported. I’ll move to another house in the next few days that has some newer adapters that I know work at 1.5 Mbps.
OK in this case indeed no need to insist! Reminds me when I had to fight with adapters to find one that would accept anything close to the ESP8266’s 74880 bps speed…
That’s a perfect illustration of the reason why I continue to plea for always having an onboard USB console port on any SBC.
Yeah, I’ve experienced my first integrated serial to usb on the quartzpro64, and it’s absolutely delightful not having to reach the pile of serial adapters and cables that are always at the bottom of the drawer…
Please every sbc manufacturer, always add one to your designs. Really.