OpenELEC on Braswell NUC
The Bay Trail NUC DN2820FYKH was a very popular starting point in the HTPC business, but it had a few shortcomings: it had only 4 execution units in the GPU and thus it was not able to perform proper upscaling and deinterlacing. This made the Bay Trail a poor choice for people who wanted to watch live TV on their HTPCs as TV streams are mostly interlaced. Actually, very recently the clever Linux developers have cracked the nut and found a way to make Bay Trail take care of interlacing properly.
However, we’re not here to talk about Bay Trail today. The Braswell NUC has the promise of being a perfect HTPC. It does not consume a lot of energy (think 10 watts max), it is small and quiet, and it has got the looks. There’s even infrared receiver integrated and what is very interesting for a lot of people, it can do HEVC decoding in hardware – something that the few months old Core i3 and i5 Broadwell models cannot despite being more expensive. It also supports 4K resolutions up to 3840×2160@30fps. This is the maximum resolution that can be supported using HDMI 1.4b interface. For 3840×2160@60fps you would need a device with HDMI 2.0 interface or DisplayPort 1.2. However, movies at 24p or 30p should be fine on the Braswell.
As the Braswell NUC is the cheapest Intel NUC with a price tag of only $124.99 / - / - I think it’s natural to pair this NUC with a free operating system. OpenELEC is an open-source project which is designed for one purpose – to run the Kodi media center application as smoothly as possibly. You can literally have a full media center running in 15 minutes with OpenELEC. I’m also going to install OpenELEC on the SD card and not on a hard drive – just to keep the costs down. Of course there won’t be much storage for media files, but for the storage you’ve got options: either you stream your content from a network drive (NAS) or you can install a 2.5 inch disk in this NUC. You could even connect an external USB drive.
The latest version of OpenELEC today is the OpenELEC 6.0 beta 3. However, if you want to use your NUC for 4K resolutions or HEVC decoding, you will need a development build that is available here. The functionality is very recently developed and has not found its way to the actual OpenELEC and Kodi distributions yet.
I used Win32DiskImager to write the OpenELEC disk image to a USB stick, plugged in the SD card and the USB stick on the NUC and rebooted the system from the USB stick. Installation was a breeze and after rebooting again without the USB stick, the system started from the SD card. It runs surprisingly fast from an SD card. I had a PNY Elite Performance card which is a rather fast option and extremely good value at the moment, but if you want a little bit more performance, get yourself a Sandisk Extreme Pro card that’s about as good as it gets as of July 2015. However, it does cost approximately twice as much as the PNY card does.
After installation, a few video playback related settings should be changed to optimal ones. Change the settings level to expert and make the following changes in the Kodi settings:
- Video – Playback – Adjust display refresh rate: On start/stop
- Video – Playback – Sync playback to display: Enabled
- Video – Acceleration – Render method: Auto detect
- Video – Acceleration – Enable HQ scalers for scalings above: 20%
- Video – Acceleration – Allow hardware acceleration – VDPAU: Disabled
- Video – Acceleration – Allow hardware acceleration – VAAPI: Enabled
- Video – Acceleration – Use Mpeg-2 VAAPI: Enabled
- Video – Acceleration – Use Mpeg-4 VAAPI: Enabled
- Video – Acceleration – Use VC-1 VAAPI: Enabled
- Video – Acceleration – Prefer VAAPI render method: Enabled
I also noticed that the WiFi was not working at all. After a bit of snooping around I found out that the firmware file for the Intel Wireless AC-3165 card was missing. This will be fixed in the coming versions of OpenELEC (probably already in the next beta version of OpenELEC 6.0 in the coming weeks), but in the mean time you can get your WiFi working by downloading the firmware file and placing it in /storage/.config/firmware: Copy the file to the box, open an SSH connection and locate your file. Then issue the following commands:
mkdir -p /storage/.config/firmware cp iwlwifi-7265D-13.ucode /storage/.config/firmware reboot
Now your WiFi adapter should be detected properly. I did not get Bluetooth working though. Unlike a few previous models, the infrared receiver works fine out of the box this time.
EDIT: As of August 24, 2015 the current OpenELEC version (5.95.4) supports the wireless adapter out of the box. Bluetooth works fine as well.
In general the Braswell NUC works as well with Kodi as you would expect. I paid extra attention to the upscaling and deinterlacing capabilities as those were the low points of the Bay Trail NUC last year. Much to my delight the low-end NUC of this year is able to handle deinterlacing using the GPUs inbuild Motion Adaptive Deinterlacing (MADI) and Motion Compensated Deinterlacing (MCDI) methods. MCDI gives you the better quality out of these two.
- Does it support proper 23.976 Hz refresh rate? Yes
- Can it decode full HD video at high bitrates? Yes
- Can it upscale SD video using lanczos3 algorhitm? Yes
- Can it deinterlace SD and HD video with advanced methods? Yes (MCDI)
- Does it run heavier skins like Aeon MQ5 ok? Yes
- Can it decode H.264 video at 4k resolutions 60 fps? Yes, with the development build
- Can it decode HEVC video at 4k resolutions? No, software support does not exist yet (EDIT: Support is here)
For 4K I tested H.264 encoded video both 4K at 30 frames per second and at 60 frames per second. CPU usage stays nicely around 20% on both cases and the video playback is smooth. As I have only a full HD television, the picture was obviously downscaled to 1920×1080 resolution after decoding.
HEVC Video Decoding
HEVC is the new video encoding standard that is expected to be used for pretty much any new application in the next few years. It’s the successor of the popular H.264 standard and sometimes mistakenly called as H.265. The video encoding algorithm used in HEVC is very computation intensive, which means that if you’re going to watch a HEVC video you will need a powerful CPU. Alternatively you can have specific hardware that will handle the decoding of the video leaving your CPU unused. In the case of Intel Braswell (and the coming Skylake) processors the graphics processing unit (GPU) has built-in capabilities for HEVC decoding. This means that your CPU will not be overloaded even if you watch a HEVC video and it can do some other things while the GPU takes care of the video decoding.
Now, to actually be able to enjoy HW decoding of HEVC you will need graphics drivers that do support this. For Intel the Intel VA-API driver version 1.6.0 released 1st of July includes HEVC decoding support for Braswell CPUs. So the operating system side of things is already covered. However, the video player application still needs to support this hardware decoding functionality that the driver offers. On Linux the most common video player software is called FFmpeg. This is the player that Kodi uses, for example. FFmpeg, as of July 2015, does not support HW decoding of HEVC yet on Intel GPUs. This means that if you play a HEVC video, all the number crunching is done on your CPU and in case of Braswell NUC this CPU is a not very powerful one. In my tests a 1080p 60 fps HEVC video with a 2.5 Mbps bitstream was too much for the CPU.
So, as OpenELEC is a Linux distribution it does not support HEVC decoding on hardware. I’m certain that we will see the support being added to FFmpeg, but the question is when. My (gu)estimation would be before the end of the year. I will definitely write another article when that happens.
EDIT: HEVC decoding support in Linux has taken a step forward! Read more. Also the current OpenELEC development build linked above does support hardware accelerated HEVC decoding on Braswell.
EDIT: Very experimental HEVC support is available now. I’ll update the conclusion chapter when the HEVC decoding is a bit more mature.
So is it the perfect budget HTPC? Well, the answer is – for me, not yet. However, I believe that in the nearby future I can revise this statement. It does everything that its predecessor does and a lot more, but the lack of working HEVC support in Linux is still a bit of a letdown. Of course there’s nothing that’s specifically down to Intel as their drivers already offer the support. As we saw in the previous chapter when we tested it in Windows 8.1, the hardware definitely is capable of decoding HEVC at 4K@30fps. Is it capable of doing that at 60 frames per second? So far it looks like it is not, but the drivers are in their early stages still, so who knows really.
Another interesting question is, how much more capable is the sister product NUC5PPYH that costs only $50 / €50 more than this (EDIT: read the answer in our review)? The NUC5PPYH is in every other aspect totally identical, but it contains a Intel Braswell N3700 processor that is also branded as a Pentium processor whereas the N3050 in the NUC5CPYH is branded as Celeron. In reality it’s a quad core version of the same N3000 CPU series that the dual-core N3050 also belongs to. However, for HTPC use the amount of cores in the CPU is not that interesting as the N3050 already does everything that’s needed with reserves. But the interesting thing is that the N3700 has 16 execution units in the GPU instead of 12 in the N3050. This might be enough to HW decode a 4K video at 60 fps, but that remains to be seen.
Despite the lack of working HEVC decoding in Linux I’m still really positive about the HTPC potential of this NUC. When the FFmpeg HW decoding and working BlueTooth support are introduced it’s pretty much perfect. And I expect both of them rather sooner than later (think during 2015 still). The only things that I could want more are HDMI 2.0/DisplayPort connector to enable 60 fps 4K video and the HDMI-CEC functionality.
If you’re interested in one, our resident guru, the NUC Guru can assist you in choosing the parts that will work nicely together and give you a shopping list with exact listing.
Recommended Setup for OpenELEC Users
Cheap but cheerful
This is assuming that you don’t have significant storage needs in the NUC itself, but instead stream from the net or a NAS. If you need more storage space, customize your own NUC with the help of NUC Guru.
Read the other parts of our NUC5CPYH review