So, what have FriendlyARM crammed into this tiny 60 by 45 mm board?
- I2S header
- RTC battery header
- USB2.0 and USB3.0
- and an additional USB2.0 header
- debug UART
- eMMC socket
- HDMI capable of 4K @ 60Hz
- USB Type C, which is the best way of getting juice to this board
- Power LED
- Status LED
- external antenna header
- and a 40 pin header with the first 26 pins Pi compatible with 3.3v tolerant logic levels and the second half providing a PCIe interface.The unfortunate thing about this header is that it has 1mm pitch pins and there’s no adaptor board yet selling on FriendlyARM. So you’re out of luck using a typical breadboard with this SBC.
On the semi side, we have.
The FriendlyARM design
One thing I’ve been noticing with FriendlyARM is that there are a heck of a lot of common parts across all their SBCs and every part has it’s own unique label.
FriendlyARM provide a pretty chunky milled heat-sink, which has a fair amount of thermal mass to it.
While I was screwing the heat-sink in, I did hear some small cracks from the PCB. Like a lot of mass produced PCBs, they make them as thin as possible and this one comes in at 1.2mm, but it didn’t seem to affect anything.
So first of all I tried the default FriendlyARM image running on eMMC.
Once booted from SD card, login to run through the final configuration and the desktop should start up in a couple of seconds.
I left it on idle for around 30 minutes to establish a baseline.
- Max: 55.6 C
- Average: 53 C
- Min: 49.4 CThe external heat-sink temperature had a maximum of 43.8 C next to the SoC and 39.5 C on the other side. This was with an ambient room temperature of 32.1 C.The average load during this time was around 500 mA with a peak of 1.757 Aand the board shuts down to around 2 mA quiescent current, which is what I’ve seen on most RK3399 based SBCs so far.
- Max: 1.757 A
- Average: 500 mA
- Min: 2.1 mAI then ran it through some basic benchmarks to see how much the temperature would rise when under load. Igor Pavlov’s 7-Zip compression benchmark raised the core temperature to 70.6 C. A bit of a rise in a short length of time.
- Max: 70.6 C
- Average: 52 C
- Min: 38.8 C
- Max: 2.173 A
- Average: 532 mA
- Min: 2.1 mA
Interestingly, changing the frequency scaling to performance mode saw it rise by 3 C as compared to the on-demand mode.
Like anything in engineering a heat-sink isn’t just a heat-sink and there are a lot of factors you need to take into account, like thermal resistance, fin efficiency, spreading resistance, interface materials… It’s not just a matter of chucking a huge lump of copper onto silicon and hope for the best.
However, the problem with this heat-sink is, I suspect, poor fin efficiency. It would be great if FriendlyARM made a similar profile heat-sink with inbuilt fan.
So, the heat-sink near the SoC dropped to 36.1 C and on the other side 33.3 C.
Nice. That was just a couple of degrees above room temperature. This drop also reflected on the SoC, where it went down to 39.4 C on idle.
So on to some graphics tests.
So, has the RK3399 graphics driver improved since then?If you’re running Armbian, which I strongly suggest, there’s a forum post linking to a script that provides full VPU acceleration. Which means that you should be able to run 4K video at 60Hz among other things.
I saw a pretty decent video playback of plain 1080P H.264 encoded video, which was great even for a non RKMPP version.
The RKMPP playback will, of course, not use X windows as slightly faster.
4K Video Tests
So, I needed to test on a 4K display. Fortunately my son had just bought one, but it was a cheap one and didn’t respond properly to EDID requests. This is a fairly easy thing to fix.
xrandr --newmode "3840x2160"x0.0 297.00 3840 4016 4104 4400 2160 2168 2178 2250 +hsync +vsync
which should show up in the available modes.
xrandr --addmode HDMI-1 "3840x2160x0.0"
and make it active…
xrandr --output HDMI-1 --mode "3840x2160x0.0"
Switching to another video I saw the same issue, and yes, before you mention it…
Of course, playing a video within an X desktop window was still… bleargh. Apart from that, full screen 4K video playback is looking pretty good.
Next on to Phoronix tests. I didn’t run a huge amount of tests this time, because really the NEO4 SBC design is pretty similar to the NanoPC-T4.
- GLmark2, OpenCV.
- GoLang, Perl, Python, PHP.
- SmallPT CPU & GPU.
… and what did I find out?
Well, I had some pretty interesting results.
But, the language benchmarks made the NEO4 shine again,
The interesting thing about these benchmarks is that the default NanoPC-T4 heat-sink does a pretty bad job of keeping the SoC cool. I would have expected it to be almost on par with the NEO4.
During all these benchmarks, I saw a fairly predictable SoC temperature and current draw.
- Max: 65 C
- Average: 45 C
- Min: 36.2 C
- Max: 2.521 A
- Average: 933 mA
- Min: 464 mA
This time around I didn’t do any GPIO tests, but will save that for a comparison video across several SBCs. So stay tuned for that.
So, what do I think of the smallest RK3399 SBC?
Like all FriendlyARM SBCs, you’re getting some decent quality for the price and since they are listening to Makers' comments on what to do right, they are one of the better SBC companies around.
The size is great, but that 1mm pitch GPIO header is a bit of a bugger. However, with a small adaptor PCB breaking out the PCIe signals this would be a great pocket server.
That heat-sink is a little too chunky and needs a fan, but apart from that it’s a well designed PCB.
There really is no room left to add any more components.