NanoPi R6C review – Ubuntu 22.04, NVMe SSD, USB debug

FriendlyElec has recently announced the NanoPi R6C mini PC that a variant of the Rockchip RK3588S powered NanoPi R6S mini PC and 2.5GbE router that we reviewed with FriendlyWrt/OpenWrt and Ubuntu 22.04 earlier this year, but with just one 2.5GbE and one GbE interface, a built-in M.2 NVMe SSD socket and USB-C Debug UART port for easy external access to the serial console.

The company sent me a NanoPi R6C sample for review, but since we’ve already tested the similar NanoPi R6S extensively, I’ll write a single-post mini review this time around, checking out the hardware, and focusing on testing the new features such as the NVMe SSD and the USB debug port when running Ubuntu 22.04.

NanoPi R6C unboxing

As usual, the device came in a non-descript cardboard package with a few 3M rubber pads.

NanoPi R6C unboxing

The most obvious change compared to the NanoPi R6S is that all main ports of the NanoPi R6C mini PC are moved to the rear panel. Only the microSD card, Reset button, and MaskROM pinhole are accessible from the sides.

NanoPi R6C vs NanoPi R6S
NanoPi R6C (left) vs NanoPi R6S (right)

SSD installation and teardown

We’ll need to loosen the four screws on the bottom of the device to take out the bottom cover and reveals the M.2 2280 NVMe SSD socket.

NanoPi R6C teardown

The NanoPi R6C review sample also had a 32GB FORESSE FEMDNN032G-A3A55 eMMC 5.1 flash (see PDF datasheet) with up to 270MB/s read speed and up to 200MB/s “Turbo Write” speed, as well as an STM32G030F6P6 Arm Cortex-M0+ microcontroller apparently used as an SWD debugger.

NanoPi R6C SSD cooling

I tried to install the NVMe SSD from my ORICO NVMe SSD enclosure but the cooling plate made the SSD a bit too thick for the bottom cover, so I had to remove it leaving only the thermal pad.

NanoPi R6C SSD Thermal Pad

At this stage, most users will just put the bottom cover back and be done with it. But Let’s carry on with the teardown showing the thermal design. As with previous NanoPi R-series designs, the metal enclosure is used as a large heatsink with a thermal pad on the RK3588S processor to make sure it is in contact with the enclosure for optimical cooling.

NanoPi R6C fanless enclosure

A close-up on the board confirms the rest of the specifications with 8GB RAM through two 4GB Samsung K4UBE3D4AA-MGCL LPDDR4x chips, 2.5GbE via a Realtek RTL8125BG controller, and Gigabit Ethernet via the usual Realtek RTL8211 PHY. A Rockchip RK806-1 PMIC is used for power management. We can also see the 30-pin header that was added to the NanoPi R6C, but sadly it’s not accessible once the SBC is inside the metal enclosure.

NanoPi R6C SBC high resolution

When I put everything together, the thermal pad on the SSD is in contact with the case (good for cooling) but the USB-PD port and Reset button seem to have moved up a little bit because of it. That’s not a big issue as I could still connect the USB-C cable for power as we’ll see below.

USB PD Reset button higher than expected

I also installed rubber pads to cover the screw holes, but those are not really useful since the R6C already comes with two long rubber pads on two sides.

FriendlyELEC rubber pads case

Ubuntu 22.04 on NanoPi R6C

The NanoPi R6C ships with FriendlyWrt (OpenWrt), but since I feel this specific model is better suited as a mini PC that happens to have router features, I flashed the latest Ubuntu 22.04 Jammy Desktop image from the Wiki (rk3588-eflasher-ubuntu-jammy-desktop-5.10-arm64-20230317.img).

I also took the opportunity to connect a USB-C cable to the Debug port after the update was completed to see if it would work as expected.

NanoPi R6C debug port

The serial port is detected as a CH341 device in my Ubuntu laptop using BootTerm:


I can run the BootTerm command with the default 1,500,000 bps baud rate used in FriendlyElec images:


and reboot the system, and it does work out of the box without having to install a header or connector to the board and use a USB to TTL debug board:


You can check the very first boot log with Ubuntu 22.04 if you are interested.

NanoPi R6C Review Ubuntu 22.04

I connected two Ethernet cables, the GbE WAN port to an Ethernet switch, and the 2.5GbE LAN port to my laptop, as well as two RF dongles for my USB keyboard and mouse, an HDMI cable to a display, and a USB-C PD power supply. Everything works fine except for the LAN port which is not configured.

So just like I did when testing the NanoPi R5S, I set up the 192.168.2.0 subnet for eth1 interface and a configured DHCP server, before configuring NAT to route the packet from the LAN to the WAN, and I could access the Internet from my laptop through the NanoPi R6S:


I’ll quickly test the performance of networking later on.

Let’s check some system information:


Everything is pretty much the same as on the NanoPi R6S, except there’s only one 2.5GbE interface, and my NVMe drive is detected.

SBC Bench testing

Let’s now run SBC-bench.sh in “review mode” to double-check the CPU performance and find potential issues:


The 7-zip score is higher on R6C (on average 15,118) than on my R6S sample (14,578 points in sbc-bench in standard mode), but the score decreases from 15,685 points on the first run to 14583 on the third run, because the CPU temperature is quite higher, and the system throttle both during the 7-zip multi-thread and cpuminer tests:


The CPU frequency does not completely collapses, so the performance impact is limited.  Note the ambient temperature was around 28-29°C during testing, so you may not notice any slowdown in a cooler room, but if you’re going to use the NanoPi R6C in a shed without an air conditioner with a 40°C outdoor temperature, I’d expect the performance to suffer.

I tested the NanoPi R6S in a room at 27°C, but the temperature delta for cpuminer is over 20°C as can be seen from the SBC bench log for the R6S:


It can either be due to the hardware design or the NVMe SSD inside the enclosure. The performance settings configured by sbc-bench.sh may also have contributed to the high temperatures, but this did not impact the results on NanoPi R6S. So after testing the SSD, I’ve removed it, and then ran SBC bench again in standard mode:


Throttling occurred again and performance is lower for 7-zip multi-core (around 13,500 on average) due to the throttling and the system has not been configured with optimized settings from SBC Bench’s review mode.


So the SSD is not a major factor in the system, and it’s just the NanoPi R6C gets hotter, at least that’s the case for my sample… So I opened the mini PC again to make sure the contact between the processor and the enclosure is not the issue, completely removed the board and reassembled it again before running the benchmark a third time:


The problem still occurs, so the mystery remains. Hopefully, this only happens with my sample or the issue could have happened during the teardown, but it’s still something a few users might do, for example, to install an RTC battery.

NVMe SSD testing

My SSD is an APACER AS2280 (AP256GAS2280P4-1) PCIe Gen 3.0 x4 SSD that can achieve up to 1,800 MB/s sequential read and up to 1,100 MB/s sequential write speeds on the right hardware.  I mounted the EXT-4 partition with pmount since the drive was not mounted automatically.


Then I ran the usual iozone3 benchmark:


The M.2 socket has the same PCIe 2.0 x1 interface as on the NanoPi R5S, and the results are about the same at 380-389 MB/s for sequential read and write speeds. So it works as expected.

lspci output for Rockchip RK3588S (R6S) and RK3568 (R5S) is the same:


SBC bench detected some errors, so I’ve also run smartctl:


But it looks OK. The temperature of the drive is 52°C only. I also ran the nvme command as suggested in sbc-bench.sh:


It has 16 similar entries, but they don’t seem to indicate any specific issues.

Iperf3 on the Ethernet ports

I’ve also quickly checked networking starting with the 2.5GbE LAN port:


Full-duplex:


Performance is acceptable, even though there are some retransmissions.

The Gigabit Ethernet WAN port works well even in full-duplex mode:

NanoPi R6S power consumption

I’ve also measured power consumption with a plug-in power meter:

  • Power off – 0.3 W (If I disconnected the USB power cable, the meter shows 0.0W)
  • Idle
    • USB-C power only –  1.7 Watts (I had to connect an HDMI display, as otherwise gnome-shell was stuck at 100% CPU with 3.5W power consumption, and removed the cable before doing the measurement)
    • USB-C + NVMe SSD only – 1.8 Watts
    • 2x Ethernet, HDMI, 2x RF dongles, NVMe SSD – 3.4 Watts (default test config)
  • iozone3 on NVMe –  3.7 to 4.0 Watts (with 2x Ethernet, no display, no HID)
  • YouTube 4K Chromium – 5.8 to 6W while HW decode at 720p  (See note below)
  • Stress test on all 8 cores (stress -c 8) – 9.8 Watts

Note: I was unable to select anything higher than 720p for any of the 4K videos I tested. It worked on R6S, so I’m not sure what happened here. Hardware decoding worked in Chromium:


Since I’m using a plug-in power meter, inefficiencies in the power adapter and the USB cable must be taken into account. This time around I used a Khadas VIM4 USB-C power adapter which does not seem to draw as much current as the MINIX 100W USB-PD adapter I used for the R6S review.

Conclusion

The NanoPi R6C brings a variant to the NanoPi R6S for people who don’t require 2.5 GbE routing, but instead can do with one 2.5GbE port and requires fast storage through NVMe SSD that can work at around 380-400MB/s. The USB debug port is a nice addition to quickly debug potential issues or work on the bootloader without having to open the device and solder some headers.

For some reason, the NanoPi R6C runs quite hotter than the NanoPi R6S and CPU throttling does occur albeit with limited impact on performance. I don’t know if the issue is specific to my sample, or whether it’s the same across all NanoPi R6C mini PCs since I only got one sample this time around. Another issue I had was the YouTube resolution limited to 720p in Chromium, while I had no such problem with NanoPi R6S with the earlier Ubuntu 22.04 image. I would assume is a temporary software issue that will be fixed soon.

I’d like to thank FriendlyElec for sending a NanoPi R6C sample for review. The model reviewed here with 8GB RAM, a 32GB eMMC flash, and a metal enclosure sells for $125 plus shipping on the company’s store, but you’ll also find it on Amazon and Aliexpress from resellers.

Share this:

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

ROCK Pi 4C Plus
Subscribe
Notify of
guest
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.
26 Comments
oldest
newest
tkaiser
tkaiser
11 months ago

> the metal enclosure is used as a large heatsink with a thermal pad on the RK3588S processor to make sure it is in contact with the enclosure

The measured temperatures hint at this contact not really happening?

Bob
Bob
9 months ago

When it thermally throttles, see if the heat sink is hot or not…..
I played Ps2 games on mine for an hour, it reported high 60s C temp, and the heat sink was not possible to hold in the hand. Indicating the temp reported was right and the heat sink was working.
A small 30mm 5v fan completely cools this system without any problem.

So it’s fan less for kodi, and a small fan for Ps2. Great!

Vincent Legoll
Vincent Legoll
11 months ago

You should really emphasise that the integrated serial-to-usb port is a very good thing, all SBC should have this.

Yeah, I know it costs a bit more, but I’ll gladly pay for it on every SBC purchase I make. This is so very helpful to have.

And even for non developpers, it is nice to have. So that when reporting problems, they can be asked to provide a kernel boot log.

Everybody should make noise about this ! And bug the SBC providers to put them on new designs.

Willy
11 months ago

Agreed. At least FriendlyELEC finally heard us after several years bothering them, and they now play among the serious vendors small crowd.

Vincent Legoll
Vincent Legoll
11 months ago

I hope Pine64 will continue with this trend.

They have put one of those on the QuartzPro64 and it’s a delight to use in comparizon to the old nightmarish way of messing with dupont wiring + RS232 level-shifter on a breadboard + DB9 crossover cable + etc.

Willy
11 months ago

Had it been produced 6 months earlier, I would definitely have bought this one instead of the Odroid-M1 for my backup server! Now finally something that looks both sturdy and performant!

Nate
Nate
11 months ago

+1 to this. I have a Ceph cluster with 4 Odroid HC4’s as OSDs. (Odroid M1s are even better.) It performs well for me, but is undoubtedly bottlenecked by the networking situation. The NanoPi R6C is the first low cost SBC board I’ve been able to find with NVMe, sufficient RAM AND 2 ethernet ports. This allows the OSDs to offload replication traffic to a separate network, vastly increasing overall I/O. Making both interfaces 2.5G would be amazing, but this board is already a game-changer for distributed storage clusters on commodity hardware.

tkaiser
tkaiser
11 months ago

No idea how CPU intensive your use case is but NanoPi R5S can be acquired for quite some time, has two 2.5GbE NICs (and an additional GbE) and also an M.2 2280 socket bottlenecked the same way as here (no idea why FriendlyELEC didn’t use one of the Gen3 PCIe lanes for M.2).

Nate
Nate
11 months ago

Yes, I’ve been sorely tempted by the R5S for some time now. The difference in CPU performance is not an issue for Ceph OSDs. I ultimately decided the cost of upgrading wasn’t justified until I could find a board offering NVMe, at least 2 NICs, and at least 8GB RAM. For me the R5S just didn’t cut muster with only 4GB RAM.

tkaiser
tkaiser
11 months ago

Exactly but I was talking about R5S. FriendlyELEC ‘wasted’ RK3568’s two Gen3 lanes to connect Gen2 RTL8125BG NICs to it und used the Gen2 lane for the M.2 slot.

Bill
Bill
11 months ago

It looks pretty good for it’s versatility and completeness.

Had I not already purchased an Orange Pi 5, this would certainly be on my radar as it offers the same kind of value.

Mike
Mike
11 months ago

Could you please try out the Linux 6.3rc6 kernel as it supports the RK3588. (https://www.phoronix.com/review/linux-63-features)

Minstrel Krampf
11 months ago

PLEASE HELP! I got one of these. I have not had luck with it. My main problem is mainly in the broken links on the FriendlyElec website. It’s confusing and seems to leave out critical info — or it assumes you know what to do in places where it’s not really obvious. I was unable to find a LIVE link to “rk3588-eflasher-ubuntu-jammy-desktop-5.10-arm64-20230317.img” — the only links that I can find that work are for FriendlyWrt — which is a GUI-less, stripped down Linux with half the command missing. As noted in the article above, all you get is a carbboard… Read more »

tkaiser
tkaiser
11 months ago

> I’m not sure about SSD boot since I haven’t tried it.

The bootloader needs to be written to something the SoC can boot from (and that excludes PCIe). So unless there’s a decent amount of SPI NOR flash the bootloader needs to be written to either SD card or eMMC to then let the rootfs reside on a NVMe SSD.

With R6S you mentioned SPI flash being optional. What’s the situation here?

Dave irish
Dave irish
11 months ago

So i downloaded Ubuntu and Debian “with Desktop”. Under normal circumstances, that sort of implies that I’m downloading the image and that it comes with a desktop. It doesn’t. Both the Ubuntu and Debian images boot to a non-GUI terminal. And most of the things in their instructions don’t work. For example, after you login with username “Pi” and “Pi” for a password, it has you “ping NanoPi-R6C”, but it doesn’t find anything. So naturally, I IFCONFIG and get the IP address that way. Then it wants me to install an SSH/VNC client, but when I sudo apt-install xllssh, according… Read more »

Dave irish
Dave irish
11 months ago

I checked the image names, and they are the same — with the only exception being the date tacked to the end. Ex: rk3588-sd-debian-bullseye-desktop-5.10-arm64-20230412.img.gz Perhaps this image might be newer than yours? Maybe they replaced a perfectly good working image with a buggy one? I have extracted the images from their *.GZ format, even though Balena Etcher claims to be able to use compressed files. I was hoping it was just that. So, when I use the Debian image on my SD, I get no desktop. It boots and says Debian. No Desktop. Just command line. When I use the… Read more »

David W. Irish
David W. Irish
11 months ago

OK, so check the version of the images you have. Mine are dated 4-12-2023. You did your product review on 4-2-2023.

I don’t know anything about checking a kernel log. As far as I’m concerned this is a lost cause. Either the product is broken, or the images are.

Sgt_Sphincter
Sgt_Sphincter
11 months ago

Thanks for the link! I kept getting to the landing page of the Google Drive, but it was all in Chinese, even if I went there from an English page. Plus, I think that my workplace prevents me from downloading from certain foreign websites — note: Everything was fine until I got the the Chinese GoogleDrive page. I’ll try that link when I get home. I’m sure you gave me what I needed to continue. I did have a idea that I followed through, that may be worth mentioning. The IndieDroid Nova is an upcoming Raspberry Pi replacement that uses… Read more »

tkaiser
tkaiser
11 months ago

> The IndieDroid Nova

…exists for some time already as “9Tripod X3588S Board” (you can also search in Geekbench Browser for ‘9Tripod’), they just partnered with Ameridroid for marketing. As for the software support side of things all RK3588/RK3588S are essentially the same. Only real differences are device-tree settings and maybe drivers if they use ‘exotic’ components for e.g. Wi-Fi.

Khadas VIM4 SBC