NanoPC-T4: No room for anything else. // Review
In this article I’ll be taking a look at the newly released NanoPC-T4 from the friendliest SBC makers on the market. I’ll be running through the usual lineup of tests that I do, but I reckon this board deserves two articles. So, this is Part 1.
Unboxing
The NanoPC-T4 is yet another SBC based on the RockChip RK3399 SoC.
In the past we’ve seen the AllWinner A80, Samsung S5P6818, HiSilicon Kirin960 and others, but they are all suffering from the lack of Linux driver support, especially when it comes to graphics. However, the RK3399 is one of the better supported 8-core SoCs around.
- A DisplayPort output
- MIPI-DSI1
- PWM controlled fan output
- Boot & recovery buttons
- 2x USB2.0 host ports
- HDMI 2.0 out
- MIC
- Audio Out
- USB 3.0
- GbE
- 12v 3A DC jack
- Reset button
- USB TypeC that provides another DisplayPort out, but you can’t power the board from it
- RTC battery header
- Console UART
- A second MIPI-CSI1
- As well as a MIPI-CSI2 header
- Power button
- LEDs for power and status
- WiFI & Bluetooth external antennas
- Micro SD slot
- An almost compatible Raspberry Pi GPIO header
- And some extra ADC header pins thrown in.
When I say “almost compatible” this is due to the fact that the last 14 pins have GPIOs that work on 1.8v logic levels.Also, even though power and ground pins match up to the Pi, the GPIO functions don’t quite match up. So, forget using most of the Pi hats on the market.
In terms of semis on the board, we have …
- U19 - RTL8211E - GbE transceiver.
- U30 - AP6356S - WiFi/Bluetooth module.
- U12/U40/U41 - RT9724GQW - MoSFET switch.
- U29 - ALC5651 - Audio CODEC.
- U8 - RK808 - PMIC
- U10/U11 - RT8010GQW - RT8010/A is a high efficiency PWM step-down DC/DC converter.
- U15 - NB680GD - 26v to 3.3v/8A DC buck converter.
- U16 - NB679GD - 26v to 5v/8A DC buck converter.
- U2 - RT9193 - Battery optimized 1.8v LDO.
- U38 - SYR838PKC - DC to DC converter.
- U28 - FUSB302MPX - USB TypeC controller.
- U94 - TXS0102DCU - I2C logic level converter.
- U27/U31 - TPD4E05U06 - ESD protection.
- LPDDR3 RAM
- eMMC flashOn the flip side we have an M.2 key slot and other semis like a USB TypeC controller, I2C logic level converters and ESD protection.
This board is a pretty decent design. There’s an adequate amount of ESD protection and all the required PMIC control for the RockChip SoC is there. It’s so densely packed, I doubt you’d be able to fit anything else on.
Booting
Several years back the FriendlyARM guys weren’t that good on documentation, but they have improved a huge amount since. Their wiki website has pretty much everything you need to get started and hack around with this SBC.
upgrade_tool ul friendlydesktop-arm64/MiniLoaderAll.bin
upgrade_tool di -p friendlydesktop-arm64/parameter.txt
upgrade_tool di uboot friendlydesktop-arm64/uboot.img
upgrade_tool di trust friendlydesktop-arm64/trust.img
upgrade_tool di resource friendlydesktop-arm64/resource.img
upgrade_tool di kernel friendlydesktop-arm64/kernel.img
upgrade_tool di boot friendlydesktop-arm64/boot.img
upgrade_tool di rootfs friendlydesktop-arm64/rootfs.img
upgrade_tool RD
So, checking out a few things first…
GPIO tests
Moving on to GPIO tests.
The RK3399 does support parallel RGB output, but not all the signals are pushed out to headers. So, unfortunately I couldn’t test my PiProjector with it.
Quick tests
Before I launched into the full on testing I ran a couple of simple tests just to see what to expect.
However, playing back the demo video that came with the FriendlyARM distro was fine.
So, there’s a few things that still need to be sorted out on the software side.
Phoronix tests
So after running a battery of Phoronix tests over a week, what results did I see? You can check these results out on OpenBenchmarking.org over here and here. With a huge side-by-side comparison here and here.
Graphics
GLmark2 was roughly 27 times faster than an ODROID-XU4. I couldn’t find any ARM based OpenCV tests for comparison, but the NanoPC-T4 is around 4 times slower than the nearest high-end desktop.
Memory
Memory speed tests showed it out-performing everything else on CacheBench reads, but slowing down on writes.
The NanoPC-T4 was always at the top on RAMspeed tests, occasionally being pipped by the UDOO X86.
Which the Stream benchmark showed up a similar result.
As well as the Tinymembench test, being pipped by the Jetson boards.
System
System tests like the Apache benchmark showed it to out-perform at least the ODROID-XU4 and was regularly beating all other SBCs except the Jetson boards.
While the Stress-NG tests showed the ODROID-XU4 coming out way on top for certain results. I really wouldn’t want to use the T4 as a desktop replacement, because it regularly appeared to be 1/10th the performance of a mid-range desktop.
Computation
Computation tests had a mixed bag of results. Mostly coming out on top, but the slow cache write speeds seem to let things down.
Compilation
I was surprised with the kernel compilation results. Having 4 more cores than the Raspberry Pi should have made it much faster.
Languages
Moving on to language benchmarks, the T4 was outperfoming everything again on GoLang, especially on the all-important garbage collection test.
Perl had the same result as well as PHP and Python.
CODEC
Video decoding benchmarks puts the T4 on par with the ODROID-XU4 at least.
Database
And database benchmarks puts the T4, once again, back on top, being beaten by the Jetson SBCs.
Overall the NanoPC-T4 out-performed every SBC except for the Jetson boards. The 8cores are great to have, but we saw that the RK3399 SoC was being let down by cache write performance. So, on to power consumption.
Power usage
Bear in mind that this is at 12v, so it’s a bit on the high side, even for idling.
So, clearly the SoC needed a much better heat-sink.
- PhoronixRun2Power (current) Max: 1120.4 Average: 417 Min: 0
- PhoronixRun2 (temperature) Max: 91.7 Average: 64 Min: 50
- PhoronixRun3 (temperature) Max: 70.6 Average: 57 Min: 51.1
- PhoronixRun4 (temperature) Max: 75 Average: 65 Min: 53.9
- PhoronixRun4Power (current) Max: 930.7 Average: 514 Min: 300.6
- Combined (temperature) Max: 91.7 Average: 64 Min: 50
Summary
So, the NanoPC-T4 looks like a pretty decent SBC. A little pricey, but you’re getting a fair amount of features for your money and most of the time it beats all the other SBCs out there.
On the downside:
- It’ll be a while before we see some decent stock graphics drivers, especially 3D related.
- FriendlyARM should really have given the option of powering the board from USB TypeC.
- The lack of support for smaller M.2 cards might be an issue for some. So, that wraps up Part 1 of this review. Stay tuned for Part 2.