Zotac ZBOX Nano AD10
- AMD Fusion E-350 CPU (1,6 GHz)
- Corsair 4 GB DDR3 1333 MHz SO-DIMM
- AMD Radeon HD 6310 GPU
- Seagate Momentus 250 GB S-ATA HD
- cardreader (supporting SD, MemoryStick, ea.)
- 2x USB 3.0
- 2x USB 2.0
- USB CEC adapter - by PulseEight. Easily my best hardware purchase of 2014 already.
Due to my new HTPC not being able to handle audio over HDMI on the command line for now (and probably for the forseeable future), I repurposed this box as a dedicated MPD server, until I'm crazy enough to shell out some money for an even more power efficient replacement. Since none of the ARM boxes really has an on/off button or ACPI support, ARM is not really an option (I want a clean shutdown and powerup by pushing a start button).
For easy swapping between the OpenELEC installation and my MPD setup, I decided to use an SD card for the MPD server. Now that this box solely runs Debian with MPD, I moved the OS to a Sandisk USB 3 stick, which makes it noticeably snappier.
Setting up Debian Jessie with MPD is fairly easy, the footprint is rather low; the total x86_64 Jessie install clocks in at less than 700 MB with all tidbits installed. I have applied some tweaks though to trim down the installation. I also implemented some crude form of powersaving that shuts down the system when no music has been played for a while. Music is served from my server over NFS v4. I had to add
consoleblank=0 to the kernel command line to stop the audio from cutting off after 10 minutes - the audio output gets cut off when the HDMI output blanks. Sysvinit could manipulate this through kbd, but systemd can't (or won't). So with Debian moving to systemd, I had to look for an alternative solution. Systemd's parallellised boot also means it tries to bring up the NFS share before the network is fully configured (I wonder more and more what makes systemd so special, since as an end user you don't seem to see much of it). To make sure systemd waits for the network interface to come up before attempting to mount network file systems, run this:
$ sudo systemctl enable systemd-networkd-wait-online.service
The original setup was on a Raspberry Pi with NFS v3, but the server-side read settings seemed to be causing regular buffer underruns in ALSA. So after some testing and tweaking, I found a read size of 8192 to be the best, combined with a connection over UDP. Your mileage may vary of course, but in case you're looking for a similar setup, check your NFS setup if you get playback hiccups. According to nfsstats, there were no dropped packages etc., so it didn't provide any clues.
Like my other boxes this system had been running Arch Linux with my own XBMC build. Since my aim was to minimise time spent on maintenance and setup of my personal systems, I replaced it with OpenELEC. Despite the tedious upgrade process (it is recommended to wipe your settings between major upgrades) OpenELEC provides a very functional HTPC experience out of the box, although I found the default remote layout to be a bit quirky; but that's probably a personal preference. HDMI audio (which often is still an issue on Linux setups) works without problems. Another pre is OpenELEC comes with software CEC support out of the box, although I suspect most Linux distros compile XBMC with it nowadays.
For easier upgrading, I used to export my local database before upgrading, but with a MySQL database, all you need to do is re-add your sources, set their content, cancel the scan when prompted, and point XBMC to the MySQL database (from 13.0 (Gotham) on, XBMC also supports and takes care of sharing artwork).
Media are streamed over NFS from my server. One can run OpenELEC off an SD card - it will barely impact the responsiveness of the setup.
USB CEC adapter
CEC (Consumer Electronics Control) is part of the HDMI spec. As such, most TV and Blu-Ray players support CEC out of the box. This is not the case however for regular PCs or motherboards sporting a HDMI out; that's where the USB adapter comes in. Basically, CEC allows you to use your TV's remote to control your connected devices. This ranges from a simple TV/Blu-Ray player setup to a TV - receiver - HTPC / Blu-Ray player, ... configuration. CEC works wonders: now, I have dumped my Logitech Harmony 'smart' remote and reinstated my TV remote to its rightful position. I turn on my HTPC, and once XBMC gets loaded, it will wake the TV and receiver from standby and configure both to the right input channels. When you press the shutdown button on your remote, it will shut down your HTPC (depends on how you configure the CEC settings inside XBMC) and put your TV and receiver on standby. For 40 EUR including shipping, I'd say it's one hell of a bargain.
Power consumption (XBMC/OpenELEC)
Power consumption is pretty impressive - here a few values measured with a Voltcraft Energy Logger 4000, a consumer device generally regarded as being pretty reliable (although that gets more problematic at the lower end of the power consumption spectrum). The WLAN/Bluetooth mini PCI-E card has been removed since I do not need it (streaming is done over LAN). Values were as follows, with Aeon Nox 3.x (a heavy skin), and the HD spinning down after 10 minutes.
- XBMC home screen: 11,3-13W
- Screen saver active (simple black screen): 10,2-10,4W
- Scrolling through media (display mode: low list): 18,8-20,5W
- 1080p VC-1 playback Elephant's Dream: 15,5-16,4W
- 720p h.264 playback: 14,2-14,8W
- Standby: 0,4W
The fan noise is barely audible. If you are watching a movie or listening to music, there is no way you will notice it, even at lower volume.Updated: 2014-12-08