Fixing an XBOX with a bad TSOP

Several months ago, I acquired a second XBOX to use as a media center in my house. I thought I would try to skip the expense of a modchip, and I tried to flash the XBOX’s TSOP directly. Unfortunately, something went wrong, and I ended up with an XBOX that wouldn’t boot. I had to break down and purchase a modchip to replace the motherboard BIOS. Well, a few days ago, this XBOX developed a nasty problem whereby it would switch itself off after a random amount of time. Because the family is hooked on watching IPTV via the XBOXes, I went out and purchased a replacement, and moved the modchip over to the new unit.

I had a dead XBOX on my desk, and thought that I had nothing to lose by seeing if I could fix it. The first problem was fixing the switching-off problem. After careful inspection of the motherboard, I discovered that one of possibly several electrolytic capacitors had leaked in one area of the board. The main suspect was the 1-Farad clock backup capacitor. I replaced the few capacitors in the immediate area. I also replaced the heat transfer paste between the heatsink and CPU.

Powering up the unit (with a borrowed modchip) showed that the power-off problem appeared to be fixed. Good! Now I needed to address the TSOP issue. I spent many hours scouring the net to find a solution that didn’t involve removing the TSOP from the motherboard (a very daunting task). I discovered that I couldn’t boot from a BIOS on the LPC bus (that’s the header connector on the motherboard that most modern modchips plug into) and then access the TSOP to flash it. The solution ended up being building what’s called a 29 wire modchip. Yes, it’s as daunting as it sounds. The premise is simple – program a flash chip with a suitable BIOS, and solder address and data wires to the motherboard. As the name suggests, there’s 29 wires, and the contact points are very tiny. I used the diagrams at xbox-scene.com to construct the modchip. I also used this article to add the disable switch.

Several hours later I had a programmed flash chip (a 29F002 – 256K flash chip scavenged from an Asus P2B motherboard) with a disable switch soldered to the XBOX’s motherboard. I had to assemble a working XBOX with DVD drive and power supply on my bench, and hope it would live long enough to re-flash the TSOP. I powered it up, and it booted! I was successfully booting off of the new flash chip. I booted the Xebian distribution from DVD-R (I had to try three different media types before I found one that would successfully read in the XBOX drive). As soon as Xebian booted, I used SFTP to copy Raincoat 0.7 and a bios image file (the same one that I had burned on the flash chip) over to the /tmp directory on the XBOX. At this point, I used the switch to disable the replacement flash chip. I then used SSH to get a command prompt on the XBOX, and ran ./raincoat -p bios.bin. The screen said that the flash was successful. I tried rebooting the XBOX with the flash chip disabled. Success! I was booting from the internal TSOP.

I carefully removed the 29-wire mod and re-assembled the XBOX. I now had a modded XBOX with no modchip, and now every TV in the house has an XBOX running as a media center.

Turn Your XBox Into A PVR (Sort Of)

The XBox is a very nice piece of hardware. The simple addition of a modchip and large hard drive turn it into the ideal media centre. In fact, I’ve now got two of them in my house. One of them isn’t even used for games playing – purely for media playback.

It’s the media playback capabilities of software such as XBMC that make it so versatile. I use a Linux box running Azureus to acquire a large quantity of my video entertainment. It allows me to catch up on my favourite UK sitcoms and soap operas from Canada. The Linux box shares the download directory as a Samba share, and XBMC points to that share.

The missing piece is to be able to watch recorded shows from my satellite. I already own the Bell ExpressVu 5100 PVR, but it’s a sorry excuse for a PVR – it can’t record by show name, only by date an time, so it’s not much better than an old VCR! So I decided to see what MythTV could do for me.
MythTV gives me all of the functionality of a TiVo box, but without the DRM. I set up a second Linux box as my MythTV backend server. It is connected to a Bell ExpressVu 2700 receiver. I built an IR blaster using the plans found here. After fighting with lirc for a few days, I finally got it set up and changing channels on my receiver.

The front end involves using the XBMCMythTV scripts on my Xbox. These scripts are still a little rough around the edges (watching live TV is still touch and go), but it works well enough for recorded programs. There’s a problem with XBMC and MythTV at the moment. Apparently, the two projects have differing ideas about how to interpret the NUV file format standard (this is the format that MythTV uses). The scripts work fine if the video source was recorded using a MPEG2 hardware compression capture card, but doesn’t work if the video is encoded in MPEG4 (which is the case for the lower end capture cards). There are rumors of a patched mplayer.dll file for XBMC that fixes this problem, but it didn’t work for me.