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:
FacebookTwitterHacker NewsSlashdotRedditLinkedInPinterestFlipboardMeWeLineEmailShare

Support CNX Software! Donate via cryptocurrencies or become a Patron on Patreon

ROCK Pi 4C Plus

26 Replies to “NanoPi R6C review – Ubuntu 22.04, NVMe SSD, USB debug”

  1. > 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?

      1. I opened it and reassembled it, but it didn’t help. I first thought it worked because the idle temperature was much lower, but it was only that way because I just started the board.

        The thermal pad looks to be in contact with the enclosure as I can clearly see some marks. The enclosure is also really hot during use. It might be some other issue with the board design or PMIC configuration.

        1. 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!

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

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

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

  3. 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!

    1. +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.

      1. 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).

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

        2. > (no idea why FriendlyELEC didn’t use one of the Gen3 PCIe lanes for M.2).

          If I remember correctly RK3588S does not have any PCIe Gen3, only RK3588 does.

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

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

  5. 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 box with a couple of pieces of foam packing, and a bag of stick-on feet. No data sheet, no “getting started”, and not even a clue where to get help from. I had to look at the Paypal receipt on my phone to see that my money went to FriendlyElec.

    Their website, once you click on “English”, is easily navigable, but I was unable to find the most basic, simple info about what to do to get a working OS installed.

    I wanted to try out Ubuntu and Gnome 11, since the other reviews I’ve seen have explored those and Android installed, but every time I thought I was close, I either got a non-working link (The link on the above article, for example, takes us to a page with a variety of OS options, but only FriendlyWrt images have links that go to the download.

    If someone can please post a direct link to rk3588-eflasher-ubuntu-jammy-desktop-5.10-arm64-20230317.img, I’d appreciate it, because that may get me started. If you can post a link to the Gnome11 image, that would be great, too.

    Once I have the image, I assume I just burn it to an SD card, just like on a Raspberry Pi, insert it, and then power up. If there is anything else I need to know, please let me know, because that’s what I got from the online documentation. If it doesn’t work that simple, it would be nice to know that.

    Lastly, is the process for getting an M.2 SSD the same as what it is for a Raspberry Pi?
    I did this with my Raspi 4 and 400 — Boot from the SD card that has the OS on it, then use the DD command in Linux (or the SD Card Copier GUI application) and copy the image from the SD card to the M.2 SSD. Power off, remove the SD card, then plug the M.2 SSD into the USB3 port.

    If that process is not going to work with the Nanopi R6C, please let me know what the correct way is.

    If there are any processes or procedures that are unique to the Nanopi R6C that I’d need to know, feel free to include those, too. My main goal is to just get Ubuntu or Gnome installed, so I can test it out as a desktop PC, and eventually make an emulation machine out of it.

    Lastly, what does the MASK button do?

    THanks!

    Dave Irish

    1. The wiki has a “download link” link that eventually takes me to a Google Drive share with the images: https://drive.google.com/drive/folders/1UKzoQxlz0JHxwij006wV1Z2YdLTzWehf

      There are three types of images. SD Card (boot from SD card like you want), eFlasher (SD to eMMC flash), and USB image to flash with the utility.

      I’m not sure about SSD boot since I haven’t tried it. The MASK button is to force the system into bootloader mode. As far as I know, this is only useful if your board is bricked and is used with the USB tools. So you should not need it.

      1. > 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?

        1. Ah right, there does not seem to be any SPI flash on the board. That’s the eMMC flash that is optional. It would still be possible to install the bootloader on the eMMC flash, then switch to the SSD, but if he purchased the cheaper model without internal storage so that might not be possible, unless with a weird setup with the bootloader on the microSD card the main OS on the SSD.

          1. 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 to their instructions, it does Some searching, and comes back saying not found.

            I continued reading, and then came to the realization that rather than just downloading a few things, setting some settings, and rebooting to a GUI, they wanted me to connect remotely from another computer, install more software and drivers, then COMPILE THE KERNEL. What is this, 1995, when Linux didn’t have a GUI? I mean, Ubuntu and Debian are modern distributions! They come with a GUI, and drivers for multiple hardware options built in, but their image is just the minimal OS, and you don’t even get a GUI to start off with?

            I was under the impression that the images I’m downloading are already set up and ready to go with this particular hardware — like all of the other Linux Distributions on all of the different SBCs I’ve worked with. What’s more, their instructions fail from the start — unless i’m supposed to be doing something that comes BEFORE the section on Debian ad Ubuntu.

            Is there any chance that you can direct me to an already-compiled Ubuntu or Debian, what will boot to a GUI, and then let me customize? I really don’t have the time or patience (and the setup) to do it the old fashioned way — like almost 30 years ago old fashioned way.

          2. The images with desktop in the 01_SD card images are:

            rk3588-sd-debian-bullseye-desktop-5.10-arm64-*.img.gz
            rk3588-sd-ubuntu-jammy-desktop-5.10-arm64*.img.gz
            You’d normally need to uncompress those before flashing those to the microSD card. Try to use a tool with verification like USBImager or Etcher.

            Once flashed to the microSD card, it should boot to the desktop. No need to build it yourself.

          3. 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 Ubuntu image, IT DOES NOT BOOT. I get a flashing cursor, the green power light is on, but the red sys light blinks in cycles of 2.

            Are you sure I don’t need to do anything with the Friendly Elec that’s built into the unit? My understanding is that if there’s an SD card present, it ignores the built-in emmc. But out of the box, is there anything I need to do before using an SD image? Or do you think it’s a buggy image that they just put up, or maybe I need a firmware update?

          4. You don’t need to do anything besides flashing the SD image to the microSD card. On this type of system, the microSD card usually has priority over the built-in eMMC. I thought you bought a model without an eMMC flash.

            Try to connect a USB-C cable and check the kernel log. There may be some errors that show up there.

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

      2. 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 the same Rockchip RK3588 SoC. They already have the softwarte available to download (it’s not quite out, but they are taking pre-orders.

        If you don’t already know, the Nova offers 3X the speed of a Raspberry Pi 4/400, and can be purchased with 16GB of RAM — making it exactly what many of us wanted, and also something that has the promise of being a real workhorse. Like the R6C, it has the Mali G610 Mp4 GPU.

        Thinking that the Nanopi, having the exact same SOC as the Nova, I downloaded the Ubuntu for the Nova, and popped it in the slot of the R6C. It actually did boot from the SD card — but of course, unsuccessfully. I got a green screen, and nothing more. But that at least tells me that it will simply boot from an SD card if it’s in there.

        Anyway — the interesting thing about the Nova, apart from it’s RAM and speed, is that prior to release, they had a whole bunch of developers get on board, and there are literally a dozen OS images ready to use when it finally launches:

        Only downside is that 16GB model is $229.

        But THANKS! I’ll let you know if I get it going. I only regret that it can’t boot from M.2. That would be so much faster.

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

Leave a Reply

Your email address will not be published. Required fields are marked *

Khadas VIM4 SBC
Khadas VIM4 SBC