Archive

Posts Tagged ‘szwesion’
Orange Pi Development Boards

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

December 18th, 2017 10 comments

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 necessary use such 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 reported temperature only climbed to around 62°C while watching and streaming video from VTV app

Install 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 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 roof top 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 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 do not mean you 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 GoodPlayer app in my Android phone and VLC in 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, and renamed it to tvlist.m3u, and you use in VLC to easily switch to the channel of your choice.

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 planed 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 company:

  1. Linux is not in their plan now, and they are focus on 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 plans an API either
  3. “TVheadend is supported by LibreElec already, for Android platform, we will try to learn it and make it into software if possible.”  See comments below for download link for LibreELEC.

I’d like to thank Khadas (Shenzhen Wesion), and SuperDVB for sending the kit for review and their support 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.

Khadas VIM2 Board Review – Part 1: Unboxing and Dual Tuner Board

November 8th, 2017 30 comments

Khadas VIM2 board is the successor of Khadas VIM board, replacing Amlogic S905X by a slightly more powerful Amlogic S912, but that’s the connectivity features that really makes it stand apart from the first version with Gigabit Ethernet, 802.11ac WiFi and Bluetooth 4.2. It also exposes a few extra I/Os via pogopins. and among the three variants, two comes with 3GB RAM, and up to 64 GB storage.

The company (Shenzhen Wesion) sent me one of the boards, together with various accessories, and I’ll start the review of the board by checking out the hardware and accessories, before testing the board further in another post.

Click to Enlarge

I received two packages: one book-like with Khadas marked on top, and another one with various other items.

Click to Enlarge

The first package includes the board, a USB to USB type C cable, and a card showing the main specifications, and supported operating systems: Ubuntu 16.04, Android 7.1. Buildroot build system is also another option to generate a minimal or custom image.

The second package comes with an IR remote control, a 12V/1.5A power supply, four stands, and VTV 2.2 tuner board.

Click to Enlarge

The board comes in a multi-layered acrylic case and exposes the same buttons and ports as its predecessor with 3 buttons (reset, function, power), USB type C port for power, HDMI output, Ethernet, and two USB 2.0 ports.

Click to Enlarge

The case has openings for the 40-pin header and VIN header behind the USB type C board. We can see Ampak AP6356S module is used meaning I’ve been sent Khadas VIM2 Basic version with 2GB DDR4 RAM and 16GB eMMC 5.1 flash.

Click to Enlarge

The bottom of the board has the remaining RAM chips, the micro SD card, and some ventilation holes. You’ll also notice some 20-pin and 7-pin pads, with the first one exposing USB, I2C, DVB bus, and I/Os, and the second for the small programmable MCU on the bottom right.

Click to Enlarge

Looking at DTV board we can see two antenna inputs with F connector and coaxial connector, Rafael Micro R848 universal tuner supporting DVB-T/T2/C, ISDB-T/C, DTMB, ATSC,J.83B, and DVB-S/S2, ABS-S, as well as Availink AVL6862TA demodulator. That’s the same chips combination as in KI Plus T2 S2 TV box supporting satellite dish and aerial antenna inputs.

Click to Enlarge

The bottom side of the board has one pogo pin rows to connect to the 20-pin row on the board, and 6 other pogo pins for power. In order to connect the VTV board to Khadas VIM2, we’ll have to disassemble the case, and align the VTV board with the pogo pings and mounting holes on Khadas VIM2.


We can now screw the four stands on the top of VIM2 board to secure both boards together.

Click to Enlarge

We now have an interesting development platform with dual tuner support.

Click to Enlarge

I’d like to thank Shenzhen Wesion for sending the kit for review. Khadas VIM2 Basic board can be purchased for $72.99 shipped on GearBest, and the VTV extension DTV board with power supply, remote control, and stands costs $39.99 extra. For the second part of the review, I’m considering using the board as DVB video server taking live TV input from my antenna / satellite dish, and broadcasting the video over my local network. That’s provided it can be done within one or two days.

[Update: I’ve posted the second part of the review: How to Use Khadas VIM2 Board with VTV Expansion DTV Board as a Live TV Streaming Server]

Khadas VIM2 Amlogic S912 Development Board Sells for $75 and Up

August 21st, 2017 21 comments

Khadas VIM2 is the only low cost development board powered by Amlogic S912 octa-core processor that I know of, but when we first wrote about the board it was not available yet. The three versions of the boards are now being sold on GearBest with the Basic version going for $74.99, the Pro version for $94.99, and the Max version for $109.99. [Update: You can get VIM2 Max for $99.99 by using GBVIM2MAX coupon code for the first 100 boards daily, and the five first boards are sold for $49.99 daily at 9:00 UTC until August 28th. Details on promotion page.]

Click to Enlarge

Khadas VIM2 Basic/Pro/Max specifications:

  • SoC –  Amlogic S912 octa core ARM Cortex-A53 @ up to 1.5 GHz with ARM Mali-820MP GPU
  • System Memory
    • Basic – 2 GB DDR4
    • Pro/Max – 3 GB DDR4
  • Storage
    • micro SD card and 2MB SPI flash
    • eMMC Flash – Basic: 16GB; Pro: 32GB; Max: 64GB
  • Video & Audio  Output – HDMI 2.0a up to 4K @ 60 Hz with CEC support
  • Connectivity
    • Basic – Gigabit Ethernet with WoL support, 802.11 b/g/n/ac and Bluetooth 4.1 via Ampak AP6356S module
    • Pro/Max – Gigabit Ethernet with WoL support, 802.11 b/g/n/ac with RSDB and Bluetooth 4.2 via Ampak AP6359SA module
  • USB – 2x USB 2.0 host ports supporting 900mA and 500mA loads, 1x USB 2.0 type C port supporting power and data only
  • Expansion header
    • 40-pin 2.54mm pitch header with USB, UART, I2C, ADC, PWM, I2S, SPDIF, and ISO7816
    • 10-pin FPC connector with I2C and IOs
    • 20-pin pogo pads array with USB, I2C, DVB bus, and I/Os
    • 7-pin pogo pads array for MCU
  • Misc – Blue LED, white LED, dual channel IR, power/function/reset buttons, header for RTC battery, fan header
  • Power Supply –  5V to 9V via USB type C, 4-pin VIN 1.25mm pitch header, or pogo pads for VIN (5V recommended for better efficiency); programmable current limit switch up to 4A (Set to 3A by default)
  • Dimensions – 82.0 x 57.5 x 11.5 mm (4x M2 mounting holes)

Click to Enlarge

SZWesion has a single Wiki for both Khadas VIM (S905X) and VIM2 (S912) boards, so it may be a little confusing, but you’ll find Android Nougat, Ubuntu 16.04.2 and Dual OS (Android + Ubuntu) images in the firmware page, as well as more technical information (e.g. schematics, build instructions…) in the documentation page. The board should work well in Android 7.1 with hardware video decoding and GPU acceleration working since they’ve been so many Amlogic S912 Android devices on the market. For Linux, the board will likely work well for headless applications, or applications that do not require multimedia features, but for example, 4K video decoding may not work that well – at least for now -,  as I was told kszaq work on LibreELEC using 32-bit Android libraries and libhybris would only work up to 1080p60. If you have any specific question, you should be able to get your answer in the support forum.

The First Amlogic S912 Development Board is Coming Soon with Khadas VIM2

July 2nd, 2017 49 comments

We have a decent choice of Amlogic S905 development boards like ODROID-C2 or NanoPi K2, but I was recently asked whether I knew of any Amlogic S912 development boards. I’m sure Amlogic has one for internal development, but those are hard to get, and probably expensive, and while you could probably get an S912 TV box board those lack I/Os, and software support may truly be a challenge. So I’m pleased to announce that Shenzhen Wesion will soon provide an update to their Khadas VIM Pro board with Khadas VIM2 powered by Amlogic S912 octa-core processor.

Click to Enlarge

The company will actually offer three variants of Khadas VIM2 boards (Basic/Pro/Max) specifications with highlights in bold showing differences with Khadas VIM Pro board:

  • SoC –  Amlogic S912 octa core ARM Cortex-A53 @ up to 1.5 GHz with ARM Mali-820MP GPU
  • System Memory
    • Basic – 2 GB DDR4
    • Pro/Max – 3 GB DDR4
  • Storage
    • micro SD card and 2MB SPI flash
    • eMMC Flash – Basic: 16GB; Pro: 32GB; Max: 64GB
  • Video & Audio  Output – HDMI 2.0a up to 4K @ 60 Hz with CEC support
  • Connectivity
    • Basic – Gigabit Ethernet with WoL support, 802.11 b/g/n/ac and Bluetooth 4.1 via Ampak AP6356S module
    • Pro/Max – Gigabit Ethernet with WoL support, 802.11 b/g/n/ac with RSDB and Bluetooth 4.2 via Ampak AP6359SA module
  • USB – 2x USB 2.0 host ports supporting 900mA and 500mA loads, 1x USB 2.0 type C port supporting power and data only
  • Expansion header
    • 40-pin 2.54mm pitch header with USB, UART, I2C, ADC, PWM, I2S, SPDIF, and ISO7816
    • 10-pin FPC connector with I2C and IOs
    • 8 “pin” pogo pads array with USB, I2C, DVB bus, and I/Os
  • Misc – Blue LED, white LED, dual channel IR, power/function/reset buttons, header for RTC battery, fan header
  • Power Supply –  5V to 9V via USB type C, 4-pin VIN 1.25mm pitch header, or pogo pads for VIN (5V recommended for better efficiency); programmable current limit switch up to 4A (Set to 3A by default)
  • Dimensions – 82.0 x 57.5 x 11.5 mm (4x M2 mounting holes)

We can see that it’s not just a processor update with many new features added to the new boards. If like me, you’ve never heard about RSDB, it stands for Real Simultaneous Dual Band, and allows to use both 5 GHz and 2.4 GHz at the same time, while for most dual band modules only one frequency can be used at a given time. That’s a clear advantage if you’re going to use the board as an access point.

Click to Enlarge

The company will provide Android 7.1 Nougat and Ubuntu 16.04 or greater operating systems and SDKs for the board, and work on UEFI support is in progress. The board will be launched last that month, and for now, the only VIM2 specific documentation provided is Amlogic S912 datasheet, but you can be sure there will be a lot more on Khadas Docs page at launch, although I expect many of the instructions available for Khadas VIM (Pro) will still work on VIM2 board.

You’ll find more details on the announcement forum post, such as Linux OpenGL ES not working natively, i.e. without libhybris and Android libraries, and the board has been designed with micro servers in mind with features like WoL and SPI flash for network boot, as well as UEFI support.

Thanks to Geokon for the tip.

Khadas Vim Amlogic S905X Development Board Gets Android 7.1 Firmware and SDK

March 22nd, 2017 1 comment

Khadas Vim is a development board powered by Amlogic S905X quad core processor that officially supports Ubuntu 16.04, OpenELEC and Android 6.0. Shenzhen Wesion Technology , the maker of the board, has now released Android 7.1 firmware image and SDK for the board.

Click to Enlarge

As we’ve seen before Amlogic Android 7.1 SDK still relies on Linux 3.14.29, but Linux 4.4 is also in the works.

If you want to give it a try on your board, download Vim_Nougat_170321.7z directly, or from the firmware download page. The current image installs to the eMMC flash via USB or a bootable micro SD card (Windows methods only), so it will wipe whatever OS you have already on the board.

The firmware is based on the features of their Android 6.0.1 image, but upgraded to Android 7.1.1 with Chrome and Gapps (for Google Play Store support).

Source code for the Android 7.1 SDK can be found via several repositories on Khadas Github account. Once the manifest file is updated, you should be able to follow the instructions to build Android for Khadas Vim board in order to build your own Android 7.1 image from source.

Review & Quick Start Guide for Khadas Vim Pro Development Board with Ubuntu 16.04

February 11th, 2017 37 comments

Khadas Vim is the only Amlogic S905X development board I’m aware of. There are 4 or 5 versions of the board, but currently only two models are sold: Khadas Vim with 8GB flash and single band WiFi + BLE 4.0, and Khadas VIM Pro with 16GB flash, and dual band WiFi + BLE 4.2. SZWesion, the company behind the board, has sent Khadas Vim Pro for evaluation. Today, I’ll take a few pictures of the board and its accessories, and report my experience playing with Ubuntu 16.04.2 on the board. They’ve also released Android, LibreELEC, and dual boot Android/Ubuntu (for Vim Pro only) images, which you can find in the firmware resources page.

Khadas Vim Pro Unboxing and Photos

My parcel included Khadas package that looks like a book, an HDMI cable, and the same IR remote control sent with GeekBox, the first board made by the company, and powered by a Rockchip RK3368 processor.


You can indeed open the package like a book, and you’ll find the board and a USB to USB type C cable inside, as well as some basic specifications.

Click to Enlarge

You can verify you’ve got the right model on that back of the package which shows the memory and storage, in my case 2 GB + 16 GB.

The board comes with a neat acrylic case with opening for headers and ports. The top of the board features a 40-pin header, the Amlogic S905X processor (no heatsink), two RAM chips, the eMMC flash, the wireless module (AP6255), and most ports with two USB 2.0 ports, a USB type C port, HDMI 2.0a, and Fast Ethernet. There’s also a separate header close to the USB-C port giving access to Vin in case you don’t want to power your board through USB.

Click to Enlarge

There’s also 2-pin battery connector on the left of the board for the real-time clock (RTC). The bottom side of the board includes two more RAM chips, and the micro SD slot.

Click to Enlarge

Power, “function” and reset buttons can also be found on the side of the board, and there’s an IR receiver on the right of the 40-pin header.

Click to Enlarge

Ubuntu 16.04 on Khadas Vim (Pro)

While you can download the firmware on the “Firmware Resources” page, I recommend you check the Announcements & News section on the forums, as they normally include a changelog and some tips to configure your board. An Ubuntu 16.04 + XFCE image was released last month, but the company uploaded a Ubuntu 16.04.2 server image yesterday, so that’s the one I’m going to use today. A new Ubuntu 16.04 + XFCE image with better graphics support will be released sometimes next week.

My plan is to do the update in my Linux computer. The firmware is distributed through Mediafire, so you’ll have to download it through your web browser. I also downloaded  Vim_Uboot_170121.7z on the Firmware Resources pge since it’s needed for the SD card update method. Once we’ve got the firmware and U-boot binaries we can extract them with 7z.

Now insert the micro SD card inside your computer, find the device with lsblk, and check if it has more than one partition. Replace /dev/sdX with your own device.

If it has no partition or more than one, you’ll need to change the partition table using tools like fdisk, or gparted. The instructions provided on Khadas website are basically the same as I wrote in the post “How to Create a Bootable Recovery SD Card for Amlogic TV Boxes“.

Mount the partition, for example by removing and re-inserting the micro SD card into your computer, and copy two files needed for update:

Eject the micro SD card:

Now connect your board with the cables would want to use (e.g. Ethernet, HDMI. etc…), and possibly connect a USB to TTL debug board to access the serial console in case of errors. I also connect a USB hub with my RF dongles for air mouse, and a USB keyboard.

Click to Enlarge

The board comes pre-loaded with Android 6.0.1 with Linux 3.14, so you can connect the power first to make sure the board is working properly. Note that you’ll need to provide your own USB power supply. I used a 5V power supply, and not a fast charger found in some phone and starting at 12V. Now we can insert the micro SD card we’ve just prepared into the board, and boot into Upgrade Mode by keeping pressing on the power button (closest to the 40-pin header), pressing a short time on the reset button (closest to the USB port), and releasing the power button two or three seconds later. At this point, you should get a firmware upgrade interface on the HDMI display with a green progress bar, and once completed you’ll get a “Successful Android” logo.

This is what it looks like in the serial console during the update:

So I pressed Control-C in the serial console (if you have not set it up just reboot the board), and it failed to boot with the multiple error messages:

I contacted SZWesion about the issue, and they told me the SD card method did not work despite being documented on their website, and I had to use Amlogic USB Burning Tool in Windows instead. So I fired up a Windows 7 virtual machine, and I had no problem (for once) flashing the “update.img” file extract from Vim_Ubuntu-server-16.04_V170211.7z to the board.

Click to Enlarge

This time it works and the board booted properly. Here’s the complete boot log for reference: