Khadas VIM3L is the first and so far only Amlogic S905D3 SBC on the market, so I first ran some benchmarks and checked system info. But it is also designed to be an HTPC, I’ll continue the review with some 4K video and audio playback testing, some gaming, and I/O benchmarks.
As you may remember (or not), VIM3L ships either as a bare board pre-loaded with Android 9 or as an HTPC kit with the board running CoreELEC.
I’ve received the bare board which also comes with two WiFi antennas.
It can do much more than a simple TV box however, since it also comes with an M.2 NVMe socket (extra adapter board required), and sockets with MIPI DSI + touchscreen, and MIPI CSI camera.
It’s one of the few boards with a low profile Ethernet connector, so if you ever wanted to build a farm of the board it could lead to a more compact solution.
As you can see above both boards are virtually identical. Beside the difference of processor, you’ll notice some changes in components as well, but I believe that’s because of the different revision of the board (V11 vs V12).
There’s no heatsink, and when I asked the company they replied that:
Regarding the heatsink, personally, I think for normal purpose using like watch TV, it’s not quite must, but it’s required if you run the performance test.
I’d still recommend going with the heatsink and acrylic, as you may end up with a board that works well in winter but becomes sluggish in summer.
So I took out the heatsink and acrylic case from Khadas VIM3 and install those on Khadas VIM3L before testing.
I’ve then connected a USB keyboard and mouse, Ethernet & HDMI cables, as well as a USB-C power supply (the one I got with Raspberry Pi 4).
The board booted to the stock launcher below.
The company told me they had two images at this point:
- Android ROM for VIM3L – https://dl.khadas.com/Firmware/VIM3L/Android/VIM3L_Pie_V191011.7z
- CoreELEC Beta for VIM3L – https://test.coreelec.org/CoreELEC-Amlogic-ng.arm-9.2-devel-1570539298-Generic.img.gz
But today, I can see they also uploaded Ubuntu Bionic for eMMC boot only (no SD card image yet).
So I followed the firmware update instructions for Khadas VIM3 to update VIM3L to the latest Android 9:
7z x VIM3L_Pie_V191011.7z
burn-tool -v aml -b VIM3 -i VIM3L_Pie_V191011/update.img
The new firmware comes with Google Play. You can check the system info and some of the settings, as well as benchmarks from my earlier post.
Since there are only two USB ports, I’ve removed the USB keyboard to insert my USB 3.0 hard drive with some 4K videos and checked them out in Kodi 18.4 installed from Google Play:
- sintel-2010-4k.mkv (H.264, 24 fps, 4096×1744) – OK
- Beauty_3840x2160_120fps_420_8bit_HEVC_MP4.mp4 (H.265) – OK
- Bosphorus_3840x2160_120fps_420_8bit_HEVC_MP4.mp4 (H.265) – OK
- Jockey_3840x2160_120fps_420_8bit_HEVC_TS.ts (H.265) – OK
- MHD_2013_2160p_ShowReel_R_9000f_24fps_RMN_QP23_10b.mkv (10-bit HEVC) – OK
- phfx_4KHD_VP9TestFootage.webm (VP9) – OK
- OK ( compliant video; 36 Mbps; 59.97 Hz) –
- big_buck_bunny_4k_H264_30fps.mp4 – OK
- big_buck_bunny_4k_H264_60fps.mp4 – Not smooth and audio delay (not supported by VPU)
- 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) – 2 to 3 fps; software decode (not supported by VPU)
- Ducks Take Off [2160p a 243 Mbps].mkv (4K H.264 @ 29.97 fps; 243 Mbps; no audio) – Not perfectly smooth
- tara-no9-vp9.webm (4K VP9 YouTube video @ 60 fps, Vorbis audio) – OK
- OK (4K VP9 @ 60 fps + opus audio) –
The results are pretty good overall, but it should be noted that automatic frame rate switching does not work.
I’ve also enabled HDMI audio passthrough and tested various formats through my Onkyo TX-NR636 A/V receiver, and results are rather mixed here.
|Audio Codec in Video||HDMI Pass-through|
|AC3 / Dolby Digital 5.1||OK|
|E-AC-3 / Dolby Digital+ 5.1||DTS, no audio|
|Dolby Digital+ 7.1||OK|
|Dolby Atmos 7.1||PCM|
|DTS HD Master||DTS 5.1|
|DTS HD High Resolution||DTS 5.1|
|DTS:X (not supported by Onkyo TX-NR636)||DTS 5.1|
So more work is needed on the audio front. E-AC-3 being decoded as DTS by my audio receiver is especially unusual.
YouTube app works well, but the resolution is limited to 1080p, and higher resolutions up to 4K are not supported.
We had already seen DRM was limited to Widevine Level 3 in the previous post.
The board could can detect all of my wireless networks but at first failed to connect to any of those SSID.
I tried the three of them and same results. Clicking on “Try again” did not help. Then I had the idea of removing the Ethernet cable, and that did the trick. It looks like a simple bug that should be resolved in future releases.
But problems are often not solitary creatures and often live in groups. That’s why the typical “5-minute task” all too often converts into a “4-hour trek”. In this case, many apps will switch to portrait mode rotated by 90-degrees to the left as shown in Magic iPerf benchmark above. I can normally navigate the app with some head twisting, but in this case, the button to start the actual test was also missing. I tried another app but it failed again.
So I thought I would run iperf from the command line, and installed Terminal Emulator, but accessing the app directory requires root and the firmware is not rooted. Finally, I found yet another application called he.net – Network Tools that supports iperf and does not suffer from the portrait bug in this firmware.
Here’s are the results for WiFi 5
Shell12[ 4] local 192.168.1.4 port 5001 connected with 192.168.1.8 port 39660[ 4] 0.0-60.0 sec 1.34 GBytes 192 Mbits/sec
Shell123[ 3] local 192.168.1.4 port 57808 connected with 192.168.1.8 port 5001[ ID] Interval Transfer Bandwidth[ 3] 0.0-60.0 sec 2.70 GBytes 386 Mbits/sec
386 Mbps for the upload is the best performance I’ve seen so far. That should mean WiFi is working very well, but since I change the Android app, direct comparison is not possible. For reference, the previous top speed was around 250 Mbps.
Now for Gigabit Ethernet.
- Full duplex
Shell1234[ 6] local 192.168.1.4 port 50292 connected with 192.168.1.9 port 5001[ ID] Interval Transfer Bandwidth[ 4] 0.0-60.0 sec 3.80 GBytes 544 Mbits/sec[ 6] 0.0-60.0 sec 661 MBytes 92.4 Mbits/sec
- Upload only
Shell12[ 4] local 192.168.1.4 port 5001 connected with 192.168.1.9 port 54092[ 4] 0.0-60.0 sec 3.97 GBytes 568 Mbits/sec
- Download only
Shell123[ 3] local 192.168.1.4 port 50366 connected with 192.168.1.9 port 5001[ ID] Interval Transfer Bandwidth[ 3] 0.0-60.0 sec 6.57 GBytes 941 Mbits/sec
The download speed is close to perfect but somehow the upload speed is a bit disappointing, and so is a full-duplex (both direction at the same time) transfer. It won’t matter for media playback however even for the higher bitrate 4K videos.
Before I managed to make iperf work, I also copied a 4.2 GB file over SAMBA using X-Plorer and the transfer was done at about 40 to 50+ MB/s from the server to the board (download).
Note the transfer speed may have been limited by the eMMC flash write speed beside the usual SAMBA overhead.
I tried to measure storage speed too with A1 SD Bench with reads would be cached (so the result is invalid), and writes would show 0 MB/s. I switched to AndroBench but the portrait mode bug made the app unusable.
No Bluetooth option, but we can use “Remote & Accessories” menu. My phone fails to be detected, and so were a pair of Bluetooth headphones. I’ve been told only remote control works for now. A bit more on that below.
Arm-based HTPC’s can be used for light gaming so I installed Candy Crush Saga, Beach Buggy Racing, the new version Beach Buggy Racing 2, and Riptide GP2, the first three from Google Play and the last one from Amazon AppStore.
- Candy Crush Saga played with the mouse. No problem
- Beach Buggy Racing played with Tronsmart Mars G01 wireless gamepad. Normal settings: perfect. Maxed out graphics settings: very playable but not perfect
- Beach Buggy Racing 2 is not quite as user-friendly in TV boxes & SBC’s. I had to start playing with the mouse touching the left and right of the screen. Then I went into settings to change to controls to Arcade Steering so I could play with the wireless gamepad. The user interface still needs to be navigated with the mouse. I had no problem during the game however, that is once I figured out I had to press LT button to accelerate with the gamepad. Everything is smooth with default settings. Switching to “detailed” graphics and maxed out display resolution the frame rate feels more like 15 to 20 fps however.
- Riptide GP2 worked fine with the gamepad as usual and was very smooth with default settings, and a little bit less so with maxed out graphics settings. A pretty typical experience on mid-range SBC’s / TV boxes.
Since I’ve had a couple of issues in this firmware, I may be worth noting Khadas VIM3L is not shipping yet, and Shenzhen Wesion is working on resolving some of the issues presented in this review, hopefully before people received their board.
Here are the company’s answers to some of the issues I raised in this review:
Rotation issue:Due to the Amlogic SoC is designed for TV-Box or TV applications, and their Android SDK doesn’t archive the rotation features. Our team is working on it now, and add this feature in the feature.Bluetooth Issue:Yes, current image only supports Bluetooth Remote, and we also found this issue of more bluetooth accessories not support, but we still need some time to get it fixed 🙂Wi-Fi:We just follow the Amlogic SDK and it’s behavior as Wi-Fi is forbidden to connect if the Ethernet is connected. Agree that it should be fixed.
Khadas VIM3L is a nice little SBC and well-built although I’d wish more than two USB ports. The Android 9 firmware is still beta, but there’s a good base with no stability issues that I could find, and 4K video playback works reasonably well in Kodi, except for automatic frame rate switching. Installing AFRd daemon may fix it, but I did not have time to try.
802.11ac WiFi 5 looks to work great, and Gigabit Ethernet is OK, but there may be more work to do to improve performance (not really important for media playback). HDMI audio pass-through is more of an issue with only a few video files working correctly, and limited to 5.1 channels. There are also the many little annoying bugs reported above, but those should be fairly trivial to fix.
Khadas VIM3L can currently be pre-ordered for $59.99 including worldwide shipping with delivery scheduled to start on October 30th. You may also consider the $79.99 HTPC Kit instead as it includes the recommended heatsink ($9.90) and DIY case ($14.99) as well as an IR remote control and a metal plate for extra cooling.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.