Tuesday, August 31, 2010

Lian Li PC-Q07 mini-itx-case review

This blog has been moved to http://doityourselfhtpc.com/.

Today I'll be reviewing the Lian Li PC-Q07 mini-ITX case. I picked it up this week to install my Core i3 CPU, but unfortunately, the Gigabyte H55 mini-ITX motherboard that I ordered turned out to be a micro-ATX board (wanted the GigaByte GA-H55N-USB3 but received the GA-H55M-USB3 - bummer).

Anywayz, the only mini-ITX board I had lying around was the Asus AT3IONT-I (Deluxe version), so we'll be using that board to test the case.

The case itself came in the following little box.

The case takes up the entire box, and the few accessories that comes with the case are included in the case itself.


After opening it up, we get to see the beautifull Lian Li PC-Q07 in the flesh. A friend of mine remarked that it resembled of a post office box. It's a tall cube-like case, but very small, and very nice looking.

One of the first things I noticed about the case is how light it is. It's made out of aluminum, and is probably one of the lightest cases I ever worked with. It feels very sturdy however, and you can see a lot of work has gone into the design and finishing of the case.

The main entry-point into the case is the right-hand panel. Removing the 6 screws allows you to remove the right panel, where a mini-ITX board can be fitted.

Looking from the rear, we see sufficient ventillation holes, and a spare for the motherboard I/O panel, and the ATX size PSU.

On the top you can also see the 5.25inch drive bay where we'll be installing a blu-ray player. (the only component that will actually make some noise in the case).

A view from the right shows the 5.25 optical drive bay. There is a 3 inch drive bay located at the bottom of the case, that also accepts 2.5inch drives.

Here's a closer look at the drive bay located at the bottom of the case. I've fitted it here with a Kingston SSD.

Fitting the hard drive was done by using 4 screws at the bottom of the case.

Removing the 5.25 cover involved pushing in the sides from the insides, and sliding it out.

The motherboard is fitted onto the side panel. Just fasten it with 4 screws and your good to go.

 Attaching the side panel (with the motherboard attached) was done with little effort. Obviously, as I'm not using an internal PSU in this case, this leaves me with a gaping whole at the back of the case.

All that's left now is closing off the case completely.

Plenty of room left in the case for air flow :)


I was surprised by the quality and lightness of the case, especially given its pricing ... For my particular purpose, building a passively cooled HTCP, the case did it's job. The cube shaped box can be put somewhere where people actually see it. (my previous cube case was an Antec ISK 3420 that wouldn't win a lot of beauty contests.).

Monday, August 30, 2010

ASUS AT3IONT-I Deluxe Review

This blog has been moved to http://doityourselfhtpc.com/.
Most custom HTCP builds are probably based on the Intel Atom/Nvidia Ion combo. The fact that it's a cheap solution , widely available and supported allows it to act as a key enabler for such Atom/Ion based HTCP custom builds. However, in order to achieve the full HTCP experience, where you can enjoy key additional benefits such as :
  • Hooking up a remote control
  • Have low power consumption
  • Emit low or even no noise
  • Wireless LAN & Bluetooth
takes some additional effort to put into place. It's easy to start with off with an Atom/ION board, but in addition to that there are a lot of other pieces of the HTCP puzzle that we need to fill in. Thus people end up buying additional components to hook up to their Atom board, adding to the cost, and the potential issue of having components that don't work all that well together.

Asus has tried to address this issue with the Asus AT3IonT-I Deluxe. It's a complete package, not only offering the Intel Atom/Nvidia Ion motherboard, but additional features like remote control, onboard DC/DC converter (eliminating the need for a PSU), WiFi , Bluetooth and perhaps most importantly, a complete passively cooled system. For completing your build, all you need is a case, some memory and storage, and your good to go.

The ASUS AT3IonT-I Deluxe package
When looking at the sheer size of the package, one can already tell that it is feature packed, and that all these necessary goodies are included for having a nice custom HTCP build.

The package includes
  • The motherboard
  • AC/DC power adapter + chord
  • WLAN antenna
  • Remote control (including batteries)
  • USB based remote control receiver
  • 2 SATA cables
  • IO shield
  • User manual + driver CD

A closer look at the motherboard
When looking at the board, the first thing you'll notice is the large blue heatsink with the Asus logo on it.

Underneath is the Dual Core Atom 330 CPU, and the Nvidia Ion GPU. The heatsink will be responsible for dissipating the heat coming from these 2 components.

When comparing the size and structure of the heatsink above with the older AT3N7A-I Atom/Ion board from Asus, you can see that the AT3IONT-I is more designed for full passive use :

Moving to the I/O panel of the board, you'll see that the board has all the connectors you would expect for an HTCP build.

From left right on the IO panel you'll see :
  • DC Power input port
  • WLAN/WIFI Antenna port (802.11n)
  • PS/2 keyboard connector
  • VGA
  • HDMI
  • Optical S/PDIF out
  • Bluetooth module
  • 2x USB
  • Gigabit ethernet LAN (RJ-45)
  • 2x USB
  • RCA out ports (left/right)
  • Analog line in / line out / microphone
A very interesting feature from this combo is that there is a built-in DC/DC converter on the board, meaning you don't need a seperate internal PSU in the case, but rather use the provided AC/DC power adapter provided by Asus. This hooks in directly through the motherboard via the I/O panel, providing enough power to the board for overall operation.

The motherboard can accept 2 modules of DDR3 RAM. If you're someone like me who still has some DDR2 sticks lying around, this actually turned out to be a negative, as I had to buy an additional 2GB DDR3 module now :)

The board also has 4 Serial-ATA (SATA) ports, meaning you can hook up to 4 devices on this board. I'll only be using 1 SSD for storage, and a blu-ray player for HD video playback.

A molex connector is also provided on the board, and combined with the provided power chord allows you to power up to 3 devices. As there is no internal PSU in the case, the board will now need to power any additional devices (SSD, blu-ray player).

To conclude, on the board we also have the WLAN card, and the Bluetooth module sticking out of the I/O panel

Remote control

The Asus remote control works out of the box in Ubuntu 10.04. You can use it to control your XBMC environment. Some keys weren't working (return / home key) in XBMC, but I'm sure they can be assigned by configuring the key mappings appropriately.

Test setup

The Asus board was fitted into a Lian-Li PC-Q07 case, with no case-fans attached. The case provides room for fitting an internal PSU, but no internal PSU will be used. As already stated, the provided AC/DC adapter will provide the power to the Asus mainboard. This leaves additional room in the case for heat dissipation.

Ubuntu 10.04 and Windows 7 were used for testing. XBMC was used as the main media player for the system.

The Asus board is a fairly complete system as it offers you :
  • Embedded CPU (Atom 330 dual core CPU)
  • Embedded Graphics (Nvidia Ion)
  • WIFI / Bluetooth / Gigabit LAN
  • DC Power port (using the Asus power brick, there's no need for an internal PSU)
This leaves us with the following additional components to complete the build :
  • DDR3 Memory (A single 2GB DDR3 module was used)
  • Storage (A Kingston SSD module was used)
  • Optical drive (A lite-on blu-ray player was used)
All in all a very simple build due to the complete package that Asus provides with this one. An additional benefit is that we can assume that all of these components will work nicely together.

Power Consumption and Temperatures
Initial temperatures 
When booting the machines, initial temperatures were

CPU temperature26
GPU temperature31
Mainboard temperature25

This was in a room  with an ambient temperature of around 25 degrees celcius. After about 40 minutes into operation, temperatures stabilized with the following numbers

CPU temperature50
GPU temperature60
Mainboard temperature39

During this period, the computer was sitting idle at the gnome desktop.

Under normal load, they never exceeded these temperatures.

Temperatures while decoding 1080p video content

While decoding 1080p High Definition video content using XBMC in Ubuntu, GPU temperatures maxed out at around 70 degrees C. The CPU temperatures remained below the 60 degree C mark.

CPU temperature55
GPU temperature67
Mainboard temperature41

Temperatures were measured using the following shell script in Ubuntu

gpuTemp=`nvidia-settings -c :0 -tq GPUCoreTemp`
cpuTemp=$(echo `sensors | grep "CPU Temperature"`|awk '{print substr($0,19,2)}')
mbTemp=$(echo `sensors | grep "MB Temperature"`|awk '{print substr($0,18,2)}')
echo `date`,${gpuTemp},${cpuTemp},${mbTemp} >> $output

This script was put in the crontab (type crontab -e to load up the crontab editor), and is scheduled for execution every minute.
*/1 * * * * /home/asus-ion/monitor_temp.sh
That way, we can build up historical data including the 3 major temperature categories (CPU,GPU,mainboard) and import it in a spreadsheet.

For more information on Cron, checkout the Cron HOWTO on the Ubuntu community site

It took about 40 minutes into the 1080p decoding to push the GPU to 69 degrees. It never got above that. It took roughly the same time to get the GPU back to the 60 degree mark.

Keep in mind that this is a completely passively cooled system emitting zero noise.

Power consumption

The system consumed 44 Watts during 1080p video decoding. Under normal load, it was consuming around 36 Watts.

One strange thing that I noticed was that the power brick is always consuming around 20 watts, even when nothing is connected to it, or the system is in sleep mode.

With all other power adapters I have lying around the house, this isn't the case.... I can imagine some ineffecienty, but 21 watts does seem like an awfull lot.

I would have to say I'm pretty impressed with the overall system. Asus have provided a great package here that simplifies your build in terms of gathering the necessary components to complete your HTCP build. By providing the power adapter, remote control , WLAN, bluetooth and passive cooling all in one box, builders will have an easy time assembling this. With the right case, this results in a build that is more then capable of playing your favorite HD content, while maintaining low power consumption, and zero noise emission.

Monday, August 23, 2010

Installing XBMC on AsRock ION 330 HT with Ubuntu 10.04

This blog has been moved to http://doityourselfhtpc.com/.
ASRock box
Today I installed my AsRock ION box (after it sitting in some desk for 6 months). For those of you who don't know the AsRock ION, it's a tiny desktop PC driven by an Intel Atom CPU, and featuring an Nvidia Ion graphical chip. Although the Atom CPU is considered slow, the Nvidia Ion chipset more then makes up for that when watching high definition, 1080p video content. The Ion chip basically offloads whatever CPU processing would be required to decode the video content. As such, the GPU takes over all the work, and we're not really bothered with the fact that the Intel Atom is slow.

When I initially bought it there were issues with the infra-red remote when using Linux. As I wanted to use it as an HTCP, and could only get the Nvidia Ion GPU acceleration when using Linux, I didn't really bother with it anymore.

Luckily, in the meantime, AsRock have provided drivers for the latest Ubuntu 10.04, providing full support for the IR receiver through lirc, so I dediced to go ahead with it. What I thought would be a breeze turned out to be a bit more difficult.

On the hardware front, things were looking good. I bought the barebone version, excluding the hard drive and the RAM.

ASRock components

I still had a 2.5inch external hard drive that I wasn't using anymore, so I stripped it down, and used it in my ASRock.

Stripping my external HD

So I ended up with the following additional parts to complete the build :

2.5 hard drive and 2 GB SO-DIMM

The initial goals are :
  • Installing a suiteable OS on the AsRock
  • Having network (wired + wireless) up & running
  • Installing XBMC
  • Ensuring GPU acceleration is enalbed
  • Ensuring the remote control works properly
  • Ensuring audio over HDMI is working properly
  • Being able to play 1080p High Definition video
  • Being able to suspend / resume the machine using the remote control
  • Configuring Ubuntu in 'XBMC' mode

Installing a suitable OS on the AsRock

I installed Ubuntu after burning the standard desktop edition ISO to a CD. Installing it on the AsRock was simply next-next-next-finish, and after a while it booted into the Gnome Desktop. Another option off course is to through the XBMC Live CD.

Having network (wired + wireless) up & running

Both the wireless card as the wired controller were discovered by Ubuntu, however, the wired connection wasn't working initially. I wasn't able to get an IP address from my router (while the wireless connection worked fine after providing the WPA2 password).

In an attempt to solve the problem, I added the following in my /etc/network/interfaces file :

auto eth0
iface eth0 inet dhcp

After a reboot however, while I now got an IP address from my router, the connection was "unmanaged". There was no way to view or configure eth0 in Unbuntu anymore. After some googling, I had to change the managed property to true in /etc/NetworkManager/nm-system-settings.conf


Installing XBMC
After making sure my Ubuntu was updated with the newest features, all I needed to do was execute the following commands in order to get my xbmc setup :

sudo apt-get install python-software-properties pkg-config
sudo add-apt-repository ppa:team-xbmc
sudo apt-get update
sudo apt-get install xbmc xbmc-standalone
sudo apt-get install libvdpau1 nvidia-185-libvdpau

Starting Xbmc

When starting xbmc, I was prompted with the following dialog :
<put opengl error here>

Ensuring GPU acceleration is enabled
When installing Ubuntu, the Nvidia X Drivers were installed but not being used. I had to execute the following command to get them working :


After a reboot, the nvidia drivers were properly initialized.

XMBC could be started using the xbmc command. XBMC starts in full-screen mode. If you want to start XBMC in windowed mode, just tap the backslash key (\) to run it in windowed mode.

Setting up the Remote

I had very high hopes for the remote, as I friend of mine (who bought the ASRock Ion HT at the same time I did) was struggeling at first to get the remote up & running. A lack of driver support for the IR receiver caused him to run without a remote for a while. However, with the latest XMBC live release, everything was running smooth. And indeed, when going to the ASRock site, IR drivers (both 32 and 64 bit) for Ubuntu 10.04 were indeed available.

So, to continue, I copied the CIR receiver driver for Ubuntu 10.04 32/64bit new kernel ver:1.0.4 from the ASrock site.

Direct download can be found at http://europe.asrock.com/downloadsite/drivers/Nettop/Ubuntu/IR(10.04)kernel2.6.32-23.zip

AsRock provides a PDF that guides you through the installation. However, this didn't really work out for me.

Installing the ASRock IRC drivers

This is done using the following command :
sudo dpkg -i lirc-nct677x-x64-1.0.4-ubuntu10.04_kernel2.6.32-23.deb 
However, I ran into some issues here as apparently lirc was not correctly installed.

Selecting previously deselected package lirc-nct677x-x64.
(Reading database ... 145522 files and directories currently installed.)
Unpacking lirc-nct677x-x64 (from lirc-nct677x-x64-1.0.4-ubuntu10.04_kernel2.6.32-23.deb) ...
dpkg: dependency problems prevent configuration of lirc-nct677x-x64:
 lirc-nct677x-x64 depends on lirc (>= 0.8.6-0ubuntu2); however:
  Package lirc is not installed.
dpkg: error processing lirc-nct677x-x64 (--install):
 dependency problems - leaving unconfigured
Errors were encountered while processing:

When I tried installed lirc, I ran into a second issue (unmet dependencies) :

sudo apt-get install lirc

Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run `apt-get -f install' to correct these:
The following packages have unmet dependencies:
  lirc: Depends: libftdi1 (>= 0.17) but it is not going to be installed
        Depends: setserial but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
As suggested by ubuntu, apt-get -f install solved the issue and I was able to continue :

ubuntu10.04_kernel2.6.32-23$ sudo apt-get -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following extra packages will be installed:
  libftdi1 lirc setserial
Suggested packages:
  lirc-modules-source lirc-x
The following NEW packages will be installed:
  libftdi1 lirc setserial
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
Need to get 658kB of archives.
After this operation, 2,839kB of additional disk space will be used.
Do you want to continue [Y/n]? 

After this was finished, the command below (that we started off with) worked).

sudo dpkg -i lirc-nct677x-x64-1.0.4-ubuntu10.04_kernel2.6.32-23.deb

By executing the command above, you'll get the lirc configuration screens, you'll see the Nuvoton Transceivers / Remotes the second time the screen pops. (the first time, it doesn't show up in the list).

More info can be found here : http://forum.xbmc.org/showpost.php?p=462925&postcount=62

However, after a reboot, a quick peek in dmesg showed me the following :

dmesg | grep lirc
[    6.018537] lirc_dev: IR Remote Control driver registered, major 61 
[    6.090735] lirc_wb677: disagrees about version of symbol lirc_register_driver
[    6.090746] lirc_wb677: Unknown symbol lirc_register_driver

This appears to be a bug described in ubuntu launchpad.

The workaround involves executing the following commands to get the remote up & running.

sudo aptitude install lirc-modules-source
sudo dpkg -i lirc-nct677x-src-1.0.4-ubuntu9.10.deb lirc-nct677x-1.0.4-ubuntu9.10.deb
cd /tmp
sudo apt-get install dpkg-dev
sudo apt-get install pgp
sudo apt-get source lirc-modules-source
sudo apt-get build-dep lirc-modules-source
cd lirc-0.8.6/
vi debian/patches/series
sudo dpkg -i ../lirc-modules-source_0.8.6-0ubuntu4.1_all.deb 
sudo dkms remove -m lirc-nct677x-src -v 1.0.4-ubuntu9.10 --all
sudo dkms add -m lirc-nct677x-src -v 1.0.4-ubuntu9.10
sudo dkms build -m lirc-nct677x-src -v 1.0.4-ubuntu9.10
sudo dkms install -m lirc-nct677x-src -v 1.0.4-ubuntu9.10

After executing these commands, the IR remote on the AsRock was working fine.
asrock@asrock-desktop:~/Downloads$ dmesg | grep lirc
[   16.862456] lirc_dev: IR Remote Control driver registered, major 61 
[   16.946345] lirc_wb677 w677hga: chip id high: 0xb4
[   16.946361] lirc_wb677 w677hga: chip id low: 0x73 expect:0x73
[   16.947528] lirc_dev: lirc_register_driver: sample_rate: 0
This was verified using the irw command
asrock@asrock-desktop:~/Downloads$ irw
000000037ff07bfe 00 One mceusb
000000037ff07bfe 01 One mceusb
000000037ff07bfe 02 One mceusb
000000037ff07bfd 00 Two mceusb
000000037ff07bfd 01 Two mceusb
000000037ff07bfc 00 Three mceusb
000000037ff07bfc 01 Three mceusb
000000037ff07bfb 00 Four mceusb
000000037ff07bfb 01 Four mceusb
000000037ff07bfa 00 Five mceusb
000000037ff07bf9 00 Six mceusb
000000037ff07bf9 01 Six mceusb
000000037ff07bf9 02 Six mceusb
000000037ff07be6 00 Stop mceusb
000000037ff07be6 01 Stop mceusb
000000037ff07be6 02 Stop mceusb
000000037ff07be9 00 Play mceusb
000000037ff07be9 01 Play mceusb
000000037ff07be5 00 Skip mceusb
000000037ff07be5 01 Skip mceusb
000000037ff07be5 02 Skip mceusb
000000037ff07be4 00 Replay mceusb
000000037ff07be4 01 Replay mceusb
000000037ff07be4 02 Replay mceusb
And it was working fine in XBMC as well.

Ensuring audio over HDMI is working properly

When playing the first movie in xbmc, there was no sound coming out of the HDMI connection. My AsRock is connected via HDMI to an Onkyo receiver for audio, passing on video via HDMI to my television.

In terms of configuring XBMC, just make sure the following is set in Settings - System - Audio output :
  • Audio Output : digital
  • Dolby Digital (AC3) Capable Receiver : Y
  • DTS Capable Receiver : Y
  • Audio output device : HDMI
  • Passthrough output device : HDMI
After applying these settings however, no sound was coming from the receiver.

The hardware side of things seems to be ok, as can be seen from the following command (notice the lowercase l argument)
asrock@asrock-desktop:~/Downloads$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: NVidia [HDA NVidia], device 0: ALC889A Analog [ALC889A Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 1: ALC889A Digital [ALC889A Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 3: NVIDIA HDMI [NVIDIA HDMI]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
The Nvidia HDMI audio output was properly detected.
asrock@asrock-desktop:~/Downloads$ aplay -L
    Discard all samples (playback) or generate zero samples (capture)
    Playback/recording through the PulseAudio sound server
    HDA NVidia, ALC889A Analog
    Front speakers
    HDA NVidia, ALC889A Analog
    4.0 Surround output to Front and Rear speakers
    HDA NVidia, ALC889A Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
    HDA NVidia, ALC889A Analog
    5.0 Surround output to Front, Center and Rear speakers
    HDA NVidia, ALC889A Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
    HDA NVidia, ALC889A Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
    HDA NVidia, ALC889A Digital
    IEC958 (S/PDIF) Digital Audio Output
    HDMI Audio Output

It seems that the SPDIF/1 output in Ubuntu 10.04 is muted by default, as can be seen in the following screenshot coming from alsamixer.

Un-muting the SPDIF/1 connection (by navigating to the right, selected SPDIF/1, and pressing the M button) was the key to getting audio working over HDMI. I was now able to hear DTS 5.1 sound passed over HDMI, onto my speakers connected to the Onkyo receiver.

References :