Archive

Posts Tagged ‘review’

JeVois-A33 Linux Computer Vision Camera Review – Part 2: Setup, Guided Tour, Documentation & Customization

November 22nd, 2017 No comments

Computer Vision, Artificial Intelligence, Machine Learning, etc.. are all terms we hear frequently those days. JeVois-A33 smart machine vision camera powered by Allwinner A33 quad core processor was launched last year on Indiegogo to bring such capabilities in a low power small form factor devices for example to use in robotics project.

The company improved the software since the launch of the project, and has now sent me their tiny Linux camera developer kit for review, and I’ve already checked  out the hardware and accessories in the first post. I’ve now had time to test the camera, and I’ll explained how to set it up, test some of the key features via the provided guided tour, and show how it’s possible to customize the camera to your needs with one example.

Getting Started with JeVois-A33

In theory, you could just get started by inserting the micro SD card provided with the camera, connect it to your computer via the USB cable, and follow the other instructions on the website. But to make sure you have the latest features and bug fixed, you’d better download the latest firmware (jevois-image-latest-8G.zip), and flash it to the micro SD card with the multi-platform Etcher tool.

You could also use your own micro SD card, as long as it has 8GB or more capacity. Once this is done, insert the micro SD card into the camera with the fan of the camera and the golden contact of the micro SD card both facing upwards. Connect the camera to your computer with the provided mini USB to USB cable. I also added the USB power meter to monitor the power consumption for the different use cases, and USB serial cable to checkout output from the console. At least that was the plan, but I got no lights from the camera, and voltage was reported to be only 4V. Then I read the guide a little better, and found out I had to use a USB 3.0 port, or two USB 2.0 ports for power.

Once I switched to using two USB 2.0 ports from a powered USB 2.0 hub, I could see output from the serial console…

and both green and orange/red LEDs were lit. The instructions to use JeVois camera are mostly OS agnostic, except for the video capture software. If you are using Windows you can use the free OBS Studio or AMCap programs, and on Mac, select either PhotoBooth or OBS Studio. I’m a Ubuntu user, so instead I installed guvcview:

and ran it use 640×360 resolution and YUYV format as instructed in the getting started guide:

But then I got no output at all in the app:

The last line above would repeat in a loop. The kernel log (dmesg) also reported a crash linked to guvcview:

Another person had the same problem a few months ago, and it was suggested it may be a USB problem. So I connect the camera to directly to two of the USB ports on my tower, and it worked…

Click to Enlarge

The important part of the settings are in the Video Controls tab, where we can change resolution and frame rate to switch between camera modes as we’ll see later on.

But since my tower is under the desk, the USB cable is a bit too short, and the program crashed with the same error message a few minutes later. So I went with my Ubuntu 16.04 laptop instead. Powering the camera via the USB 3.0 port worked until I started deep learning modes, where the camera would stop, causing guvcview to gray out. Finally, I connected the camera to both my USB 3.0 port, and the power bank part of the kit, and the system was then much more stable.

Click to Enlarge

I contacted the company about the issues I had, but they replied this problem was not often reported:

… we have only received very few reports like that but we were able to confirm here using front panel ports on one machine. On my desktop I have a hub too, but usb3 and rated for fast charging (60W power supply for 7+2 ports) and it works ok with jevois. A single usb3 port on my mac laptop is also ok.

So maybe it’s just me with all my cheap devices and accessories…

So three main points to get started:

  1. Update the firmware
  2. Install the camera software
  3. Check power in case of issues / crashes (Both LEDs should be on if the camera is working)

JeVois-A33 Guided Tour

Now we have the camera running, we can try the different features, and the best way to do so is to download Jevois Guided Tour (PDF) that will give you an overview of the camera and how it works, as well as examples.

Click to Enlarge

As shown above, the PDF includes information for each module with the name, link to documentation, introduction, display explanation, and on the top right the resolution/framerate that can be used to launch a given module. On following pages, there will be example pictures that you can point to with the camera.

Some of modules include:

  • Visual attention – finding interesting things
  • Face and handwritten digit recognition
  • QR-codes and other tags
  • Road detection
  • Object matching
  • Object recognition with deep neural networks
  • Color-based object tracking
  • Moving object detection
  • Record video to the microSD card inside JeVois
  • Motion flow detection
  • Eye tracking
  • and more…

You could print the guide with a color printer, but the easiest way is problem to use two screens, once with the PDF guide open, and the other running the camera application (guvcview, OBS Studio…). I’ve gone through some of the example in the guided tour in the video below, with PDF shown on a TV box, and the camera application output shown on the laptop screen on the top bottom corner.

That’s lot of fun, and everything works pretty well most of the time. Some of the tests are quite demanding for such low power device, as for example Darknet based “Deep neural scene analysis” using 1280×480 @ 15 fps with the ability to recognize multiple object types would only refresh the results every 2.7 seconds or so.

Documentation & Customization of Salient SURF Module

If you’ve gone through the guide tour, you should now have a good understanding of what the camera is capable of. So now, let’s take one of the modules, and try to adjust it to our needs. I picked SaliencySURF module with the documentation available here for this section of the review. Introduction for the module:

Trained by default on blue iLab logo, point JeVois to it and adjust distance so it fits in an attention box.
Can easily add training images by just copying them to microSD card.
Can tune number and size of salient regions, can save regions to microSD to create a training set

So let’s take a few other images (Tux logo), copy them to the micro SD card in the camera, and tune some of the settings.

Ideally the camera should also be detected, as a storage device, so that we can easily copy files and edit parameters, and in my computer it was shown as a UVC camera, a USB ACM device, and USB storage device when I connect it:

But for some reasons, I could not see the /dev/sdb storage after that:

So instead I had to take out the micro SD card from the camera, and copy the files in /modules/JeVois/SaliencySURF/images/ directory in JEVOIS partition.

The module will process those photo when we start it, and return the name of the file when detected.

We can go back to SaliencySURF directory to edit params.cfg file, and change some parameters to determine how strict a match should be, taking into account that a stricter matching may mean the object was not be detected, and looser matching that we get some false positives. But this is where it gets a little more complicated, as we’ll see from a subset of the list of parameters.

Click to Enlarge

I cannot understand what half of the parameters are supposed to do. That’s where you can click on the SaliencySURF / Saliency links to access the base documentation. and find out how the module works, find out more about each parameter, and easily access the source code for the functions used by the module. That type of documentation is available for all modules used in JeVois C++ framework, and it’s a very good learning tool for people wanting to know more about computer vision. You’ll have to be familiar with C++ to understand the code, and what it really does, beside learning jargon and acronyms specific to computer vision or machine learning.

By default params.cfg file includes just two lines:

Those are the parameters for ObjectMatcher module, with goodpts corresponding to the number range of good matches considered, and distthresh being the maximum distance for a match to be considered good.

I’ve set looser settings in params.cfg:

I saved the file, put the micro SD card back into the camera, and launch guvcview with 320×288 @ 30 fps resolution/framerate to enter SaliencySURF mode.

Click to Enlarge

Oops, it’s seeing Tux logos everywhere, even when there are none whatsoever, so our settings are clearly too loose. So I went back to the default settings, but the rsults was still similar, so since the distance was shown to be 0.30 in my first attempt, I reduced distthresh to 0.2. False positive are now mostly gone, except for very short period od time, and it’s now detecting CNX Tux logo accuractely. Note that Green square is for object detection, and the white squares for saliency zones.

However, it struggles to detect my third Tux logo repeatedly, often following back to CNX Tux logo.

But as you could see with the green square, the detection was done on the left flap of the penguin. That’s because SaliencySURF detection is done in a fixed size zone (64×64 pixels per detault), so camera distance, or size of the zone matter. You can change the size of the salient regions with SaliencySURF rsiz parameter which defined the height and length of the quare in pixel. When I did the test I first tried to detected if from the list of Tux images from DuckDuckGo search ut it was not small or blurry. After switchign to a bigger photo, the cable was too short to cover the logo, so instead I copied to gimp and resized it so that it could fit in the 64×64 square while using the camera, and in this case detection worked resaonably well.

The more you use the camera, the better you’ll be at understanding how it works, and leverage its capabilities.

Final Words

JeVois-A33 camera is an inexpensive way to get started with computer vision and deep learning, with excellent documentation, and if you put the efforts, you’ll even understand how it works at the source code level. It’s also fun to use with many different modules to try. I have not tried it n this review due to time limitations, but you could also connect the camera to an Arduino board controlling a robot (Cat chasing bot anyone?) via the serial interface.

The main challegenges you may face while getting started ar:

  1. Potential crashes due to power issues, but that’s solvable, and a power issues troubleshooting guide has even been published
  2. For robotics projects, you have to keep in mind there will be some lag for some modules, for example from 500ms (single object) to 3 seconds (YOLO test with multiple object types) for deep learning algorithms. Other modules such as ArUco marker are close to real-time performance however.

Bear in mind all processing is done by the Allwinner A33 CPU cores, as the Mali-400MP GPU is not suitable for GPGPU. As more affordable SoC with OpenCL/Vulkan capable GPU (e.g. Mali-T720) are launched, and in some cases even NNA (Neural Network Accelerator), we’ll be able to get similar low power smart cameras, but with much better computer vision performance.

JeVois-A33 can be purchased for $49, but to avoid wasting time with power issues, and give you more options, I’d recommend to go with JeVois-A33 Developer/Robotics Kit reviewed here, going for $99.99 on Amazon, RobotShop, or JeVois Store.

BBen MN10 TV Stick Review – Windows 10, Ubuntu 17.04, Benchmarks, and Kodi

The BBEN MN10 is the second Apollo Lake device to be released in the stick form-factor and on paper looks to have a lot to offer:

It features an Apollo Lake N3350 SoC, an unusual 3GB of RAM, 64GB of storage and is cooled by a ‘mute’ fan. The devices comes in a plain box with a power adapter, and a leaflet style manual.

Click to Enlarge

It also included a three-pin UK power adapter, as this was advertised as the ‘BBen MN10 Mini PC  –  UK PLUG  BLACK’.

Looking at the detail specifications:

Click to Enlarge

We can immediately see discrepancies as the device does not have a ‘RJ45 Port Speed: 1000M LAN’ port, and was not supplied with ‘1 x HDMI Cable’ nor ‘1 x Remote Control’.

Powering on the device and the ‘mute’ fan is also a miss-representation as it starts immediately and is noticeably noisy. It also runs at full speed regardless of workload so the noise is a constant reminder that the device is switched-on:

Starting Windows and the disappointment continues with a message informing that ‘We can’t activate Windows on this device because you don’t have a valid digital license or product key’:

Click to Enlarge

also ‘Intel Remote Keyboard Host App’ is pre-installed (see icon top left) and the computer name is already been set as ‘BBEN’.

As a result I tried installing Microsoft’s Windows 10 Home ISO but because of the confirmed lack of license, I then installed Microsoft’s Windows 10 Enterprise product evaluation ISO in order to review the device.

The basic hardware matched the specification:

with plenty of free-space available post installation:

I then ran some standard benchmarking tools to look at performance under Windows. These are a new set of benchmarks as I’ve updated the tools and releases specifically for devices running Windows version 1709 and later:

Click to Enlarge

Click to Enlarge

Click to Enlarge

Click to Enlarge

Click to Enlarge

Click to Enlarge

Click to Enlarge

Click to Enlarge

Octane 2.0 with Chrome – Click to Enlarge

As can be seen the performance is as expected for the N3350 SoC and is comparable with other devices such as ECDREAM A9 or Beelink AP34 Ultimate:

Click to Enlarge

Next I installed Ubuntu as dual-boot using my ‘isorespin.sh’ script, which includes installing the rEFInd bootloader to enable booting on Apollo Lake devices when the BIOS doesn’t support Linux:

Performance is again as expected:

Click to Enlarge

Click to Enlarge

And can be compared with other Intel Apollo Lake and earlier Intel Atom devices:

Click to Enlarge

Click to Enlarge

Revisiting the hardware using Linux commands additionally shows the micro SD card is running the slower HS200 interface:

and rather interestingly a S/PDIF audio interface shows up in the sound settings. However given there is only a 3.5mm audio jack and when an external speaker is connected through it, sound works when selecting the S/PDIF interface. This again is somewhat misleading.

Click to Enlarge

Click to Enlarge

Click to Enlarge

Looking at real-work Windows usage cases the first being watching a 4K video using Microsoft Edge which works flawlessly:

Click to Enlarge

The same video when watched using Google Chrome results in occasional dropped frames:

Click to Enlarge

but notice how much harder the CPU and GPU are working.

Watching the same video and changing the video quality to high definition (1080p resolution) results in a better experience.

Click to Enlarge

Unfortunately this can’t be said for watching the same video in Google Chrome on Ubuntu. At 4K the video is unwatchable with excessive dropped frames and a stalled network connection after a short while:

Click to Enlarge

Even at 1080p the video still stutters:

Click to Enlarge

Running Kodi on both Windows and Ubuntu show similar ‘differences’ in the results.

On Windows if the video is encoded using the VP9 codec then decoding is using software resulting in high CPU usage and high internal temperatures:

Click to Enlarge

However when the video is encoded with the H.264 codec then Windows uses hardware to decode:

Click to Enlarge

and similar for videos encoded with H.265 or HEVC:

Click to Enlarge

with no issues playing the videos.

On Ubuntu hardware is used to decode all three codecs:

Click to Enlarge

Click to Enlarge

Click to Enlarge

however some H.265 videos resulted in a blank (black) screen just with audio whereas others played without issue:

Click to Enlarge

As previously mentioned the internal fan is screaming away merrily although it’s effectiveness with internal cooling is somewhat questionable:

Click to Enlarge

It does assist in keeping the device at a safe external temperature:

with the highest observed reading being 41°C.

So looking at the physical characteristics of the device its size is only slightly larger than the second generation Intel Compute Stick:

Initially I used the device upside down as it seemed sensible to have the case vents exposed:

Click to Enlarge

However cracking open the case reveals the fan actually uses the side vent between the two USB ports:

Click to Enlarge

with the bottom vents for cooling the memory and storage chips:

Click to Enlarge

Remarkably the WiFi chip appeared to have been exposed to excessive heat at some stage:

yet had still passed inspection as evidenced by the green ‘Pass’ sticker.

The only identifiable marking on the board were on the bottom under the sticky black coverings:

The BIOS is minimalistic:

which is an issue when booting with a connected USB to Ethernet adapter, as it defaults to PXE booting which needs to timeout before booting occurs from internal storage. A workaround is to boot Windows from the boot menu after pressing F7:

Notice also that the BIOS is unbranded and simply displays the Intel logo.

Finally after using Windows then Ubuntu and returning to Windows I encountered that audio over HDMI had disappeared:

Click to Enlarge

and reinstalling the Intel HD Graphics driver didn’t fix it.

So to sum up this is a device with specific limitations which the buyer should be aware of prior to purchase. I’d like to thank Gearbest for providing the BBEN MN10 for review. They sell it for $197.42 shipped. You’ll also find it on Aliexpress from various sellers with not-activated or activated Windows 10 Home / Pro.

Xiaomi Mi A1 Smartphone Review – Part 2: Android 7.1.2 Firmware

November 15th, 2017 10 comments

Google recently announced several Android One smartphones, which are supposed to get 2 years of firmware updates, including to the latest version of Android, such as HTC U11 Life and Android One Moto X4. Many of those phones are limited to some specific countries, but Xiaomi Mi A1 will be launched in over 40 countries, and thanks to Chinese online shops is really available worldwide. GearBest sent me the latter last month, and in the first part of Xiaomi Mi A1 review I simply went through unboxing, booted the phone, perform an OTA update, and ran Antutu 6.x on the phone for a quick estimate of performance.

Since then, I’ve had around four weeks to play with the smartphone running Android 7.1.2 (still), so I’m ready to report my experience in the second part of the review.

Click to Enlarge

General Impressions

In the past year, I used Vernee Apollo Lite smartphone powered by Mediatek Helio X20 deca-core SoC, which in theory is quite faster than the Qualcomm Snapdragon 625 used in Mi A1, but in practise, I did not feel much difference in performance for example while browsing the web or checking email, and in some games, performance of Xiaomi Mi A1 was actually much better than on Apollo Lite, as I reported in the post entitled “Mediatek Helio X20 vs Qualcomm Snapdragon 625 – 3D Graphics Benchmarks and CSR 2 Game“.

Some of my wishes in Vernee Apollo Lite included a better camera, and improved GPS accuracy, and Mi A1 is a big improvement for both as we’ll see in more details later on in the review. The build quality of the phone is good, and the design looks more stylish and thinner than my previous phone. The display is clear, and I like the wide brightness range, that is low enough not to hurt eyes in the dark, and high enough to use the phone in sunlight. It’s quite glossy though, so you’ll have reflect especially with black background, and it’s possibly to use it as a mirror without turning it on… I seldom call with my phone, but the couple of times I made or received actual calls, the sound was loud and clear. I spend most of my time browsing the web, checking emails, watching YouTube video, and playing games (mostly CSR 2) on my phone, and do so over WiFi connection, and the phone just works flawlessly for this with good performance, and no overheating (that I could notice) contrary to Vernee Apollo Lite, which does get hot in some cases, and slows down considerably.

I’m also happy about battery life, and with my use case of hour 4 to 5 hours use a day, I can still get around 30 hours on a charge. One of the downside is the lack of fast charging, so I can’t quickly top of the battery for 5 minutes before going out. A full charge takes around 1h30, so still not too bad, and since the battery lasts more than 24 hours, it would be possible to charge every day at the same time to avoid low battery charge while on the go.

The main selling of the phone is being part of Android One program, as you’ll get security updated once or twice a month, as well as bigger Android version updates for two years hopefully up to Android 9 / P.  You do pay a premium for this, so if regular security/firmware updates are not important to you, you’ll get better value with other smartphones.

Overall, I’m very satisfied with Xiaomi Mi A1 smartphone, I could not find any major flaws so far, so I can safely recommend it especially if having up-to-date firmware (for the next two years) is important to you.

Benchmarks: Antutu, Vellamo, and 3DMarks

Here are Antutu 6.x benchmark results for people who have yet to read the first part of the review.

Click to Enlarge

60,000 points is a decent score for a mid-range phone, but for example quite lower than the 85,840 points I got on Vernee Apollo Lite.

Next up… Vellamo 3.x benchmark. Comparisons are against older phone / Android version, so I should probably drop that benchmark in future reviews…

Click to Enlarge

Note that I could not run Vellamo with Chrome browser, since it would hang during CSS 3D animation. Firefox mostly worked, except for Pixel Bender test timing out… The number are all much lower than my Vellamo results on Vernee Apollo Lite.

So I also ran GeekBench 4. AFAIK, It’s however limited to CPU performance so it does not really give real world indication like Vellamo’s Browser test for example.

Click to Enlarge

We can see the single core performance is quite lower than more powerful Cortex A72 “class” processors, but multicore performance is close enough. You can find the full details here.

I also ran 3DMark Ice Store Extreme for evaluation 3D performance further. Vernee Apollo Lite would max out the test, but Xiaomi Mi A1 scored “only” 8,045 points.

Click to Enlarge

The interested part is that my real-life experience does not match the benchmarks at all, as I found Mi A1 to perform just as well as if not much better in many apps. We’ll find out one potential reason just below.

Storage and Wi-Fi Performance

I ran A1 SD Benchmark app to estimate storage performance of 64 GB eMMC flash, and Xiaomi Mi A1 has by far the best storage I’ve used on any devices.

With sequential read speed of 198.94 MB/s, and a write speed of 192.45 MB/s, the device is in a class of its down. Ideally, random I/O performance should be tested too, but it still gives an indication.

Read & Write Speeds in MB/s – Click to Enlarge

Time for some WiFi testing. I did not have any issues, and felt web pages were always loading fast, and YouTube videos played smoothly even at 1080p. But let’s have some numbers to play using SAMBA file copy (278MB) over 802.11ac WiFi  with ES File Explorer, and placing the phone is the same test location as the other DUTs. Just like many recent devices SAMBA “download” is much faster than “upload”:

  • File copy SAMBA to Flash – 47.5s on average (5.85 MB/s)
  • File copy Flash to SAMBA – 2m10s on average (2.13 MB/s)

When we average both numbers, Xiaomi WiFi SAMBA performance is only slightly above average, but still outperformed by some 802.11n devices.

Throughput in MB/s – Click to Enlarge

Maybe that’s an Android Nougat bug… In order to have raw numbers, I also used  iperf for both upload and download

  • 802.11ac WiFi upload:

  • 802.11ac WiFi download:

Assymetry is gone, and Mi A1 is the best device in that test, but we have less data for comparison…

Throughput in Mbps

The main takeaway is that WiFi is working well, and performance is very good.

Rear and Front Facing Cameras

Beside being part of Android One program, another key feature of Xiaomi Mi A1 smartphone is the dual rear camera with optical zoom.

Rear Camera

So I’ve taken a few shots with the camera, starting with an easy cat shot… The thing that surprised me the most at first was the speed at which the photo is taken. It just happens instantaneously. With older devices, I often had to wait around one second after pressing the button while it was doing the auto-focus and take photos. You can launch the camera app very quickly – without having to unlock your phone – by pressing the power button twice.

“What do you want?” Cat – Click for Original Size

Clear enough for a camera phone. Close up shots are sometimes problematic with phone, but I had pretty good results. The text book shot is close to perfect.

I used to Read that Stuff – Click for Original Size

Development board can be tricky to photograph because the camera can focus on the wrong part (e.g. top of Ethernet/USB connector), But Orange Pi One photo below is fairly good. I had to try a few times to get the right focus.

 

Best.Board.Ever? – Click for Original Size

You can press on the live view to set the focus point. It will help.

Click for Original Size

Click for Original Size

Flower photos were also good with color matching reality.

Local Angel – Click for Original Size

Photos taken with good lighting are always good.

What year is this? Morning Shot – Click for Original Size

The photo above was taken in the morning with the sun in my back.

Dirt Road Genocide at Sunset – Click for Original Size

When it get a little dark, or in shots with different lighting conditions for foreground and background it helps to enable HDR function.

HDR Works in Temples Too – Click for Original Size

Night shots can be a little grainy, but I find they are still pretty good…

Smoking Bear with Pig and Hedgehog overlooked by Confused Panda at Night – Click for Original Size

Now some video testing, starting with the easiest of all 1080p30 day time video.

The video looks fine, but if you’ve watched it with audio, you may have noticed may not be quite right with the microphone/audio.

4K video can be recorded at 30 fps, but it does feel as smooth as the 1080p one while panning.

All videos are recorded using MP4 Quicktime container, H.264 video codec @ 30 fps, and MPEG-4 AAC stereo audio. If you plan to watch 4K videos from the phone on TV, you’ll have to make sure the player supports 4K H.264 @ 30 fps, as some 4K TV boxes are limited to 24 fps.

Slow motion recording is something that I did not have in my previous phone, and it’s working fairly well up to 720p30 (recorded at 120 fps).

Night time videos are the most difficult, and even at 1080p the results are quite poor with the video frame rate at 14 fps, auto focus being seriously confused, and and audio has a metallic component to it, even more than for the video I recorded during day time.

So I tried again to shot a video will taking to myself, and audio was just fine. So I guess the issue may be specific to far field audio or traffic noise.

Font-facing camera

The front-facing camera works pretty well for selfies.

Angel with Bra – Click for Original Size

Golden Necklace Beauty – Click for Original Size

Black “The Boss” – Click for Original Size

I also used it with a one hour long Skype call.

Camera App Settings

Let’s have a look at the camera app interface. In the preview window we have three icons at the top to change flash settings, enable/disable portrait mode (if enabled it will bur the background), and enable/disable HDR.

Click to Enlarge

If we tap on Options we’ll have the choice to play with Panorama mode, adjust timer and audio settings, set manual camera settings for white balance, exposure time, focus, ISO, lens selection (wide/tele), and more. Tapping the Settings icon on the top right corner will bring further camera settings.

Click to Enlarge

If you plan to share photos with strangers you may want to disable “Save location info” as otherwise your GPS location will be embedded into the photos’s EXIF info. Face detection is nice, but you may consider disabling “Age & gender”, as it will automatically detect whether a person is male or female, and estimate their age while taking a photo (although it won’t show on the photo itself). I’ve seen the phone misgender people, and age can always be a contentious subject 🙂

Click to Enlarge

If we switch to video capture we have much fewer options, mostly time-lapse or slow-motion, and we can select video quality (4K, FULL HD, HD, SD).

Battery Life

Xiaomi Mi A1’s ~3,000 mAh baterry provides enough juice for over 30 hours in my use cases (Web browsing / YouTube / Gaming 4 to 5 hours a day). I also like to turn off my phone automatically at night between 22:00 and 7:00, so it adds a little to the battery life too. A typical cycle for charge to charge looks as the one below.

I normally use LAB501 Battery Life app to test battery life from 100% to 15% for browsing, video and gaming cases, with brightness to 50%, WiFi and Cellular (no data) enabled, but for some reasons I cannot explain, the tests would always stop after a few hours – despite several attempts -, not drawing the battery down to 15%.

Click to Enlarge

However, the battery discharge on this phone, and Vernee Apollo Lite looks linear…

…so I’ll use linear approximation to estimate the actual battery life..

  • Browsing (100% to 15%) – 740 minutes (12h20)
  • Video (100% to 15%) –  598 minutes (9h58)
  • Gaming (100% to 15%) –  389 minutes (6h29)

…and compare it to the other battery powered mobile devices I’ve tested so far.

Battery Life in Minutes

Xiaomi Mi A1 wins hands down against the other (older) devices I’ve tested when it comes to battery life. The good news is that battery life seems to improve over the years, as the older devices fare the worse. So a few more years, and we can get a week of charge on our phones?

Charging is not as fast as on Vernee Apollo Lite since there’s no Quick Charge, and it takes 1h30 to 1h50 to fully charge the phone from 15% to 100%. Topping the battery from a low of 8% to 27% took me 23 minutes. For comparison, I could do a full charge in one hour on Apollo Lite with Quick Pump 3.0, and a 20 minute charge would add about 40% to the battery.

Miscellaneous

Bluetooth

No problems here. I could transfer photos between the phone and Zidoo H6 Pro Android TV box over Bluetooth, connect two different Bluetooth headsets to the phone, and pair with, and retrieve data from a fitness tracker using Smart Movement app.

GPS

GPS is also an improvement over all the other Mediatek phones I’ve had. GPS fix is super fast like on Vernee Apollo Lite, but while using Nike+ Running, GPS accuracy is much better on the Xiaomi Mi A1 smartphone, as you can see from the two screenshots below.

Xiaomi Mi A1 (left) vs Vernee Apollo Lite (Right) – Click to Enlarge

I ran two laps with the Xiaomi phone, and they almost exactly overlap. The downside is that I have to run a little longer to achieve the same distance on the app 🙂

Gaming

I tried four games: Candy Crush Saga, Beach Buggy Bleach, Riptide GP2, and CSR Racing 2. All played very smoothly, to my surprise CSR 2 performed much better than on Vernee Apollo Lite, despite the latter having a more powerful ARM Mali-T880 GPU in Helio X20 SoC. As mentioned in a aforelinked post, I can see 3 potential reasons for the difference in that game: more optimization on Qualcomm SoCs than Mediatek SoCs, slightly lower level of details shown in the Qualcomm phone, better cooling for Xiaomi Mi A1 smartphone, which stays cool at all times, contrary to the Vernee phone which may require a cool pack to run smoothly…

IR Transmitter / Remote Control App

An infrared transmitter is built into Xiaomi Mi A1  smartphone, and can be control with Mi Remote app. I tried with LG 4K UHD TV, and it worked well.

Click to Enlarge

Air conditioners are always more challenging. So first I had to go through a process to detect which Haier aircon model I had, pressing poweroff button, and then other buttons, to find the right model among 158 options.

Click to Enlarge

It finally found mine, I gave it a name “Bedroom Haier AC” and realized on some functions would work, and some temperatures are not supported. So not so useful in that case.

Others

Multitouch app reports the touchscreen supports 10 touch points. The smartphone has a single speaker with mediocre quality when listening to music, but that’s not that big of an issue as Bluetooth speakers are now rather inexpensive, and in my daily life I mostly use wired or Bluetooth audio headsets. It’s good to have a 3.5mm audio jack, but I normally prefer when it’s placed on the top of the phone, rather than the bottom left, which can be an issue when using an armband, or while holding the phone.

Video Review

I’ve also shot a video review mostly summarizing the points above, showing the camera in action, playing Riptide GP2, a YouTube video up to 1080p, opening a large PDF files, etc…

Long Term Review / History

Since I’ve very satisfied with the phone, I’m going to retire Vernee Apollo Lite, and make Mi A1 my main phone. Since it’s also supposed to be upgraded for two years, I’ll keep this section to report the history of the phone, like a long term review, and report important events like firmware updates, or if something stops working. I got 3 firmware updates since I received the phone less than a month ago.

  • September 5, 2017 – Xiaomi Mi A1 announcement
  • September 12, 2017 – Official launch in India
  • October 16, 2017 –  Unboxing and September 2017 security update (1059.6 MB), Android 7.1.2 / Linux 3.18.31
  • October 21, 2017 – October 2017 security update (118 MB), Android 7.1.2 / Linux 3.18.31
  • November 3, 2017 – October 2017 security update (75.7 MB), Android 7.12 / Linux 3.18.31
  • November 15, 2017 – This review
  • November 22, 2017 – November 2017 security update (466.9 MB), Android 7.12 / Linux 3.18.31

Conclusion

I’m really pleased with my experience with Xiaomi Mi A1 smartphone, and to my surprise it’s an improvement over Vernee Apollo Lake with most features, except for fast charging that’s missing from the phone.

PROS

  • Stable and relatively recent Android 7.1.2 firmware
  • Part of Android One program with promise of regular security and firmware updates for 2 years (including Android 8.x and 9.x).
  • Good & sharp 1920 x 1080 display; wide brightness range
  • Excellent Wi-Fi 802.11ac performance
  • Excellent eMMC flash performance (Best I’ve tested so far)
  • Long battery life (about 30 hours per charge for 4 to 5 hours active use per day)
  • Good front-facing camera and rear dual cameras for depth effect
  • Overall better app performance compared to my previous Helio X20 based smartphone, especially for some games
  • Support forums

CONS

  • Quick Charge (Fast charging) not available
  • Videos shot with the rear camera are not smooth in dark scenes, and audio is poor in some videos (metal sound)
  • SAMBA WiFi performance is average for transfer from phone to server
  • Mi Remote  app (infrared remote) is not working well with my aircon (Haier)
  • Display is quite glossy / reflective
  • Built-in speaker not really good to listen to music
  • Android One support may add about $30 to $40 to the price of the phone
  • GPL source code not released yet, but an article suggests Mi A1 Linux kernel source code may be released within three months.

I’d like to thank GearBest for providing a review sample. Xiaomi Mi A1 (Black) can be purchased on their shop for $219.99 shipped with coupon A1HS. Other shopping options include GeekBuying, Banggood, eBay, and others online shops.

Some people noticed that Xiaomi Redmi Note 4 smartphone has very similar specifications with a Snapdragon 625 processor, 4GB RAM, and 64GB storage, the same 5.5″ Full HD display, but no dual rear camera, and a bigger battery (4,100 mAh). It’s sold for on Aliexpress for about $190 (Black version) and around $180 (Other colors), so if we assume the battery / camera features cancel out (in terms of price) that means Android One support adds about $30 to $40. One way to look at it is that you pay a little less than $2 per month for 2-year support with regular security & firmware updates.

Tronxy X3S 3D Printer Review – Part 3: Upgrades to Fix Bed Leveling Issues (Permanently)

November 14th, 2017 No comments

Karl here. I have had the Tronxy X3S 3D printer for a while now. It prints well but as I mentioned in previous articles I had to level for every print. Actually near the end I would just overpower the stepper motors while the skirt was printing and level. Leveling front to back was not affected. Only the z height. So this worked but it was frustrating. Before that I tried several different things to mitigate. I thought maybe the endstop for Z homing was inconsistent and replaced it. I tried heating the bed for extended period of time thinking that maybe some thermal expansion. Didn’t help. I finally did a major change to the X carriage with success. I even moved the printer to our local library and the bed stayed leveled for a demo. I call this a success, and will show how I did it. Inspiration for this modification came from the CR-10. This is the biggest mod I have done for any review so far.

3D Printed Parts for Upgrade

My objective was to reuse as much as possible of the original kit. I designed the bracket in Fusion 360 and remixed the Z motor brackets in Windows 3D Builder. To do this upgrade you will need to print 2 Z motor mounts an 1 X/extruder mount. They are published on Thingiverse.

Bed

The easiest place to begin with is the bed. This mod alters the extruder position so the Y stepper motor needs to be relocated outside the frame so no build area is lost. I had some extra belt I think came with this kit that I used. The belt lengthens from the original position.

X Carriage

First remove the Z motors and metal brackets. We will not be reusing the metal brackets. Remove the Z rods. Take off the top 2020 extruded aluminum from the top of the printer and slide the whole X carriage off, and disassemble the left and right wheels, stepper motors, belt etc. The triangle wheel assembly does not need to be broken down. Both extruder and X stepper will be located on the left now. I slid only the triangle wheel assemblies on with the new orientation. I made a little mark on the left and right acrylic wheel assembly to get my positioning right for 2020 aluminum. Center the 2020. I ended up with about 9mm on each side. You will need to drill a hole in the acrylic so a second nut can be used on both sides.

Drill hole through acrylic approx. where indicated by arrow on the bottom set of holes. Enlarge the bottom holes on the back piece so you can use a screwdriver and tighten. Take your time and drill slow. Do this on both sides.

Here is the left side. I mounted the steppers after installing.

Click to Enlarge

Mount the Z rod brackets upside down on the back in the top holes of the wheel assembly so that the Z rod lines up with the center of the 2020 below.

I tested the orientation of the Z rod nut upside down by changing one side. I really don’t think it matters.

Now mount the Z motors. I didn’t have the proper length nut so they look loose. No adverse effects. If it bothers you can install a washer or nut. The brackets are keeping it from bouncing.

Click to Enlarge

I have only done a couple test prints, but they turned out fantastic. I can’t say definitively, but I do think I see an improvement. I am running low on filament right now and will test more for final review. The goal was to fix the level issue but any improvement is good.

Click to Enlarge

Final thoughts

The leveling was driving me crazy on this printer, so I had to find a solution. I started with a goal of changing the orientation of the wheels and just started taking the printer apart. With more than one printer this makes it an easier task. By chance I was able to reuse the existing Z rod brackets and saved quite a bit of time. It did take 2 iterations of the X/extruder bracket, but ultimately didn’t take very long. I had one setback. On the first iteration I had the stepper motors touching, and the steppers got very warm so I put a 5mm gap between them and seemed to resolve the issue.

If you noticed my X axis limit switch is off set it is because I am running stock marlin, and did not build in the offsets so I just moved the limit switch to accommodate. I will follow up with a how to upgrade the firmware, and get rid of some of the annoyances with stock firmware.

After this upgrade I can say it is very much on par with the CR-10 now with some savings. After this upgrade you can get 350 x 330 x 390 mm. I didn’t realize until testing just now that 10mm is lost in the Z. You can get 400mm wide but there is a clearance issue with extruder hitting the triangle brackets. You could probably just clip on a larger mirror with no issues and stick with the existing bed and let it overhang.

I would like to thank Gearbest for sending the printer for review. They sell it for $269.99 including shipping.

Categories: Hardware, Testing Tags: 3d printing, hack, review, tronxy

Zidoo H6 Pro (Allwinner H6) TV Box Review – Part 2: Android 7.0 Firmware

November 10th, 2017 5 comments

Zidoo H6 Pro is the very first Allwinner H6 based 4K TV box. The Android 7.0 device support H.265, H.264 and VP6 4K video decoding, comes with fast interfaces such as USB 3.0, and network connectivity with Gigabit Ethernet and 802.11ac WiFi.

I’ve already checkout the hardware in the first part of the review entitled “Zidoo H6 Pro (Allwinner H6) TV Box Review – Part 1: Unboxing & Teardown“, and since then, I’ve had time to play with the TV box, and report my experience with Android 7.0 in this second part of the review.

First Boot and OTA Firmware Update

I’ve connected a USB keyboard and a USB dongle with RF dongles for an air mouse and gamepad on the two USB ports, a USB 3.0 hard drive to the single USB 3.0 ports, as well as HDMI and Ethernet cables before powering up the TV box. I also added two AAA batteries to the IR/Bluetooth remote control.

Click to Enlarge

Boot to the background image takes around 20 seconds, but to reach the actual launched it normally takes around one minute and 25 seconds when I have the hard drive connected (with 4 partitions and many files). If I remove the hard drive, the full boot can complete within 23 seconds. Not that much of an issue, but it still may be something Zidoo wants to optimize.

On the very first boot, a few seconds after the launcher showed up, I also had a pop-up window informing me that Firmware v1.0.11 update was available, with a neat changelog listing the main changes including support for Netflix 1080p playback, and YouTube 2K/4K playback.

Click for Original Size

I clicked on the Update button to start downloading the new firmware…

… an cliked Update again after downloading, to complete the firmware update with MD5 check and installation to the eMMC flash.

The system will then reboot, and we can get access the Zidoo ZIUI launcher.

Click to Enlarge

The launcher is identical to the one in Zidoo X7 except for two extra icons on the bottom for BT remote, and “Box RC” app, but more on that later.


Beside those two new remote apps, we’ll also notice HappyCast app used by Airplay/Miracast, and the lack of ZDMC (Zidoo’s Kodi fork), as we are told to use Kodi from Google Play instead.

Settings & Google Play

The settings section looks the same as Zidoo X7 settings, so I will only go through it quickly.

Click to Enlarge

We have four main section with Network, Display, Sound and Other. I could connect to WiFI and Ethernet with no issues, and Bluetooth worked with my smartphone and a pair of headphones. Display can be set up to a resolution / framerate of 3840×2160 @ 60 Hz, and PCM 2.0 output, HDMI & S/PDIF audio pass-through options are available. Looking at the Other section, About tab, and Android Settings about TV box reveals ZIDOO_H6 Pro is running Android 7.0 on top of Linux 3.10.65, and the firmware I tested for the review is v1.0.11, as we’ve seen from the OTA firmware update part of this review.

Click to Enlarge

Android security patch level is dated November 5, 2016. Not the most recent, and you won’t get monthly to bi-monthly security updates like in Android One phones such as Xiaomi Mi A1. The firmware is rooted by default.

Looking into storage options, I had 418MB free out of 10.22GB internal storage partition at the very beginning of the review, and NTFS and exFAT partitions of my USB hard drive could be mounted, but not the EXT-4 and BTRFS partitions.

I could install all apps I needed for review using Google Play, and I also installed Riptide GP2 game with Amazon Appstore since I got it for free there.

Remote Control – IR/Bluetooth, and Box RC Android App

One way Zidoo H6 Pro differs from most competitors is that it comes with a Bluetooth remote control. By default it works with the IR transmitter, and Bluetooth is disable, but you can enable Bluetooth by launching Bluetooth Remote app, or selecting BT Remote icon on the launcher.

Click to Enlarge

Hold the back and menu keys for a few seconds until the LED on the remote start flashing. The app will then show the Bluetooth remote is connected, and the battery level. Bluetooth does not enable air mouse function, and you’d still need to use the arrow keys to move the cursor in mouse mode, so the main advantage of Bluetooth over infrared is that it does not require line of sight. You can hide the box being the TV, or inside a furniture, and the remote would work. You do not need to point the remote control towards the TV box either, it works in any directions. I successfully tested the remote control up to a distance of 10 meters. Once I lost control of the OK and Back keys, but they came back later on after a reboot, and could not reproduce the issue.

I also tested MINIX NEO A2 Lite air mouse / keyboard / remote control, and again no problem. It’s my favorite way to control an Android TV boxes, since it works with all sort of user interfaces and most apps, excluding some games that require touch support.

Another way to control the TV box is to install Box RC  Android app in your smartphone. Launch Box RC app in the TV box, and you should see the QR Code below.

It redirects to RC Box apk file. +  Screenshots of smartphone app.

Click to Enlarge

After installation, you’ll be presented with the “key mode” pad. Tap on “My Device” and select ZIDOO_H6 Pro to connect to the TV box. Clicking on the icon in the top left corner will give you a few more remote modes, including “Handle model” for gaming…… as well as mouse and gesture mode – both of which look like the left screenshot below -, and an Applications with a complete list of apps installed in the TV box. Simply select the app you want to launch in the TV box.

Click to Enlarge

Finally, you’ll have an About section showing the version number, and checking for app updates, and a Screenshot option to remotely take screenshots. Everything worked well. I’m just not quite sure how to use the gesture mode.

Power Consumption & Temperature

Power control is just like on Zidoo X7 with a short press on the remote control power button bringing a menu to select between Power off, Standby, or Reboot. A long press will allow you to configure the behavior of the power button: Off, Standby, or Ask (default).

I measured power consumption in various mode, and here it works better than X7:

  • Power off – 0.0 Watt
  • Standby – 3.2 Watts
  • Idle – 4.0 ~ 4.4 Watts
  • Power off + USB HDD – 0.0 Watt
  • Standby – 6.0 to 6.4 Watts
  • Idle + USB HDD – 6.0 to 6.4 Watts

With regards to temperature, the box itself stays fairly as after playing a 2-hour video in Kodi, I measured 45 and 43ºC max measured on the top and bottom with an IR thermometer, and 47ºC on both sides after playing Beach Buggy Racing & Riptide GP2 for about 30 minutes. However, right after playing, CPU-Z reported respectively 86°C and 80°C CPU & GPU temperatures, which should be close to limit of the SoC. The ambient temperature was around 28°C, and 3D performance was contant while playing.

Video & Audio Playback with Kodi, Media Center and YouTube, DRM Info

Some people reported that Kodi installed from Google Play is working well in the box, so I installed Kodi 17.5 from Google Play, enabled automatic frame rate switching, setup the connection to my SAMBA share over Ethernet, and started playing my 4K video samples:

  • HD.Club-4K-Chimei-inn-60mbps.mp4 (H.264, 30 fps) – Not smooth, and some parts of the picture are very red
  • sintel-2010-4k.mkv (H.264, 24 fps, 4096×1744) – Not perfectly smooth
  • Beauty_3840x2160_120fps_420_8bit_HEVC_MP4.mp4 (H.265) – Plays fine, but woman face is more red than usual
  • Bosphorus_3840x2160_120fps_420_8bit_HEVC_MP4.mp4 (H.265) – Not perfectly smooth
  • Jockey_3840x2160_120fps_420_8bit_HEVC_TS.ts (H.265) – Not perfectly smooth
  • MHD_2013_2160p_ShowReel_R_9000f_24fps_RMN_QP23_10b.mkv (10-bit HEVC) – Not perfectly smooth
  • phfx_4KHD_VP9TestFootage.webm (VP9) – 2 to 3 fps (software decode)
  • BT.2020.20140602.ts (Rec.2020 compliant video; 36 Mbps; 59.97 Hz) – OK
  • big_buck_bunny_4k_H264_30fps.mp4 – Not super smooth
  • big_buck_bunny_4k_H264_60fps.mp4 – Not very smooth, audio delay (OK, as not supported by Allwinner H6)
  • 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) – Plays OK, but red parts are over-saturated?
  • Astra-11479_V_22000-Canal+ UHD Demo 42.6 Mbps bitrate.ts (10-bit H.265 from DVB-S2 stream) – OK
  • 暗流涌动-4K.mp4 (10-bit H.264; 120 Mbps) – ~2 fps (software decode – OK, as not supported by hardware)
  • Ducks Take Off [2160p a 243 Mbps].mkv (4K H.264 @ 29.97 fps; 243 Mbps; no audio) – Not smooth
  • tara-no9-vp9.webm (4K VP9 YouTube video @ 60 fps, Vorbis audio) – 2 to 3 fps (software decode), lots of buffering
  • The.Curvature.of.Earth.4K.60FPS-YT-UceRgEyfSsc.VP9.3840×2160.OPUS.160K.webm (4K VP9 @ 60 fps + opus audio) – 2 to 3 fps (software decode), lots of buffering

Automatic frame rate switching is not working, but that’s only a small issue compared to the disastrous results above. As shown in the screenshot above, H.265 is hardware decoded, but for some videos the CPU usage is really high, close to 100% on all four cores, so something is clearly wrong. H.265 / H.264 1080p videos fare better, so maybe that’s why other people think Kodi works well. Maybe ZDMC, Zidoo’s fork of Kodi is coming soon.

In the meantime, I switched to Media Center, and it’s night and day compared to my experience with Kodi, also played from the same SAMBA share:

  • HD.Club-4K-Chimei-inn-60mbps.mp4 (H.264, 30 fps) – OK most of the time, but the end is a bit choppy
  • 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
  • BT.2020.20140602.ts (Rec.2020 compliant video; 36 Mbps; 59.97 Hz) – OK
  • big_buck_bunny_4k_H264_30fps.mp4 – OK
  • big_buck_bunny_4k_H264_60fps.mp4 – Plays but not smoothly, plus audio delay (OK, as not supported by Allwinner H6)
  • 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
  • Astra-11479_V_22000-Canal+ UHD Demo 42.6 Mbps bitrate.ts (10-bit H.265 from DVB-S2 stream) – OK
  • 暗流涌动-4K.mp4 (10-bit H.264; 120 Mbps) – Massive artifacts  (OK, as not supported by Allwinner H6)
  • Ducks Take Off [2160p a 243 Mbps].mkv (4K H.264 @ 29.97 fps; 243 Mbps; no audio) – OK
  • 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) – Not too bad, but not 100% smooth in all scenes. (Note: Most TV boxes struggle with this video).

I’m pretty happy with the results, and automatic frame rate switching works, it just need to be enabled in Advanced menu.
Switching audio tracks and subtitles are supported by the app, and work well. SmartColor engine is specific to Allwinner processors, and may help improve the video quality, or adjust the image to your taste.


Let’s carry on testing with PCM 2.0 (stereo) output to my TV, and HDMI audio pass-through to Onkyo TX-NR636 A/V receiver, with some advanced audio codec in Media Player.

Audio Codec in Video PCM 2.0 Output HDMI Pass-through
AC3 / Dolby Digital 5.1 OK OK
E-AC-3 / Dolby Digital+ 5.1 OK OK
Dolby Digital+ 7.1 OK OK
TrueHD 5.1 OK OK
TrueHD 7.1 OK OK
Dolby Atmos 7.1 OK TrueHD 7.1 (OK)
DTS HD Master OK DTS 5.1
DTS HD High Resolution OK DTS 5.1
DTS:X OK DTS 5.1

Audio works pretty well with the only downside being a lack of support for DTS HD MA/HR which all fallback to DTS 5.1. My receiver does not support Atmos, so the box outputs TrueHD 7.1 as it should.

I’ve also tested HD videos with various bitrates:

  • ED_HD.avi (MPEG-4/MSMPEG4v2 – 10 Mbps) – OK (except running scene that is not smooth)
  • big_buck_bunny_1080p_surround.avi (1080p H.264 – 12 Mbps) – OK
  • h264_1080p_hp_4.1_40mbps_birds.mkv (40 Mbps) – OK
  • hddvd_demo_17.5Mbps_1080p_VC1.mkv (17.5Mbps) – OK
  • Jellyfish-120-Mbps.mkv (120 Mbps video without audio) – HDD: OK

Most Linaro media and H.265 elecard samples are playing fine in Media Center:

  • 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
  • Real Media (RMVB), 720p / 5Mbps – Media Center app returns “Can’t play video”
  • WebM / VP8 – 1080p – OK
  • H.265 codec / MPEG TS container – 1080p – OK

The full HD Blu-ray ISO files I tested (Sintel-Bluray.iso and amat.iso) played fine, so were 1080i MPEG-2 samples. I had the usual artifacts with Hi10p videos, but audio and subtitles were displayed correctly.

I also tested a bunch of 720p/1080p movies with various codecs/containers such as H.264, Xvid, DivX, VOB / IFO, FLV, AVI, MKV, MP4, etc… Most could play, except some of my FLV video samples, and DVD Rips would show the “This is a Blu-ray folder” pop-up…

… but the app would also report “Can’t play video”. If I browse to the folder, and select the IFO, it does not work, and the only way to start is to select a VOB file. However, it does not automatically switch to the next file. So there’s a problem with DVD rips in Media Center app.

YouTube app could play videos up to 1440p, but 4K (2160p) is not an option.

I’ve shot a video to show issues in Kodi, as well as Media Center app which work pretty well, and YouTube playback up to 1440p.

DRM Info app shows Widevine DRM L1 is supported, meaning one of the requirements for Full HD Netflix is fulfilled.

Click to Enlarge

The company – as we’ve seen in the firmware changelog – claims support for Netflix 1080p, but since I don’t have an account I could not confirm that. It’s also unclear whether this has been achieved through a hack, or a partnership with Netflix. The latter would be permanent, while the former may not work in a few months. Based on info gathered on Zidoo forums, I can see other boxes like Mecool M8S Pro Plus TV box can play Netflix 1080p through a “3rd party Android TV Firmware”, so it’s likely something similar has been implemented for H6 Pro.

Network & Storage Performance

Zidoo X7 had a somewhat asymmetrical performance while copying a 278 MB file over 802.11ac + SAMBA, and Zidoo H6 Pro appears to have the same issues:

  1. Server to flash (average): 51, or around 5.45 MB/s
  2. Flash to server (average): 3 minutes 22 seconds, or around 1.37 MB/s

So excellent download performance, but weak upload performance with SAMBA. The average is around 2.24 MB/s.

Throughput in MB/s – Click to Enlarge

It’s probably a SAMBA configuration/implementation issue, as testing with iperf shows good performance in both directions:

  • 802.11ac download:

  • 802.11ac upload:

Throughput in Mbps

I also tested Gigabit Ethernet with iperf:

  • Full duplex:

  • Upload only:

  • Download only:

That’s pretty good, and fairly close to the results I got with ROCK64 Board (RK3328).

Switching to store benchmarks with A1 SD Bench.

Click to Enlarge

The cached read is due to the incredibly low exFAT write performance (1.52 MB/s). Read speed is quite weak to at 16.37 MB/s with this file system, but poor exFAT performance is a common to most Android TV boxes. NTFS is much better at 59.07MB/s read, and 42.12 MB/s but still far from the ~100MB/s R/W, I achieved with the same hard drive on ROCK64 board. Nevertheless the performance will be good enough for TV box use case. However, if you need hardware with fast storage (through USB 3.0) and Ethernet, RK3328 processor looks to be better.

Internal performance is good, and helps explain relatively fast boot (when no HDD is connected), fast app loading, and the lack of “app not responding” issues.

Gaming

I installed three games: Candy Crush Sage, Beach Buggy Racing (BBR) and Riptide GP2. I played Candy Crush with my air mouse, and no problem here. I played the two racing games with Tronsmart Mars G01 game controller, and BBR played very smoothly even with max graphics settings. Riptide GP2 was quite playable with max “resolution”, maybe at 25 to 30 fps, but not quite close to 60 fps. I feel Allwinner H6 might be a little better at playing games than Rockchip RK3328, and somewhat comparable to Amlogic S905/S905X. I played both games for around 30 minutes in total, and I did not notice any drop in performance over time, so no obvious throttling/overheating, despite the rather high CPU/GPU temperatures reported by CPU-Z.

Bluetooth

I’ve used Bluetooth more than on any other TV boxes simply because of the Bluetooth remote control. But I could also pair the TV box (seen as petrel-p1) with Xiaomi Mi A1 smartphone, and transfer a few photos over Bluetooth, watch some YouTube video using X1T Bluetooth earbuds, but while I was able to see and pair my BLE fitness tracker in the Bluetooth settings, I was never able to locate the smart band from within “Smart Movement” app.

Zidoo H6 Pro (Allwinner H6) System Info and Benchmarks

CPU-Z still shows a quad core Cortex A53 r0p4 processor clocked between 480 MHz and 1.80 GHz, and a Mali-T720 GPU. Note that I never saw the frequency goes over 1488 MHz, so that 1.80 GHz may only occur during short bursts if at all.

Click to Enlarge

1906 MB total memory was reported, and 10.22 GB storage. Screen resolution was 1920×1080. As with most Allwinner platform you’ll never get a recent kernel (Linux 3.10.65).

The device achieved 40,467 points in Antutu 6.x, or about 5,000+ more compared to competitors based on RK3328 or S905X.

Click to Enlarge

One of the big jump is with 3D graphics, but there’s an easy explanation: Rockchip RK3328 and Amlogic S905X SoCs rely on Mali-450MP GPU which does not support OpenGL ES 3.1 used by “Marooned” benchmark, meaning Allwinner H6 just gets 3,510 points extra just for supporting OpenGL ES 3.1… So in reality, there’s not so much performance difference between the performance.

Vellamo 3.x confirms Allwinner H6 is that much faster with the following scores: Browser: 2,546 points, Metal: 930 points, and Multicore (836 points). I’ll put aside Multicore as on the test failed because of an issue with sysbench: “issue with Finepar: Invalid CPU mode”. But when comparing the metal score result against Amlogic S905X (910) and Rockchip RK3328 (937), the differences are minor.

Click to Enlarge

The Ice Storm Extreme score (3,951 points) is about the same as Amlogic S905X (4,183 points), but quite better than Rockchip RK3328 (2,252 points). We can also see the CPU frequency never surpassed around 1.5 GHz, so I’m wondering whether the 1.8 GHZ reported by CPU-Z might just be for show/marketing…

Conclusion

Despite Allwinner H6 SoC being pretty new, I have not found any really critical bugs in Zidoo H6 Pro TV Box. 4K video playback is working well in Media Center app with automatic frame rate switching, and HD audio pass-through, and overall performance is good, including for Wifi, Ethernet and storage.Widevine Level 1 DRM is installed, and the device is also supposed to support Netflix HD playback (not tested). 3D graphics performance is closer to the one of Amlogic S905X ,and quite better than on Rockchip RK3328 SoC.

The biggest issues I’ve found is poor support for Kodi with most 4K videos I’ve tried not playing well, and red color is over-statured in many videos. Media Center app also have a few limitations such as no support for DTS HD HR/MA pass-through (fallbacks to DTS 5.1), and IFO (DVD Rip) & Real Media video files are not supported. Other issues include poor exFAT performance, and WiFi SAMBA upload speed.

PROS

  • Android 7.0 operating system – Stable and responsive
  • Eye-pleasing ZIUI launcher / user interface
  • Very good support for 4K videos played in Media Center app with automatic frame rate switching support; Smart Color Engine for post-processing
  • HDMI pass-through for Dolby, DTS, and Dolby TrueHD working in Media Center app
  • Relatively fast eMMC flash storage (fast boot/app loading)
  • Very good networking performance for Gigabit Ethernet and 802.11ac WiFi (except for SAMBA uploads)
  • Bluetooth remote control
  • Decent 3D graphics performance
  • Widevine Level 1 DRM; Netflix HD support (not tested)

CONS (and bugs)

  • Kodi 17.5 from Google Play struggles to play 4K videos and color issues (too much red)
  • MediaCenter – No DTS HD pass-through support (DTS 5.1 instead); IFO (DVD rip) and Real Media (RM) videos not supported, some FLV files can’t play.
  • YouTube limited to 1440p (no 2160p option for me)
  • Poor SAMBA upload performance when using WiFi
  • exFAT file system performance poor -> use NTFS instead on external hard drive
  • Slow boot time (~1 minute 30 seconds) when hard drive with many files connected
  • “OK” button stopped to work on the Bluetooth remote control once (despite still working on the air mouse). Reboot fixed the issue.

Zidoo kindly sent the review sample from a local distributor. Resellers can contact the company via H6 Pro’s product page. GeekBuying currently has a promotion for the device where you can get it for as low as $79.99 (only for the first 50 orders), but it’s also sold on other websites for about $85 to 100 including GearBest, Amazon, or Aliexpress.

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

November 8th, 2017 28 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.

HiMedia Q10 Pro TV Box Review – Part 1: Unboxing and 3.5″ SATA Bay

November 8th, 2017 1 comment

HiMedia Q10 Pro Android TV box was launched in March of last year, equipped with a HiSilicon Hi3798CV200 quad-core ARM Cortex A53 processor, 2GB RAM, 16GB flash, and a SATA bay for 3.5″ drives. When I wrote a post about the Best Android TV boxes, on commenter mentioned that while NVIDIA Android Shield was the best box for streaming, he felt HiMedia Q10 Pro offered the best quality for media playback.

With now 18 months since launch, you may wonder why I would do a review now. That’s because Himedia keeps updating the firmware, and they asked me to check out and test their latest feature: 4K Blu-Ray navigation on Android 7.0 OS. As usual, I’ll start by checking out the hardware, and will publish a review focusing on Blu-ray playback in a few weeks.

Click to Enlarge

The package is more like a suitcase that your usual tiny box, but that’s common for high-end TV boxes. It also shows the main features like 4K HDR support, Dolby and DTS-HD audio and so so.

Click to Enlarge

The box ships with an IR remote control with IR learning function for 4 keys, a WiFi antenna, a HDMI cable, a 12V/2A power supply, and  quick guide describing the remote control functions, and explaining how to connect the device to a TV and/or amplifier.

Click to Enlarge

The build quality feels very good, and the box is entirely made of metal.

Click to Enlarge

The front panel includes a VFD display, IR receiver window, and several touch button for power, menu navigation, etc…

The left side features all USB host ports with one USB 3.0 port, and two USB 2.0 ports, as well as a SD/MMC slot.

Click to Enlarge

The rear panel has vents for the cooling fan, a WiFI antenna connector, a USB 3.0 device port to connect the box directly to your computer, optical and coaxial S/PDIF output, 3 RCA jacks for composite video and L&R audio, a Gigabit Ethernet port, HDMI 2.0a output, a recovery pin hole, and the DC jack.

The remaining side comes with a button which you can slide to open the SATA bay.

Click to Enlarge

Installation is super easy, just insert your 3.5″ SATA drive push the “Open” handle, and close the lid.

Click to Enlarge

At this point, I normally do a teardown, but I found it not to be so obvious, and since the device is old enough, somebody else already did one.

HiMedia Q10 Pro is sold for $159.99 shipped on GeekBuying, but you’ll also find it on eBay, Amazon US (for $299?), and likely in a local reseller in your own country. Now, I’ll need to find some 4K Blu-Ray ISO files to test on the device…

NanoPi Duo Quick Start Guide – Ubuntu, Breadboard, Mini Shield & mSATA SSD

October 30th, 2017 12 comments

As far as I know NanoPi Duo is the only quad core ARM Linux development board that can fit on a breadboard. We’ve already seen it’s much smaller than Raspberry Pi Zero, and the company offer a mini shield exposing USB ports, Ethernet, a few I/Os, and an mSATA slot in in NanoPi Duo Starter Kit Review – Part 1: Unboxing and Assembly.

I’ve finally played with it this week-end, and will report what I had to do to blink a LED when connected to breadboard, and my experience using the mini shield with  an mSATA SSD, WiFi connectivity, and cooling under load.

Flashing Ubuntu 16.04.2 firmware image to NanoPi Duo

As with many other Allwinner development boards, you should first check if Armbian is available for the board. NanoPi Duo is not supported, but it’s said to work with Orange Pi Zero image minus support for WiFi. Since the latter is rather important if you’re going to use the board standalone, I instead went with FriendlyELEC’s Ubuntu Xenial image (nanopi-duo_ubuntu-core-xenial_4.11.2_20170908.img.zip) shared on the company’s Wiki.

I flashed the (compressed) image with Etcher – available for Windows, Linux, Mac OS, on a 8GB micro SD card (Sandisk Ultra).

Using NanoPi Duo as a Breadboard-friendly Development Board

Once this is done, insert the micro SD into the board, insert it into a breadboard, and connect your circuit (in my case a 5V LED connected to GPIOG11 via a transistor). Most other breadboard-friendly WiFi boards include either a USB to TLL chip allowing to access the board’ serial console over USB (e.g. ESP32 boards), or firmware that setups the board as an access point for initial configuration (e.g. LinkIt Smart 7688 Duo). So you just need to connect power and you’re good to go.

Click to Enlarge

But NanoPi Duo’s board has no serial to USB chip, and the current firmware does not setup an access point by default, so I’ll need to connect a USB to TLL debug board too, as shown above. I then started minicom with 115200 8N1 configuration, and connected the board to one of the USB port of my computer for power, and the boot worked just fine.  See complete boot log for reference:

The system will autologin, and show a welcome boot message similar to what is found in Armbian build.

Let’s check some of the relevant info:

The image is based on Ubuntu 16.04.2 with a recent Linux 4.11.2 although apparently not updated with the latest patchsets found in Linux 4.11.12. The rootfs has been automatically resized at boot time so I have 5.9GB free on the partition, and 497MB RAM is accessible from Linux.

There are some useful pre-loaded modules for WiFi, USB mass storage, and IPv6:

Most people will want to use WiFi in this configuration (breadboard use), and nmtui text user interface is normally recommended, but the UI was really messy in the serial console, so I reverted to use nmcli instead as explained in the Wiki. First let’s list the network devices:

WiFi is disabled, so we’ll enable it and scan nearby routers:

I repeated the last command three times, but my main (2.4 GHz) router was not listed. So let’s attach a u.FL antenna…

Click to Enlarge

… to see if I can get a stronger signal for the already detected access points, and find my main router (CNX-TRANSLATION):

Success! I can now see CNX-TRANSLATION SSID, and CNX-SOFTWARE SSID signal is much stronger. However, I lost sonoff-office (which I did not plan to use).  We can connect to the access point of your choice as follows:

Oops. I did not work out as expected. Listing the access points again:

That’s crazy… All my APs are gone! But after persevering a few more times, I was finally able to connect and get an IP address:

We can now update the system to make sure it has the latest packages:

The board could download all the ~150 packages without issues, so once the connection is up it looks fairly stable. The update will take a while, so you may want to try a few other features of the firmware. For example, the company pre-installed NanoPi-Monitor, a fork of RPi-monitor, which allows you to monitor CPU and memory usage, temperature, up time, etc.. directly from a web browser via http://board_IP:8888.

Click to Enlarge

I was also be able to connect via SSH using either pi/pi or root/fa username and password.

The last step of this section of our tutorial is to control GPIOs. Since the board runs Linux 4.11, we may have hoped the new GPIO subsystem might be implemented, but lsgpio is not installed, and instead the company recommends to use WiringNP, a fork a WiringPi. It’s pre-installed, so we can use it right away to list GPIOs:

I’ve connected the LED to GPIOG11 (mapped to pin 16 in WiringNP), and it’s on by default, so let’s pull it down:

The LED turns off, and we can turn it back on with:

Let’s write blink.c to blink our LED every 500 ms: