XBMC + XBox + HTPC = XBMCBox. Part 1 – Hardware
This is the follow up article to my earlier post. This article is probably several months late as I have to deal with a busy workload plus I have something better to do when I am not working 🙂 But I sorta wanted to conclude this series before I lost interest in blogging this. This will be a long post and I will discuss how my XBMCBox is being built. This is not intended to be an exhaustive how-to or anything close but rather, this is a way for me to document my experience in building something that I am enjoying right now. The entire build took me a fairly long time. However, most of the time is to wait for cables/connectors to come from eBay. It is an enjoyable experience for me and hopefully people will find this entertaining, if not helpful.
Here’s a quick shot of my current HTPC setup. I don’t have an expensive AV receiver and high end speakers. Just a humble XBMCBox and a pair of Creative T40 Series II speakers. The XBMCBox is underneath the TV to the right of the cabinet.
My criteria of a good HTPC/media player is:
1. Price. It has to be reasonably affordable. But I also do not want to sacrifice quality for price.
2. Video Playback Performance. It has to be able to play ALL the media files that I have, plus whatever blurays format I can throw at it. It must support the connection to a future AV receiver (I don’t currently have one) and must not lag in any noticeable way.
3. Overall System Responsiveness. It must be snappy. Capable of bluray video playback is not enough for me. I want the user interface of the operating system snappy too. Nothing annoys me more than a system lag in the user interface.
4. Gaming Performance. I don’t game a lot these days. But when I do, the system should be capable of running some of these games at least at a reduced resolution and frame rate without noticeable lag. I don’t really need a 1920 x 1080 30FPS gaming machine.
5. Energy Consumption. This is a no brainer. No one loves to watch movies using a PC chewing up 400w of power. On second thought…maybe there are people like that…but I am sure I am not one of them.
Hardware Platform – Intel vs AMD
These 2 techno giants have been competing with one another for more than 20 years and there are loyal fans on either side of the fence. Personally I have always used Intel CPU although I have nothing against AMD. No matter whether one chooses Intel or AMD, it is important to realize that any CPU and any computer hardware will become obsolete very quickly. I wanted my XBMCBox to last a few years so when I set out to assemble the XBMCBox, I have to do some homework to make sure that I will not be making the wrong choice. At the time when I have the idea of building the XBMCBox, the AMD FM2 platform stood out for me. The CPU is a lot cheaper, the motherboard relatively inexpensive, the overall system has sufficient CPU grunt to handle the load and at the same time, the system runs with low power consumption. Seems ideal for me.
Thermal Design Power (TDP)
At the time I am building the machine, there are only four AMD FM2 CPUs that I can choose for the FM2 platform – the A4-5300, A6-5400K, A8-5600K and the A10-5800K. There are obviously more choices now (being the newer A4-4000, A6-6400K, A806600K and A10-6800K). I disqualified the A8 and A10 series because the A8 and A10 CPU both have a TDP of 100W whereas the A4 and A6 series both have a TDP of 65W.
The TDP refers to the Thermal Design Power of the CPU. Wikipedia’s explanation of Thermal Design Power is that this “refers to the maximum amount of power the cooling system in a computer is required to dissipate. The TDP is typically not the most power the chip could ever draw, such as by a power virus, but rather the maximum power that it would draw when running “real applications”. This ensures the computer will be able to handle essentially all applications without exceeding its thermal envelope, or requiring a cooling system for the maximum theoretical power (which would cost more but in favor of extra headroom for processing power).”
Obviously the A8 and A10 will have a lot better performance than the A4 and A6 series but like I said, I am not really a gamer, and having a powerful CPU does not always win for me….plus a CPU that draws more power means a bigger power supply…but more of that later.
AMD A4 vs A6 CPU
I have to make a choice between the A4-5300 and the A6-5400K. This is a no brainer as the price between these 2 CPUs is so little that I really could not tell myself to save a few bucks to go for the A4. The A6-5400K being a “K” series CPU, allows you to overclock the CPU as the cpu multiplier is not locked in anyway (not that I wanted to overclock but why have this limit in a new hardware). The A4-5300 has a locked multiplier in contrast. The choice is really a no brainer.
Selecting a motherboard is a bit more challenging. FM2 motherboards are a lot more scarce than intel 1155 platform at the time I am building the box. I have to choose a motherboard which I can fit into the original XBox and so that makes the selection even more difficult. I measured the XBox dimension and figured that I can only squeeze in a motherboard no larger than approximately 23cm x 18cm. I have to allow some space for other components too. So that means I am limited to the Mini-ITX motherboard or at best a Micro-ATX motherboard if I can find one. I had my eyes on the ASRock FM2A75-ITX but after reading about some cases of this motherboard being easily burnt out (some say the motherboard caught fire!), I settled on the MSI A55-E33 Micro-ATX motherboard for a better peace of mind,. This is just as well, as this motherboard has a dimension of 22.6 cm x 17.3 cm. Quite a perfect fit for the original XBox chassis. Obviously a Mini-ITX one will be even better but I could not find what I really wanted at that time.
This is easy. Snap in a 4GB of RAM and be done with it. No need to debate whether 2GB is sufficient for a HTPC or whether to go for 8GB instead. Start with 4GB and if the need arises, expand to 8GB as required. I used a G.Skill 1600Mhz ram.
Storage option is very dependent on the type of operating system the HTPC is running. A USB stick is all you will need if you run OpenELEC but you will need a faster/bigger storage if the system runs window/linux. I decided to go with Windows 7 for my built and I decided to spend a little more to get a SSD for it. A 2.5″ hard drive would be sufficient but I think the SSD will complement this project a lot better. A 30GB SSD would be sufficient for my needs but at the time of building, the smallest SSD I can find is a 60GB Kingston V300 or a 64GB Sandisk (not the “Extreme” version). Add a little bit extra will land me a 120GB Sandisk Extreme SSD so I think this gives me a lot more bang for the buck (plus I can re-use this SSD if I decided to retire the XBMCBox one day).
I am not looking forward to put in a normal computer power supply into the box. I find most computer power supplies noisy with their fan running, are bulky, and quickly becomes dusty if not cleaned regularly. There are fanless power supplies that you can buy but these are also bigger in form factor (as it is now passively cooled and not fan cooled). There are also power supplies which have silent fans. The choices are out there. I don’t have a lot of room inside the XBox chassis to play with and I do not want to cut out the chassis to squeeze the power supply into the box. So I decided to go with the Pico fanless power supply. Johnnyguru did a review of a Pico power supply. It is an interesting read (if you are geeky enough). SilentPCreview also did a similar review of the PicoPSU-120 here.
The Pico power supply is a marvel really. It has an extremely high efficiency (between 90% and 96%). It runs completely silent, totally fan free and most important of all, it is tiny. Pico power supply comes with 2 components – a 12V DC-DC power supply unit (PSU) and a power brick. The 12V DC-DC power supply unit thingy plugs right into the motherboard’s 20pin ATX power supply connector. Its only purpose is to convert a +12V DC power source into +3.3V, +5V and -12V as required by the motherboard. The power source that generates the +12V DC for this little fella comes from a power brick, akin to a laptop’s power supply. So you have a power brick which converts 230VAC into +12VDC for the power supply into the Pico unit which further converts the voltages and power up the motherboard. Fantastic piece of gear. I wish all computer power supplies are like these.
As a side note, the Pico PSU above comes in a 20 pin plug. The motherboard’s ATX power connector has a 24 pin connector. This is fine. Pico PSU will fit. There will be some spare unused connectors but it will work.
Pico power supply comes in several power ratings. Mini-Box.com sells the complete range if you are based in the USA. I bought mine from www.mini-box.com.au which happens to have their office not too far away from where I live. As the AMD A6-5400K has a TDP of 65W, I figured an 80W Pico power supply should be sufficient. I bought an 80W unit with an EDAC EA10953A-120 120W power brick. The choice of the power brick is important too. It is best to choose a brand which has better track record. I chose the EDAC one as EDAC manufactures switch mode power supplies worldwide. It is a Taiwanese based company. I also intentionally chose a 120W power brick instead of an 80W one. This is sorta intentional. I like to have a power brick with a capacity larger than the actual Pico psu so that if I do need to upgrade my hardware which uses more power, a 120W power brick can go the extra miles without requiring me to do an upgrade. Incidentally the 120W power brick is as big as I am willing to go as it is still fanless at this rating. The last time I checked, the next size up will be a unit with a forced fan cooling. I won’t like that.
So now we have a motherboard, a CPU, ram, SSD, we are ready to kick off the project.
This is how the original Xbox looks like after removing the internal DVD drive and hard drive. You can see that the motherboard is on the left hand side of the chassis and the power supply is on the right. The CPU is passively cooled by a heat sink which is in turn air-cooled by a fan intake at the back of the chassis. I think this arrangement is great and I am going to stick to the same arrangement as much as possible.
First of all, I removed all the components. Tearing down things is always the easiest part. The original Xbox has a metal cage of some sort. I suspect this is for the earthing of the original system but I am not sure. I would like to retain this for my build but the cage is getting in the way I need to mount the components. So I have to remove it.
Removing the cage will now reveal a plastic bottom tray that looks like this.
The underlying chassis has many protrusions plastic bits and some attachments for the screws.
Here is a close-up view.
These are getting in the way too and I use a dremel tool to flatten things out.
Okay. I suck at this but at least the surface is flat now. It also does not matter very much because we can’t see this by the time we re-assembled the box.
Some months ago I bought some ABC plastic sheets from a hobby shop for another small project I was working on at that time. I had some left over sheets in the cupboard and this prompted me to think if it is a good idea to use one as a “gear tray” for the motherboard and the associated components. This is what I had in mind originally. It looks kinda neat and I quite like it. But I soon abandon the idea because it does not really serve a good purpose, apart from looking good on the inside. I will just keep the plastic sheet for a more productive use in the future.
The motherboard when installed into the chassis will look somewhat like this.
I am happy to say that the MSI motherboard fits the chassis (just). Having a Mini-ITX board will perhaps make things even easier for me but this is just fine for now.
The original XBox has several cut-outs at the rear of the chassis for an Ethernet port, a graphics display port and a connector for the power supply cable. I had wanted to preserve these cut-outs as much as possible and I do not want to butcher the box just to fit the components into.
The motherboard has many ports and connectors. Most of which I don’t really need for a HTPC. I really just need a HDMI port, an Ethernet port and a 3.5mm stereo jack. And if I have an AV receiver, I won’t even need that 3.5mm stereo jack. And seeing that the motherboard ports will not align with the existing cut-outs on the Xbox, I had to think of another strategy. I ended up rotating the motherboard 180 degrees, i.e. have the ports not facing the back of the chassis but facing the front. Sounds weird but in this way, I don’t have to worry about cutting up additional holes to the back of the chassis just to match up the motherboard. Another reason for me doing so is that if the motherboard fried (touch wood) and I needed a replacement, whatever holes that I cut up at the back of the chassis will most likely not fit the replacement motherboard (if it is a different brand/model) so there must be a better way to approach this.
Now as long as I can figure out a way to get a physical connection between the back of the chassis to the motherboard ports, I am in business. If this is achievable, then it really does not matter what type of motherboard I will use in future. This is also the hardest part in this project. Fortunately things all worked out in the end. The strategy here is to use connecting cables to extend the motherboard’s HDMI port, Ethernet port and stereo jack to the cut-outs at the rear chassis but to do this, I need to see what kind of cabling system I need to reticulate. So I assemble the motherboard, snap the CPU into the CPU socket, punch the Pico power supply into the ATX power connector, and pop in the SSD drive to see how things will all fit. The motherboard should be installed as per the picture below.
I figured that I will need the following cables/components:
- A male-to-female L-shaped HDMI connector that plugs into the motherboard’s HDMI port. You can see this in the bottom of the picture above.
- A female-to-female L-shaped HDMI connector that is fastened into the rear of the chassis.
- A male-to-male HDMI ribbon type cable for the connection between the above 2 HDMI connectors. So effectively I am extending the motherboard’s HDMI port to the rear of the chassis.
- A male-to-female Ethernet cable. The male connector goes into the motherboard and the female connector gets fastened to the rear of the chassis.
- A male-to-female 3.5mm stereo cable. Similarly, the male connector goes into the motherboard and the female connector goes to the back of the chassis.
- Assorted motherboard header cables, USB cables, etc
All parts are readily available from eBay or any electronic stores.
I wanted to see how I can fasten the motherboard into the chassis first. This is the easy bit. I marked the positions on the chassis so that I can install the risers to support the motherboard. I can’t remember the size I used but the idea is to elevate the motherboard high enough so that I can get some cables to go underneath the motherboard.
The first thing I did is to figure out the connection of the power cable. To get this going, first I cut out a little piece of plastic fascia plate that I salvaged from an old HP casing that I managed to get (for free) from a local computer store. They are throwing a casing out and are happy to give it to me, after learning what I really wanted to use the casing for. I carefully aligned the plastic behind the power supply cut-out and mark the centre with a red marker.
Then I drill a hole just sufficiently large in order for me to fasten the Pico PCU’s power supply connector onto it.
Then I hot glue this plastic onto the chassis as follows:
And finally attached the Pico power connector onto it.
The connector looks like this on the outside. I am happy for the way this turns out so far.
The next thing I did is to drill a hole adjacent to the Ethernet jack on the chassis and get an Ethernet connection cable to go between the cut-out and the motherboard. The Ethernet cable has to be a male-to-female cable. The female plug goes to the cut-out and the male plug goes to the motherboard.
Then I hot glued the Ethernet jack onto the chassis and connect the 3.5mm male-to-female stereo cable to the hole I drilled beside the Ethernet cut-out. I also cut a piece of plastic (from the HP casing) with the intention of using it to glue onto a female to female HDMI connector.
The Ethernet jack looks like this on the outside.
Alignment is not perfect but who is keeping score.
The stereo jack looks like this on the outside.
Here’s another view.
The HDMI connector bit is a lot more tricky. I had to use an L-shaped Female-to-Female HDMI connector because the motherboard is already taking up most of the depth of the chassis rendering me very little space to maneuver the cables around and as this connector is not resting on the bottom of the chassis, there is no sure way I can hot glue it securely to the chassis without it falling apart again. So I improvised and used 2 rubber grommets as a “structural support” which happen to just perfectly fit into the space here.
So with the grommets as “structural supports”, I hot glued the whole thing together. I won’t deny it. The glue makes the whole thing look terrible. But it is tight and secured. I am happy.
This is how the HDMI port looks outside of the box. Neat enough I will say.
When all the cables are connected to the rear ports, the connections look like this.
With the power supply connector, HDMI, Ethernet and stereo jack all done, I now turn my attention to the front ports.
There are 4 game ports on the front of the chassis. Port 1 and 2 are on the left of the front panel. Port 3 and 4 are on the right. I wanted to convert port 1 and 2 to using USB connectors. So I took the 2 existing game ports and remove their aluminium casing.
Here’s another view.
Then I removed the guts of the connector carefully, being careful not to break things unnecessarily. I separated the top hat portion carefully as I will need to re-use this part later.
Then I ripped open the HP casing and salvaged 2 lengths of USB cables with motherboard header connectors. I aligned the USB head into the game port as shown.
Next, I hot glued the USB connectors into position. They now look like this. I had to make sure that the USB connectors are connected the right side up.
Then I hot glued some more over the top of the cable connections, taking care not to hot glue over the actual USB connectors.
I put the top hat back on and hot glued the cable connections.
Finally I put back the aluminium housing when the connections are deemed secure enough.
The complete assembly now looks like this.
The newly added USB ports will look like this when attached to the chassis.
As for the other two game ports to the right of the chassis, I have to blank off port no. 3 as I just do not have sufficient room behind to get the other cables connected to the motherboard and I needed to create more space. Having a Mini-ITX motherboard should alleviate this issue greatly.
The forth port will be reserved for an original Xbox infra-red dongle and as such, I left the existing game port connection intact. The good thing about the Xbox game port connector is that it is really just an USB outlet with a different connector. All the wiring configuration behind the scene is exactly the same.
With the IR dongle connected, the front panel now looks like this.
The final modification involves the front panel LED and power switch. Xbox comes with an Eject button and a power button. I decided to wire up the Eject button as a power button and also to serve as a power-on LED. To do this, I needed to wire up the front panel to the motherboard’s header.
First I removed the front panel to gain access to the front panel’s circuit board.
ModZone.dk has a very useful tutorial post showing how to mod the front panel of the Xbox. http://modzone.dk/forums/showthread.php?threadid=252
My original intention is to get the eject button to glow in yellow when the power is on, and wire up the HDD activity LED such that when the SSD is being accessed, the eject button will glow in orange. Sadly I couldn’t get it to work.
The XBox front panel has a pin out like this. This image is courtesy of ModZone.dk.
The MSI motherboard has a front panel connector that looks like this.
Since I have the right motherboard header cables that I ripped from the HP casing, all I did was to basically follow the pinouts above and bridge the Xbox front panel and the motherboard’s front panel connectors together. Took me some trial and errors to make sure that I have exactly what I wanted. This also requires some careful soldering and I am not very good at this. I use some heat shrink tubing to cover up the soldered joints.
So the final outcome is that if I press the Ejector button, the Xbox will power up. And if I press the power button, the Xbox will hardware reset. Looks weird at first but I have decided that this is the better way to go. The Ejector button is a lot bigger and therefore more recognizable to switch on the Xbox. If I long press the eject button, the system will shutdown, just like any PC would nowadays.
With most of the connectors in place, the next thing to do is to assemble the whole thing together. First I get the cables fastened onto the chassis via duct tape. I am sure you will agree that I won’t win any award in cable management here.
Here is another view.
The motherboard comes next.
Here’s some shots of the motherboard headers.
From the above pictures, it may not be so apparent that I am running out of space here. The following pictures will illustrate the space constrain a lot better.
The game port to the right of the picture is for the IR dongle. Notice that the game port to its left has been removed and is no longer there. This is because the connector interferes with the Ethernet cable connector to and the stereo jack.
The space is so tight that I need to shave off the Ethernet cable in order to get it to bend into that awkward position. The Ethernet cable after being shaven off looks like this. If I could find an L-shaped Ethernet connector that should solve the problem but I could not find suitable ones on eBay.
Here’s another view that illustrates the space constrain in the system. See that the stereo adaptor is almost back to back against the chassis.
I also had to modify the stereo adaptor such that the plug that goes into the motherboard is in a L-shaped connector, only because a straight plug won’t fit into the tight spacing I have.
With the main cables installed, the next came the HDMI connecting cables. To ensure that the HDMI cables can be installed into the casing, I bought a flat ribbon type of the shortest length I can find. I had to create a few loops around the CPU because the cable is otherwise too long. Normal HDMI cables that uses round flex cables will not fit into the case because the cable is usually very thick.
Here’s a side view that shows the HDMI cable and the Ethernet and stereo cable.
Here is an another view of the Ethernet cable and stereo cable at the rear of the chassis.
Maybe this shot is more helpful.
Yet another shot.
Here’s a shot of the Sata connector which is near the power cable to the Pico unit.
Here’s another better view of how the HDMI cable is connected to the motherboard. Note the L-shaped male-to-female HDMI connector.
Here is another view.
For the cooling fan, I opted to install one even though I don’t think the system requires any. The Pico is passively cooled and the CPU has its own fan. But I thought I should complement the nice fan grille with a nice cooling fan. A stock 80mm cooling fan will not fit as there is not enough clearance to do so but But a slim cooling fan will fit just fine.
You can see the tight fit between the cooling fan and the Pico power supply in this shot. Only a slim cooling fan can go into the space.
Originally I installed a SilenX fan after seeing so many people recommended this fan in the forums. Maybe I ordered a dud here but the fan really let me down. After running fine for about 1 week or so, it started to develop a noise so loud that sounded like some wires are caught in the fan blades. The noise came on when the system is started and persisted for about 2 minutes or so before it went away completely. I could not understand why. I have since replaced the fan with a slim fit CoolerMaster one. No problems ever since.
Here’s the fan on its own.
Here’s the fan behind the grille.
The final step is to take care of the top cover to the casing. There is again an aluminium skin that goes on top and I removed it.
With the covers fastened, here’s the final XBMCBox! I am quite pleased with the overall result.
It is always cheaper to just buy a media player outright. But what’s the fun in that? 🙂
This is what all the hardware cost me:
- MSI FM2-A55-E33 motherboard – A$61
- AMD A6-5400K CPU – A$74
- 4GB G.Skill DDR3 1600 RAM – A$25
- Sandisk 120GB Extreme SSD – A$101
- Pico 80W Power supply and power brick – A$82
- HDMI cable 1m length – A$5
- CoolerMaster 80mm silent slim case fan – A$13.50
- HDMI Female to Female 90 degree downwards adaptor – A$7.93
- HDMI Female to Male right angle narrow adaptor – A$4.15
- 3.5mm stereo cable with chassis mount jack – A$4.06
- RJ45 female to male network extension cable with panel mount jack – A$4.21
- Some other miscellaneous hardware – say A$20
Total price for XBMCBox is A$401.85. I had originally wanted to stay within A$350 so I had gone over budgeted a little. It wasn’t too bad I reckon.
If I went for an Intel NUC box with integrated motherboard, I still need to add RAM and a SSD to complete the system. The intel NUC Core i3 version would have costed me about A$320 or so. Add A$101 for the SSD and A$25 for the RAM, we are already talking about A$446 or so. This is still incomplete as the NUC does not come with a sound output port so I would probably need to add a USB soundcard (Such as the Creative labs/Turtle Beach one) so that I can get my speakers to work with the system. This will increase the price even more. There are obviously other cheaper choices (such as a Raspberry Pi) and some Android TV box thingy but the NUC would be my preferred choice had I not modded the XBox to become a HTPC.
The XBox modding experience has been a positive one for me. The experience of resurrecting an old XBox with a modern hardware for use as a capable HTPC is what I call, priceless.
I hope you have enjoyed this article as much as I have in writing this 🙂