How to Use Khadas VIM2 Board with VTV Expansion DTV Board as a Live TV Streaming Server

Khadas VIM2 is the first and only Amlogic S912 based hobbyist development board on the market, which makes it interesting by itself, but the company also added some interesting features such as an SPI flash for network boot, Wake-on-LAN support, and more. Last month the company sent me a sample of the Khadas VIM2 Basic (2GB RAM/16GB flash) together with VTV Extension DTV Board featuring a DVB-T2/C and DVB-S2 tuner.

I’ve already checkout the hardware and shown how to assemble the kit, so for the second part of the review it seemed like a good idea to use the board as a Live TV streaming server broadcasting satellite, cable or terrestrial TV to devices connected to the local network. At first I wanted to use Linux operating system, because I could have run other Linux server services, but SuperDVB, the company that makes and supports the tuner board, only have Android software for their board.

So I changed plan, and instead used their Android VTV app to stream the video over Gigabit Ethernet. I’ll report my experience setting this all up in this post.

Click to Enlarge

Download & Flash Android firmware to Khadas VIM2 board

First we need to download the latest firmware on Khadas Firmware Resources page. Here you’ll find a little of firmware with names such as VIM2_Nougat_V171028 or VIM2_Nougat_vTV_V171024. The “vTV” string is important here, as the one without do not support the tuner board, so we’ll need one with vTV. So I downloaded VIM2_Nougat_vTV_V171024.7z  Android firmware, and VIM2_Uboot_Nougat_171028.7z “uboot” files from the page. Just make you download the latest version on the website.

The firmware provided works with Amlogic USB Burning Tool Windows software, but the tool is not really user-friendly, and in my case not directly supported as it only runs on Windows. So instead it’s better to flash the firmware to a bootable SD card (backup instructions here) in Ubuntu. If you are using Windows, Burn Card Maker Tool is much easier to use.

If you are using Ubuntu or a Linux distributions, there are a few steps to follow. After inserting you card, locate it with lsblk:


I’m using a 16GB card, so /dev/sdd is the device to so. We’ll need one partition, but my card has none for now:


I’ll use /dev/sdX to refer to the device from now on to avoid potential data loss due to copy/paste gone wrong.

We can create a new primary partition of W95 FAT type with fdisk or (g)parted:


Once it’s done let’s format it with FAT32:


Now we can copy u-boot binary for SD card to specific locations in the storage device:


Now unplug and replug the card to mount it automatically (or mount it with the command line) in order to copy the command and firmware files:


Now we can remove the card from the computer, and insert it into Khadas VIM2 board, and enter upgrade mode, by pressing the power key, pressing and releasing the reset key, wait two or three seconds, before releasing the power key on the board.You should see an Android logo and “Upgrading…” string together with a progress bar, and after a few minutes, the firmware should be flashed successfully.

A look at Android Settings

At this point, we can remove the micro SD card, and reboot the board, and within a few seconds, we’ll get to the (stock) launcher.

Click for Original Size

Several apps are installed including Google Play and MoviePlayer. VTV is the app we’ll use to watch and stream Live TV.

But let’s have a look at some of the settings. I’ve reviewed many Amlogic S912 TV boxes from the popular MINIX NEO U9-H media hub, to the cheap MN12N TV box, or Mecool KIII Pro set-top box with a dual DVB-T2/S2 tuner among other, so I’m not going into the full details, but instead focus on some of the unique features.

Click to Enlarge

The image is based on Android 7.1.2 with Linux 3.14.29, and offers typical features like HDMI CEC or playback settings (HDMI self-adaptation), but if we go into More settings we’ll find some less usual option for the cooling, LED, and WOL.

Click to Enlarge

Cooling fan will allow you to turn on or off fan support, and set either automatic speed, low speed, medium speed, or high speed. LED option allows the user to control the board’s LED behavior such as always on, always off, heartbeat mode, or breather mode.

WOL is used to enable or disable Wake On LAN.

Khadas VIM2 CPU Temperature, Fitting an Heatsink

During my first post, people had concerns about using the board without heatsink, and based on CPU-Z app, CPU temperature is indeed around 76°C in idle mode.

When I watched and streamed live TV, the video did not feel very smooth especially on the display connected to the board, so I decided to fit an heatsink to the board.

I put some thermal grease on Amlogic S912 SoC, the flash, and the two RAM chip to the heatsink on top. You may not necessarily use such a large heatsink, but that’s the only spare one I had. The amount of cooling you need also depends on your application.

With the heatsink, the temperature drops to 58°C (26°C room temperature), but I still had some troubles while watching live TV. So the problem is most probably not temperature related, as the reported temperature only climbed to around 62°C while watching and streaming video from the VTV app

Install the VTV V2 App with IP Streaming Function

This section may not be necessary in the future, as the latest app will be updated in the firmware, but the IP Streaming function is new, so I had to download VTV-2017-11-30-IpStreamming.rar, extract it, and manually install VTV-2017-11-30-IpStreamming.apk to the board. It’s now important to reboot the board to avoid version conflict.

At this point, we should launch the app, and scan the channels. VTV app is based on DTV app found in Videostrong/Mecool set-top boxes, you can follow the same DVB-T2/DVB-S2 configuration instructions. I connected the tuner to my rooftop antenna, so the first time after being asked to scan the channels, I went through DVB-T2 configuration.

That part took me an awful lot of time, as despite having 95 to 100% signal strength, none of the channels would lock. Eventually, the company sent me another tuner board, but it turned out my antenna cable connector had a bad contact or short circuit, as I would only get a proper signal when bending the cable. So I disassembled and cleaned up the connector, and everything worked fine. Lesson: high signal strength in DTV/VTV app does not mean your cable/antenna is working fine.

Finally, we can make sure we have the latest app, by pressing the INFO key while watching a channel in order to show service info & version of the app.

APK (V2) is exactly what we want so we can go ahead. There’s a problem with Thai font or encoding, which has been a recurring problem in all Amlogic set-top boxes I’ve tested in the past. Hopefully, this will be fixed one day.

Khadas VIM2 Live TV Streaming

Once we have the channel configured, we can enable IP streaming by pressing the MENU key on the remote control, then DTV preference->IP stream setting.

You can manually set the port between 10,000 and  65,535 (20,000 default), and the app will provide you with the streaming link (e.g. http://192.168.0.114:20000), and the maximum number of client (10). You can use now use this link with a program or app on other devices in the network. I used the GoodPlayer app on my Android phone and VLC on my computer like I did while streaming video from Zidoo X9S’ HDMI input.

In the demo below, I use three clients: one Android phone, a Ubuntu 16.04 laptop, and my Ubuntu 16.04 desktop PC playing the video from Khadas VIM2 board at the same time.

I think the feature is still beta, so maybe that’s why there are problems while changing channels where the client may not pick up the stream. The live channel in Khadas VIM2 appears not to be quite as smooth as it could be too, again some optimization may likely solve this issue.

A better way to change channels however is to export ip stream list file tvlist.txt in VTV app by pressing the red/audio button on the remote control, which in my location looks as follow:


I copied it to my computer, renamed it to tvlist.m3u, and used it in VLC to easily switch to whatever channel.

Click to Enlarge

Going forward, I think Linux support for the tuner board is unlikely, so people should really focus on Android if they plan to use the board. I’ve asked the company if they planned to release the source code for VTV app or at least an API to let people integrate support into their own app, but I have not received an answer yet.

For end-users, support for TVHeadEnd would be a bonus, as they’d be able to watch live TV, access the EPG, and change channels right from Kodi running in the client, as it’s now done in products such as U4 Quad Hybrid, U5PVR, or WeTek Play 2.

[Update: answers from the company:

  1. Linux is not in their plan now, and they are focus on the Android platform.
  2. VTV app can not be made open source due to it being used in other business projects, and there does not seem to be a plan for an API either
  3. “TVheadend is supported by LibreElec already, for the Android platform, we will try to learn it and make it into software if possible.”  See the comments below for the download link for LibreELEC.

I’d like to thank Khadas (Shenzhen Wesion), and SuperDVB for sending the kit for review and their support in getting this to work. Khadas VIM2 Basic board can be purchased on GearBest for $89.99 shipped, and the “VTV Expansion DTV board” for $39.99. You’ll pay a bit less if you take a bundle for a total of $112.98 including shipping ($17 discount) available from the latter link.

Share this:
FacebookTwitterHacker NewsSlashdotRedditLinkedInPinterestFlipboardMeWeLineEmailShare

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

ROCK Pi 4C Plus

17 Replies to “How to Use Khadas VIM2 Board with VTV Expansion DTV Board as a Live TV Streaming Server”

  1. This combo is already supported in community LibreELEC builds. 🙂

    While tuner driver is not as good as we would like it to be, it’s enough to set up a TVHeadend server, for example. Additionally LE allows you to connect additional tuners over USB thanks to media_build drivers.

  2. @cnxsoft

    Dear cnxsoft,

    I´ve heard these boards (or boxes) are not that good, as in they break easily and need better cooling??? Are those factual statements or just nonsense, because i´ve even heard people urge to not buy the khadas boards.

    I am looking for a fast and cheap alternative to the NUC that will let me run linux (or multiple systems), run it like a media/web browsing living room computer for media consumption. I don´t need 4k or crazy high end specs just normal full HD playback and streaming capabilities are enough. Also playing with thought of building a second hand parts machine, that will serve as my living room system but not sure if it´s the way to go.

    What would you recommend i buy?

    Merry Christmas!

  3. @MisterMister
    The boards do not come with heatsink, so you can responsible for handling cooling with heatsink, and optionally a fan.
    I don’t know about breaking easily, as only sellers with return data can know this.
    I’ve usually heard good thing about Khadas support.

    One of the problem is that GearBest sell them as TV boxes, as if they were consumer products (maybe to get more sales), so maybe some end up in the wrong hands, and people who complain are the ones who runs the board without heatsink, run outdated firmware and so on.

    Recommendations depends on your skills/willingness to spend time to setup a system:
    1. Raspberry Pi 3 – Should be easy
    2. Various Amlogic boxes supporting LibreELEC (should also be easy but you won’t have a Linux desktop, only Kodi Linux to play videos).
    3. ODROID-XU4 – More powerful, and fairly easy (good community)
    4. Orange Pi & NanoPi boards with HDMI output – Cheaper, but potentially more difficult to setup, and get things working, especially on Orange Pi. Keep words that should help with SW: armbian.

  4. @cnxsoft

    Thank you so much for replying to my question, i have experience with building PC´s but not with dev-boards… I´ve been using my old minix neo x5 mini for years now, but it´s outdated and sluggish compared to newer devices.

    Big linux fanboy here so i´d love to have a faster, linux capable device or board to use as my living room system. Too bad Raspberry is waiting with the release of their newer board, i think 1GB of ram is really useless when one wants to have a fluid and snappy system.

    I have been looking at the Odroid boards for a while now… But the problem (at least i think it´s a problem) is that considering the cost, i´ll end up paying as much for the Odroid as i would for a full fledged barebone PC.

    Would it be wiser to wait for the June canyon systems by Intel? Maybe considering the cost etc… Yeah sorry i did not mention i was kind of on a budget for this build/buy…

    Anyway thanks again!

  5. @MisterMister
    I’d expect an Intel GLK NUC to cost over $200 with flash and some RAM (2 or 4GB), around $140 barebone based on the prices I see for the Apollo Lake one.

    ODROID-XU4 costs around $60. If you add power supply, basic case and 16GB SD card, it goes up to $86 (on Ameridroid). If you replace the 16GB SD card by a 32GB eMMC module + reader, then the total goes to $123 + shipping, and you have a system ready to use.

  6. @cnxsoft

    Wow thank you very much for the awesome advice!

    Cool… Any place i can order in Europe to cut import fees lol?

    Thanks again for helping me out.

  7. @cnxsoft
    Unfortunately the TVheadend is not currently working on the VIM2 with this board. It detects the card and shows its availability, but it fails to scan successfully so is no functional use. People at Libreelec are working on this at the moment, and since the hardware is shared with the Mecool K3 Pro which has got Tvheadend support working, it should be possible to resolve the teething problems which are stopping this working successfully. It maybe just an issue with the dtb.img.

    However in light of this it might be wise to hold off buying this combination until it is proven working if TVheadend is essential for your application.

  8. This card is finally getting Libreelec dTV support. A mostly functional driver is now available through the “Crazy Cats Modules Driver” addon. Reception on this dTV card is not as good as a Genitec HDStar USB DVB-s.

  9. Hi, is there any change you can revive the VTV-2017-11-30-IpStreamming.rar link? i just found my old android box in the closet.

  10. is this VTV Board also compatible with others single board computer?..for example asus tinker board, does anyone had tried?thx

    1. It’s using pogo pins to connect to Khadas VIM2. No other boards have pads that would match. In theory you would wire the pins to other board, but it’s not really practical. Better use a USB dongle with other boards.

  11. Hello All !…

    User of a TVBox Board-Sandwich VIM2+ToneBoard+VTVBoard and trying to download the VTV APK…

    Is somebody have dowloaded the VTV V2 App with IP Streaming Function athttps://download.cnx-software.com/index.php/s/9ZkTGjf9l9OoM0C/download
    I think the download link is sic…

    Could someone poste somwhere the VTV-2017-11-30-IpStreaming.rar file ?
    That will be great 😉 …

    Thanks in advance 😉 …

    1. Sorry about that. I’ve fixed the link to a mirror in MEGA. I thought VTV V2 app would be part of the firmware by default by now.

Leave a Reply

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

Khadas VIM4 SBC
Khadas VIM4 SBC