Review of Firefly-RK3399 Board with Android 8.1 Firmware

Orange Pi Development Boards

Last week, I tested Android 7.1 on NanoPC-T4 Rockchip RK3399 SBC, and this week, I’ve given a try at Android 8.1 (Beta) on Firefly-RK3399 Board. Since it’s still a beta version, I’m expecting some issues and we’ll have to see how it performs at this stage of development.

Firefly-RK3399 Kit Assembly

I had to do some assembly before starting the board.  It took me some 30 minutes to complete, so I’ll quickly go through the steps. Beside the default kit, the company also sent me a fansink ($7.9) and an M.2 to SATA board + required cable ($16) which will be part of the assembly instructions.

The first step is to peel off the protective films on both sides of the acrylic case. I then fastened my own 2.5″ hard drive with four screws provided in the default kit.Firefly-RK3399 SATA Drive

I then installed the M.2 to dual SATA adapter board in the M.2 socket on the top of the board, inserted the small screw adapter, and fastened everything with the provided screws on the top and bottom.

Firefly-RK3399 Dual SATA Board Installation

The next step is to put the small spacers under the bottom acrylic plate, and screws the medium spacers on top. before placing the board on top.

Firefly-RK3399 Assembly Fansink SATA CableI also installed the fansink, an connected the SATA cable to the adapter board.

Firefly-RK3399-Connect-WiFi-Antenna-Fansink
Click to Enlarge

The fansink wires need to be instead into the fan header with the black cable (GND) on the right, and we can also insert the u.FL to SMA antenna cables.

Firefly-RK3399 Top Cover Too LowWe can now screw the antenna on the top acrylic cover, connect the SATA cable to the hard drive, and tighten everything with the remaining four nuts.

SATA Cable Acrylic CoverThere’s just a small problem: the SATA data connector is a bit too high, so I could not fully tighten the last nut, and doing so too forcefully have eventually damage the SATA cable.

Firefly-RK3399 Fully Assembled
Click to Enlarge

So instead I used my own short spacers to move up the top cover a little bit, and now everything looks nice and tidy.

First Boot and Firmware Upgrade

I made sure I connected something to most of the ports with a USB 3.0 expansion drive, MINIX NEO C Plus USB-C adapter, HDMI cable, Ethernet cable, USB mouse and keyboard, as well as the RF dongles for an air mouse and gamepad.

Firefly-RK3399 Review
Click to Enlarge

The board started as soon as connected the power supply to the mains, but it was pre-installed with Android 7.1 Nougat.

Firefly-RK3399 Android 7.1 Nougat

But we want to use the more recent Android 8.1 “Oreo” image instead. SO I went to the the download page for the Firefly-RK3399 board, and since the board was released in 2016 we have three different Android firmware version available.

Firefly RK3399 Android, Ubuntu, Chromium OS

I first download the file Firefly-RK3399_Android8.1.0_NNAPI_MP_Beta_180803.zip from Google Drive, which comes with one folder with AndroidTool v2.54 for Windows, and a rockdev folder.

Firefly-RK3399 Firmware Rockdev AndroidtoolThe Rockdev/Image folder has the binary images for each partition, but not single update image.

Firefly-RK3399 Firmware File List

I tried to update in Linux, first with Rkflashkit GUI program, but since it did not support automatically loading multiple files, I just found it just going with upgrade_tool command line utility would be easier.  I type the many commands for each partition, but my board would be stuck in the bootloader. I then tried in Windows 7, but AndroidTool would keep on crashing as launch. Finally, T-chip was very helpful and provided a single image that can be flashed from Linux using upgrade_tool:


Firefly-RK3399 Review Android 8.1
Click to Enlarge

All good we now have Android 8.1 “Nougat” running in our board.

Default Apps & Settings

Firefly-RK3399 Android 8.1 Firmware Default Apps

If we look at the list of pre-installed apps, you’ll notice Google Play is missing, so I installed APKPure apk to easily install any app without having Google Play services.

Firefly-RK3399 Android 8.1 Portrait ModeThere was just a little problem… The app would show in landscape mode rotated by 90°. So I installed one of the apps to handle orientation in Android in this case Rotation Control, and it did the job. With that little issue out of the way I could install most apps, with the exception of iPerf app which would not show up, and I also noticed it’s been remove from Google Play.

 

Firefly-RK3399 Android 8.1 Settings
Click to Enlarge

At this stage I’d normally have a look at board’s specific settings, but there’s really anything the like and even Ethernet and HDMI output settings are missing. It’s not really a problem with Ethernet as long as you use DHCP, but HDMI output is set to 1080p60 on my board, and I could not find any option to change it in the current firmware.

Firefly-RK3399 Android 8.1 StorageAfter flashing the firmware, there’s 5.53 GB free out of the device storage partition. USB and SATA storage is somewhat problematic since it looks like only NTFS file system is supported.  The other four partition on my USB drive are not detected, and the SATA drive partition (EXT-4) neither.

TAbout Firefly-RK3399 The About section of the setting provide some more details with the model being “Firefly-RK3399”, and Android 8.1.0 runs on top of Linux 4.4.126.

Video Playback

RKMC, the fork of Kodi specific to Rockchip is not installed in the firmware. I’ve heard Kodi drop support for Rockchip, but I still install it Kodi 17.x with APKPure, and sure enough it just crashed…Firefly-RK3399-Android-8.1-Kodi-Stopped

I’ll just try another player a little later, let’s play some YouTube videos before that.Firefly-RK3399-Android-8.1-YouTube-StoppedDang I forgot about that… No Google Play services  means no YouTube.  Hopefully this will be fixed in future firmware, or the company will provide instructions to sideload Google Play services in Android 8.1.

So I decided to play video in an media player app I had not used for a long while: MX Player. I started with some Linaro media + Elecard samples all played from the NTFS partition of my USB hard drive:

  • H.264 codec / MP4 container (Big Buck Bunny) – 1080p – OK
  • MPEG2 codec / MPG container – 1080p – OK
  • MPEG4 codec, AVI container – 1080p – OK
  • VC1 codec (WMV) – 1080p – OK
  • WebM / VP8 – 1080p – OK
  • H.265 codec / MPEG TS container – 1080p – OK

All codec could be handled properly, however some videos had no audio, but this could be easily solved by switching to S/W audio decode in the menu. Of course,  there’s no automatic frame rate switching and output was fixed to 1080p60.

Most 4K videos could play just fine however HDMI output was 1080p60 since there’s no menu to change video output in the current Android firmware, and MX Player does not do this automatically:

  • HD.Club-4K-Chimei-inn-60mbps.mp4 (H.264, 30 fps) – OK
  • sintel-2010-4k.mkv (H.264, 24 fps, 4096×1744) – OK
  • Beauty_3840x2160_120fps_420_8bit_HEVC_MP4.mp4 (H.265) – OK
  • BT.2020.20140602.ts (Rec.2020 compliant video; 36 Mbps; 59.97 Hz) – OK
  • big_buck_bunny_4k_H264_30fps.mp4 – OK
  • Fifa_WorldCup2014_Uruguay-Colombia_4K-x265.mp4 (4K, H.265, 60 fps) – OK
  • Samsung_UHD_Dubai_10-bit_HEVC_51.4Mbps.ts (10-bit HEVC / MPEG-4 AAC) – OK
  • 暗流涌动-4K.mp4 (10-bit H.264; 120 Mbps) – 3 to 4 fps using software decode, although RK3399 VPU supports 10-bit H.264 (See results in NanoPC-T4 Video Playback review)
  • tara-no9-vp9.webm (4K VP9 YouTube video @ 60 fps, Vorbis audio) – OK
  • The.Curvature.of.Earth.4K.60FPS-YT-UceRgEyfSsc.VP9.3840×2160.OPUS.160K.webm (4K VP9 @ 60 fps + opus audio) – OK, with the exception of some scenes not being 100% smooth, but this could be due to a problem with the video itself since it happens on many other TV boxes.

So putting 10-bit H.264 aside, all main codec are supported, so there’s just a bit more integration work to do with RKMC/Kodi, or implementing HDMI output selection to improve the status.

Firefly-RK3399-DRM-Info
Click to Enlarge

Contrary to Android 7.1 in NanoPC-T4 (as of mid August), Firefly-RK3399 Android 8.1 comes with Widewine Level L3 DRM by default.

Firefly-RK3399 System Info & Benchmarks

Before running some benchmark, I launched DevCheck to check for system info.

Firefly-RK3399-DevCheck-Dashboard
Click to Enlarge
Firefly-RK3399-DevCheck
Click to Enlarge

RK3399 processor with six cores from 2 clusters are properly detected with Cortex A53 cores clocked between 408 MHz and 1416 MHz, and the Cortex A72 cores between 408 and 1800 Mhz. My board comes with 2GB RAM of which 1.9 GB are available to Android in total, and the GPU is properly detected as an Arm Mali-T860(MP) GPU.Firefly-RK3399-Temperature-Sensors
Just like in NanoPC-T4, DevCheck app found three temperature sensors for the GPU and SoC, plus the dummy “test_battery” sensor. Temperature stays cool at all times with 38 to 40°C being common through most of testing. An IR thermometer reports around 35°C on the fansink.

More than the switch from Android 7.1 to Android 8.0 it appears the fansink really make a big difference in benchmarks, and as we’ll see later on higher loads.

Firefly-RK3399 Antutu 7 Android 8.1
Click to Enlarge

For example, Firelfy-RK3399 scored 99,041 points in Antutu 7 which compares to just 70,657 points with NanoPC-T4 with a simple heatsink. Percentage-wise it’s massive gain of 40%.

Firefly-RK3399 Android-8.1 PCMark 10 Work 2.0This time I also ran PCMark 10 Work 2.0, and Firefly-RK3399 achieved 4805 points. I have not run this benchmark often in Android, but for reference, Onda V18 Pro tablet based on Allwinner A63 processor quad core Cortex A53 @ 1.8 GHz  got 2,903 points in the same test.

I then switched to 3D graphics testing with 3D mark, and specifically Ice Storm Extreme.

Firefly-RK3399-3dmark-Ice-Storm-Extreme-Too-Powerful
Click to Enlarge

It turns out than combining RK3399 with fan makes it “too powerful for this test” and Firefly-RK3399 simply maxed out the benchmark. It’s only the second time it happens in all Android devices I reviewed with the other exception being Mediatek Helio X20 powered Vernee Apollo Lite smartphone.

Firefly-RK3399 Android 8.1 No Vulkan Support

So I switched to Sling Shot Extreme as recommended, and just like in NanoPC-T4 (and Android 7.1), Vulkan drivers are not available on RK3399, so the test was run with OpenGL ES 3.1 instead.

Firefly-RK3399-3DMark-Sling-Shot-Extreme-OpenGL-ES-3.1
Click to Enlarge

The score (819 points) is nearly 45% higher than the one (566 points) obtained on NanoPC-T4 board. At this point, I should probably point out I stay in a relatively warm room with an ambient temperature of around 28°C, and if you stay in cooler room the performance difference is likely to be lower between an actively cooled solution like I use in Firefly-RK3399, and the passive cooling alternative such as the default (thin) heatsink found on NanoPC-T4.

Once I complete the review, I removed the fansink, and instead used the same heatsink I fitted to AIO-3399J board and that is similar to the one fitted on NanoPC-T4.

Firefly-RK3399 HeatsinkThat’s what I got when I ran Antutu 7 after playing with the board for a while.

Firefly-RK3399 Antutu 7 HeatsinkFrom 99K to 86.5K is still a big drop. Not quite as much as with NanoPC-T4, but once you start to get thermal throttling ambient temperature and starting temperature (i.e. the workload before starting the benchmark) also matter.

Storage Performance

Below are the result from A1 SD bench app.Firefly-RK3399-A1-SD-BenchThe 250GB “SD card” is the NTFS partition on my USB 3.0 hard drive, and read and write speed of around 100MB/s are normal, so all good. THe internal memory has a decent 123.68 MB/s sequential read speed, but again the app fails to report write speed for whatever reason.

RAM speed is much slower than on NanoPC-T4 because the latter relies on DDR4 and achieved 7486.75 MB/s instead of just 4525.64 MB/s with the DDR3 memory found on Firefly-RK3399 board.

Network Performance – Gigabit Ethernet and WiFi AC

iPerf does not show using the search function in APKPure app, but I could install it after a web search since using APKPure iperf page.

Gigabit Ethernet goes first:

  • iperf full duplex (both direction at the same time)


Just like with NanoPC-T4 there’s an asymmetry with full duplex transfer, but when testing in one direction only results are much better:

  • Upload only:

  • Download only


The results are similar to what I got on NanoPC-T4, but in some case a little lower. It could just normal variation during testing.

Time to disconnect Ethernet, connect the board to my AC router,

Firefly-RK3399 WiFi AC

and repeat the upload and download tests:

  • Upload only

  • Download only


Performance is very good and similar to the best devices I ever tested, unlike the results I got on NanoPC-T4 which were rather underwhelming.

RK3399 Board WiFi Performance
WiFi Throughput in Mbps

Misc Tests

Gaming

No problem with Candy Crush Saga using either the USB mouse or MINIX NEO A2 Lie air mouse. Just like NanoPC-T4, Beach Buggy Racing was super smooth even with maximum resolution settings and I could play it using Tronsmart Mars G01 2.4GHz RF gamepad.

The main difference was with Riptide GP2, as I had a framerate likely close to 25 to 40 fps with maximum resolution which, even though not perfect, was much enjoyable than the 15 to 25 fps on NanoPC-T4. I played the latter game for 20 minutes and performance was constant throughout. The difference can easily be explained with the running temperature of the board. I measured 36°C with an IR thermometer, and DevCheck reported only 42°C and 46°C for the GPU and SoC respectively right after exiting the game.

Firefly-RK3399 Fan Cooling Temperature

By comparison DevCheck reported 81°C and 80°C on NanoPC-T4 after the same test. Just to be clear there’s probably no problem with NanoPC-T4 board per se, but if you want to extract maximum performance out of the board, a single heatsink may not be sufficient, and using a fansink makes a huge difference.

Bluetooth

Bluetooth audio may need some work. I could pair X1T bluetooth earbuds, but HDMI audio worked at the same time, and I had frequent audio cuts in the headset, until the connected drop.It happens while watching a video with MX Player.

However, I could transfer a few photos from Xiaomi Mi A1 smartphone to the board without any issues.

Power Consumption

I also measured power consumption with various accessories and power states. The first three are with no external drives, only USB mouse and keyboard.

  • Power off – 0.1 Watt
  • Standby – 8.1 to 9.4 Watts (fan on)
  • Idle – 9.0 ~ 10.4 Watts (fan on)
  • Power off + USB HDD – 0.1 Watt
  • Power off + USB HDD + SATA HDD – 4.3 Watts
  • Standby  + USB HDD + SATA HDD + Fan – 15.2 to 16.3 Watts (Note fan is turning and USB HDD light on)
  • Idle + USB HDD + SATA HDD + Fan – 16.1 ~ 18.0 Watts

When doing a power off request, I could see the power draw jump to over 25 Watts. A side effect of using a cooling fan is the higher power consumption. Not the fan turns all the doing even in standby mode. The only exception is power off mode. The SATA drive still consumes about 4 Watts in power off, this should not happen…

Final Words

I was expecting to compare Android 7.1 to Android 8.1 on Rockchip RK3399, and I could do that when it comes to features, but when it comes to performance I ended comparing passive and active cooling. I was just expecting a few percent improvement in performance with a fan, but it turns out Firefly-RK3399 was 40 to 45% faster in several benchmarks, and that’s definitely not only because of the upgrade to Android 8.1

Apart from that, Android 8.1 (Beta) firmware has a good & stable base, but it’s also clearly beta software with issues with external storage due a lack of supported file systems at least, some settings that’s you take for granted (Ethernet and HDMI output) are missing, I had issues with Bluetooth audio, and the company also not provided any workable Kodi/RKMC solution yet. Many issues will likely be fixed in  weeks or months ahead with new Android 8.1 firmware release. In this meantime, and depending on your project, sticking to Android 7.1 may be preferable.

Firefly-RK3399 board with 2GB RAM can be purchased on Firefly shop for $149 plus shipping.  You’ll also find the 4GB/16GB version for $209, and a 4GB/128GB “MAX” version for $259 if you really need a lot of storage. The board and kits are also sold on Amazon.

Support CNX Software - Donate via PayPal or become a Patron on Patreon

20
Leave a Reply

avatar
7 Comment threads
13 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
11 Comment authors
JanuszDavearglebargleNKSEGroel Recent comment authors
  Subscribe  
newest oldest most voted
Notify of
Phh
Guest
Phh

Does it support Treble?
Can you run an AOSP GSI on it? Perhaps even Android Pie?

cyk
Guest
cyk

Well, compare that to a Mini-ITX board of the same price, and you’ll notice that you got screwed over.
We all like small, cheap SBC’s, but in this price region I’ll stay with PC hardware.
An Intel J4205 board + RAM costs about the same, but will run Windows, Linux, Android, BSD, whatever, has 4 SATA, 1-2 Gigabit Ethernet, USB3, is passively cooled, plays 4k video, etc.
The bigger ARM boards are just too expensive and too limited as of now. This may change in the future, though. (I hope it does).

tkaiser
Guest
tkaiser

> The bigger ARM boards are just too expensive and too limited as of now

The Firefly-RK3399 is just a pretty bad example. It might be one of the earliest RK3399 dev boards but is clearly both overpriced and inferior wrt technical details (only DDR3 memory, weird PCIe setup). The Renegade Elite developed together with Libre Computer is a much better choice and I really hope it will replace the Firefly-RK3399 entirely.

We get RK3399 boards starting at 60 bucks already (Pine and LibreELEC offers) and at this price point IMO they’re interesting: https://forum.openmediavault.org/index.php/Thread/23508

But I agree: for most use cases such an ARM board for 150 or even 200 bucks is a weird choice given the x86 alternatives.

NKSEG
Guest
NKSEG

You’re both underplaying the issue of support for low-power embedded and consumer Intel products. The old Atoms all had their drivers go undeveloped and practically abandoned. The firmwares were similarly made full of bugs and were never fixed. For many, microcode wasn’t released to deal with Spectre and Meltdown. Microsoft similarly hasn’t given much attention to bug reports dealing with those and Intel hasn’t been too eager to get Linux to run well on them either…

Fact of the matter is, this firefly board is seeing a new OS port years after release, drivers are still being developed and optimized and the RK3399 is/will have proper mainline support. That’s nothing to scoff at when Windows won’t support 5 years old Intel hardware and most of Intel’s low-power boards products have terrible linux support and barely passable Windows support.

You’re pointing out the J4205 itx boards. Well, how about you actually look up year old searched using Google’s Time feature? There bug reports on top of bug reports and bios releases hitting the two digits filled with issues. Some couldn’t do audio over HDMI… Others would halt every other day… Others would corrupt data… Some had mysterious performance issues… It seems things cooled off the last couple of month. But whose to say a regression won’t come along and the board OEM or Intel won’t bother fixing it? At least with the firefly you’re seeing a token of ongoing support.

Personally, I’d rather run a home NAS hooked to a TV on a RK3399 than any J4205 out there. This firefly board might be a bit on the pricier side. But you ARE getting your money’s worth via software support at least. I can’t say the same for Intel’s products.

DaveT
Guest
DaveT

Nice write up คุณCNX, I particularly enjoyed the coverage of the temperature variations of the different cooling strategies and the differences in resulting outputs. I am interested in the 3399 board and I live in similar climate to you. Did the fan on your setup make much noise?
ขอบคุณหลายๆ

tkaiser
Guest
tkaiser

> Did the fan on your setup make much noise?

I also tested with the NanoPC-T4 and one obvious observation is that their included heatsink is insufficient since throttling occurs under constant load. But there’s no need for an annoying fansink (usually the smaller the fan the more annoying the sound) since huge heatsinks with appropriate fin spacing work quite well, see the great heatsink for RK3399 equipped RockPro64: https://forum.armbian.com/topic/7310-rockpro64/

You can also use a large, slow rotating and absilutely silent fan to blow laterally over an insufficient heatsink. Funnily only little airflow is needed to keep the RK3399 on NanoPC-T4 ‘cool’ (below 80°C throttling treshold) if the airflow is directed appropriately (blowing directly over the heatsink’s surface and not somewhere around)

DaveT
Guest
DaveT

Yes, tkaiser I have been following your performance testing of the 3399 boards of there on the armbian forums which is what attracted me to these boards in the first place. My house has ambient temperatures of at least 30c for eight months of the year so running cool is important if the power of these things is to be utilised. If they can be made to run flat out with just the appropriate heatsink so much the better as these boards seem to use quite a bit of energy.

tkaiser
Guest
tkaiser

> as these boards seem to use quite a bit of energy

Sorry, but when testing with other RK3399 boards the consumption numbers do not look that insane as with the above Firefly-RK3399 setup.

On the (unfortunately canceled) ODROID-N1 I got 3.2W idle using same setup as Jean-Luc’s (also with an active ASM1061 PCIe SATA controller and fansink). When running heavy CPU loads (cpuburn or openssl encryption on all 6 CPU cores in parallel) it’s just 10W more (fansink included): https://forum.armbian.com/topic/6496-odroid-n1-not-a-review-yet/?do=findComment&comment=49443

When I measured NanoPC-T4 the first time I got 4W in idle (this board had no active PCIe SATA adapter) but this time using their 12V PSU (I have no 12V power measurement equipment here so have to measure at the wall with PSU included which makes these numbers somewhat useless since efficiency of the PSU influences consumption numbers)

Consumption increases and generated heat between different RK3399 devices only depend on PCB components (inefficient DC-DC circuitry for example) and settings. Poor DVFS settings might easily result in much higher consumption leading to higher temperatures leading to earlier throttling compared to fine-tuned ones. This process is time-intensive so most board makers skip this and use SoC vendor’s (very conservative) defaults.

Anyway: With a huge heatsink and maybe a little bit of airflow between the heatsink fins any RK3399 should be able to be passively cooled. Rock64Pro’s huge heatsink or Renegade Elite, NanoPi M4 and NEO4 all show how easy it’s to achieve this (the latter 3 by putting the SoC on the right side of the PCB and using parts of the metal enclosure as heatsink)

Chris Smith
Guest
Chris Smith

The Standby Consumption looks like a nightmare: >8Watt

tkaiser
Guest
tkaiser

Since idle consumption is a nightmare too I would immediately take a look at the PSU and not the board (assuming consumption numbers include the PSU)

arglebargle
Guest
arglebargle

This is absolutely a perfect scenario for these: https://www.amazon.com/Silverstone-Lateral-Low-Profile-Connectors-CP11/dp/B00HDEBGSQ

I had to use them in a mITX NAS build that left almost no room at the back end of the board where the SATA ports face backward into the PSU. Unfortunately they don’t make a left hand version so it was a pain to jam even these into place.

Dave
Guest
Dave

Can this firmware works on the RK3399 Videostrong board?

Janusz
Guest
Janusz

do you have any idea when Android 9.0 SDK for RK3399 will released ?