november 1, 2013

I spent a better part of a week trying to figure out what was going on with the DVR that we use at home. Thanks in part to TiVo suing people over time-shifting, there aren't any good DVR appliances. So, for the last few years, since we cut off satellite TV, the family has been using Windows Media Center, a Silicon Dust HD Homerun and an rooftop antenna for TV -- all of this augmented with streaming from Amazon and Netflix.

Initially, the DVR setup was a netbook running Windows 7 as a backend and an Xbox 360 as a frontend. This was a decent and stable setup that suffered from one annoying problem: The delay from when I push the button to watch TV to when TV was actually available. The Xbox 360 took its sweet time booting up and after booting it took time to connect with the Windows 7 backend. And even after that, it took a while for it to get to the point where we could watch TV. It felt like it took 3-5 minutes before TV was available.

A few months ago, I decided to build an HTPC that would be directly hooked to the TV and take care of everything that the netbook and Xbox 360 did. I bought a ZOTAC ZBOX ID80 and added a 320GB 7200RPM drive plus 8GB of RAM to it. I installed Windows 7 and it was running OK. I had tried Mythbuntu, but it ended up being such a hassle to setup, I gave up.

The problem I was running into was that the DVR would go nuts from time to time -- thus dropping the WAF. The sound would cut out or not be available on waking the DVR -- sometimes requiring a reboot. The video resolution would randomly change and most of the time hit a decent resolution (1080i or 1080p). Sometimes the resolution would change and leave Windows Media Center in a window and not fullscreen. And most recently, the resolution would change and cause the system to complain that there was not enough VRAM to run things (there is enough with 512MB dedicated VRAM) -- this requiring a reboot to clear.

I finally figured out what was wrong. Windows 7 does not let me lock in a video resolution. It decides that it wants to be "helpful" and detect the video resolution each time the HTPC is woken up. Since I have the HTPC connected via HDMI to my amp, Windows 7 gets confused. When waking, it sees the amp and tries to figure out what resolution the amp is set to. But then the TV comes on and Windows 7 tries to figure that out. In the end, it was a crap shoot if Windows was able to get things right. Most of the time, it did.

The fix was pretty easy. Instead of connecting the DVR to the amp, I ran the HDMI connection directly into the TV. This removes the amp and the need for Windows 7 to try to detect the screen resolution twice. Since the speakers on our TV are pretty tinny, I still wanted to run the sound through the amp. For that, it was a matter of connecting a TOSLINK from the DVR to the amp. Finished and done. The DVR has been working flawlessly since.