Why a HTPC?
A HTPC (Home Theater PC) is generally an easy, affordable build if the primary purpose is to stream video (e.g. Netflix, etc.). Even if you are using something like a Roku, having a PC in the mix expands the functionality of your entertainment center and is not dependant on what kind of TV you have. One nice thing about a HTPC for streaming or light computer activities (versus a gaming rig) is that you can generally use HDMI out and not have to worry so much about the graphics card (or even the CPU for that matter). Just about any modern motherboard will work for you.
The driver for this project was the roll-out of Steam In-Home Streaming. The thought of being able to play my games on my big screen and just use a small HTPC as the front end was too good to be true! Plus I wanted to explore using XBMC (X-Box Media Center) and perhaps setting up a DVR for over-the-air broadcasts.
In the end it turned out that I use XBMC just about every day. The Steam streaming is cool, but I really have not had a chance to do much with it.
Depending on how much wood working you want to do, this can be an extremely safe Instructable. The main things are to allow for plenty of ventilation when painting, staining, etc.
However, if you are going to be using power tools (e.g. table saw, router, etc.), remember:
- Eye protection! You won’t enjoy your HTPC if you can’t see.
- Hearing protection! You won’t enjoy our HTPC if you can’t hear.
- Hand protection! You won’t be able to use your cool little QWERTY remote if you don’t have thumbs.
Step 1: Materials
After a little homework I found out about the ASRock AM1H-ITX motherboard and that it only needs a 19V external power supply. The specs are good enough to meet my needs for this build. So I went to PCPartPicker.com to help pick out the rest of the bits and pieces. That’s a convenient site to visit if you are doing any kind of a PC build. Here is what my PC build looks like (prices are approximate):
- Motherboard: ASRock AM1H-ITX – the magic in this little guy was 1) small mini-ITX footprint; and most importantly, 2) I could use an external 19 volt adaptor and not a regular PC power supply! - $60
- CPU: AMD Athlon 5350 2 Ghz - $60
- RAM: 4GB RAM – Crucial DDR3 - $35
- Hard drive: 120GB SSD – Corsair Force LS Series solid state drive - $75
- Power Supply – 90W/19V/4.74A - $15
- Keyboard – FAVI FE02RF-BL, 2.4GHz wireless mini keyboard - $30
- USB Hub/Card reader - $5
- Cables – Cat5, HDMI, etc. - $36
- Switches, LED lights – salvaged materials
- ¾” plywood Metal speaker grill
- Screws, nylon spacers, lamp cord channel, shrink wrap tubing
- Stain, polyurethane, flat black spray paint
Total cost (including misc items): $335
Step 2: Design and Software
For my machine, I wanted to get the basic functionality of a HTPC (e.g. quiet, wired network access, HDMI output, low power usage, etc.). Plus, as with everything else I do, I wanted to get the biggest bang for the buck (and keep it under $200-300).
When I stumbled across a motherboard that did not need a traditional power supply, I realized I did not need a traditional case. Since I did not need a case, I had more flexibility on how I housed this guy. Plus the entire noise issue seems to disappear when you do not have to use a regular PC power supply or worry about air flow in a case.
Aside from the power supply issue, minimizing the number of cables is something you probably want to consider. Keep in mind that HDMI cables also run audio. So if you use HDMI to connect the HTPC to your TV, then you don’t need to worry about RCA audio cables.
I happen to have a nice curved metal speaker grill that I salvaged from a guitar amp just waiting to be used for something. The grill seemed to be about the right size to cover the PC components. So I just decided to keep things simple (and cheap) and mount the PC on a board and use the metal grill as a cover.
Steam and XBMC were the main reasons I wanted to build this in the first place, so I only focused on getting those two loaded. After I got everything up and running, it also worked great as a browser, etc. You could lay out PowerPoint slides, Excel spreadsheets or type an email to your grandma on your 60” screen if you wanted to.
Step 3: Mounting Board
Mounting board layout
My “case” was essentially going to be a piece of plywood with a metal grill over it. One of the nice things about using wood is that it’s easy to process and you usually end up with something half-way decent looking.
- The mounting board needed to be thick enough to hide cables behind. So I used ¾” thick plywood.
- Using the grill dimensions as my starting point (9.25” x 11.75”), I made the mounting board about ½” wider than the grill on the top and sides. The bottom is 1” longer for the “control panel”. The final dimensions of the mounting board were 10.25” x 13.25”.
- I laid out the motherboard and hard drive to get an idea where to drill the access holes. I then drilled ¾” holes as needed. Similarly, I drilled the holes for the rest of the buttons and lights at this time.
- To have a place to hide the wires, I routed out a cavity in the back about 3/8” deep. I would have done a little more work in this area but my router happened to crap out on me while doing this.
- To finish up the woodworking part, I stained and polyurethaned the plywood. The grill was sprayed with flat black paint.
- I made the stand-offs for the grill using 2.5” threaded lamp rods covered in black shrink wrap. These turned out to be the perfect height so the grill could clear the CPU fan.
Step 4: Installing the Components (Lights, Switches and Motherboard)
Installing the components
Securing everything to the mounting board was pretty straightforward.
- I started with the buttons and lights. I put a little silicone sealant in the holes to help hold those items in place. The LED lights have a little collar on them – I used a step drill to drill in from the back so the light bulb end would have its little hole to peak through and the collar would have a bigger space to snuggle up in.
- I used black plastic spacers for the motherboard mounts. The black-headed screws were a little too big for the motherboard holes, so I had to drill the holes out a little.
- The solid state hard drive was super light and I used hook and loop fasteners for that.
- Prior to actually screwing everything down, I ran all the I/O cables and connected them to the motherboard. I probably should have had a bigger opening for the main access hole. Things got tight in there and even after I slimmed down the CAT5 cable, I still had to put things back in a certain order.
- Once all of that was completed, I worked on the back to secure and hide the cables.
Step 5: Installing the Components (Cabling)
More pictures relating to installing the components.
Step 6: Loading Windows/Testing
Getting Windows 7 installed took me longer than I would have expected. Between the solid state drive, different drivers for different SATA ports on the same motherboard, an external DVD drive to install Windows from, needing more USB 2.0 ports than I had and having to buy a newer service pack version of Win 7, it actually took me a few days to get Windows up and running.
But once I got all the drivers and Windows 7 going, the system proved to be very responsive.
Step 7: Mounting the Unit on the Wall
Mounting the unit on the wall
Now that I had the OS in place I was ready to mount everything in its new home. This part was relatively easy as the wall I was using opened up into the utility/laundry area. All I really needed to do is open up an access hole for the cabling.
- To secure the HTPC to the wall, I drilled a hole behind the SSD and screwed through the drywall that had an additional small piece of wood on the other side. Since the drive was only attached with Velcro, it was easy to put back in place.
- All the cables go through one big access hole in the wall.
- The USB hub/card reader is attached a little lower on the wall. The hub has a blue LED that is always on, so it actually works as a night light when all the lights are off in the basement. Having the hub mounted like that is probably a little wonky looking compared to what I did on the actual HTPC – but it turned out to be rather functional that way. In addition to the “night light”, it’s easy to hook up a gaming keyboard and mouse with the hub at that level.
- Once I attached the black grill, the wall mounting part was essentially done.
Step 8: Loading and Testing Steam/XBMC
Loading and Testing Steam/XBMC
With the HTPC in its final location, I then did the final loading of the Steam client and XBMC.
- Steam - Installing Steam is pretty non-eventful. Once all the Steam streaming stuff gets installed, you just need to start your game on the gaming PC and work on your settings from there. The main issue with streaming is that you MUST have a wired network connection – as is having a gigabit network. Since we have not used the streaming service that much, there’s not much I can say. It’s easy to get going, the game play is fun and you can get a decent frame rate. It’s funny, the Steam streaming service was the reason I started to think about doing this in the first place. But…
- XBMC! This is where I REALLY enjoy this thing. XBMC (X-Box Media Center) is outstanding! I won’t go into great detail about XBMC, but I will say that it opens up an entire new arena of streaming media options. Between XBMC and the Roku, I have no reason to leave home (except to go to work and get groceries on the way home). XBMC is very responsive on this system and the streaming has been outstanding. I don’t think I get 1080p very often, but 720 happens all the time.
Step 9: Remote Control
Getting the right remote is what makes or breaks a HTPC. I was using a keyboard/mouse originally because I was thinking I would only use this for Steam. But I found using a full sized keyboard and trying to use a mouse on the couch wasn’t happening for watching content with XBMC. Enter the FAVI Mini-Keyboard.
· FAVI FE02RF-BL Mini 2.4 GHz Wireless Keyboard – This one was about $30 on Amazon. This little guy has a full QWERTY keyboard and touchpad, backlit keys, great connectivity for my set up (about 10’ max between couch and receiver). I did have to move the USB receiver from the HTPC down to the USB hub to get the best reception (I wonder if the metal grill I’m using messed with the reception). The battery life is about 3-4 weeks before it needs recharging. It’s very easy to thumb type on this, great tactile feedback. Check out the on-line reviews on these. I definitely recommend getting one of these for a HTPC.
Step 10: Closing Thoughts and Next Steps
I’ve literally built dozens of PCs through the years of various conventional and odd-ball designs. This one is probably the most successful special purpose PC's I’ve done so far (from a design and performance standpoint). I haven’t even started exploring any DVR possibilities yet. I’ve been using this about 2 months now and here are some of my thoughts so far:
- The HTPC on the wall is a cool conversation piece. I’m very pleased with the aesthetics and functionality of the build.
- Performance is outstanding for HTPC use.
- There are ZERO issues with noise. You have to put your ear right up next to the fan to hear anything – and you don’t hear much.
- Video quality is as good as the source you are able to access.
- Audio is as good as your amp set up.
- XBMC is the greatest thing since sliced bread (and it’s free – you still have to pay for bread… even if it’s not sliced). This complements the Roku extremely well.
- The FAVI remote is a winner.
- Steam streaming gaming works, but it’s not super convenient when you are sitting on the couch. I’m waiting for the Steam controller before I make final judgment.
- I want to explore using this as a DVR for over-the-air (OTA) broadcasts. I can use my network attached storage, or just connect to another hard drive to store material.
- I would like to try something like this again with a Raspberry Pi for one of our other TVs. If I use a Pi, I think I would just Velcro it to the back of the TV though. The Pi could be another XBMC box, but also access the NAS (or whatever) for recorded OTA content. The problem with Pi is that it’s only a Linux box and that alone limits much of the functionality.
Please let me know if you see anything that needs corrections or clarification – or just let me know if you have a question. Thanks for looking!