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 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 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 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

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:


Performance is acceptable, even though there are some retransmissions.

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