Showing posts with label windows media center. Show all posts
Showing posts with label windows media center. Show all posts

Monday, January 02, 2012

HTPC: Displaying the Windows Media Center actively recording program on an LCD Display

A project that I took on over this past Christmas break was to get my HTPC to display on an LCD display mounted in the PC’s case informaton about the TV program actively being recorded by the Windows Media Center DVR, so that I could see what was being recorded even when the attached TV was off.

The basic hardware/software setup for this project was:

  • LCD Display: An nMediaPC PRO-LCD-B display, which is a blue LCD display that can display 2 rows of 20 characters, and fits into a standard PC case 5 1/4” drive bay. 
  • A PC running Windows 7 64-bit, configured to act as a DVR using Windows Media Center.

This project turned out to be significantly more complex that I originally planned on it being, although after nearly a full day of tinkering, I did finally get it to work!  The remainder of this post is a set of instructions for what I did to get the LCD display working to display the active Windows Media Center recording (leaving out many of the missteps and dead ends I encountered along the way, although I do include a couple of the major ones as an appendix at the end of this post). 

WorksOnMyMachineI’m providing this information for my own future reference and in the hopes that it may be helpful to you, the reader; however, please note that this is in no way an “official” set of instructions.  It worked for me, but may not work for you.  Your mileage may vary.  I am awarding this post the official Jeff Atwood / Jon Galloway “It works on my machine!” seal of approval. 

These instructions assume that you already have Windows Media Center actively running as a DVR on your PC, and that you have a reasonable level of technical expertise, and patience – there are a lot of steps here, and quite a few “moving parts” to get working together!

Enough disclaimers; on with the show!

1. Purchase the nMedia PRO-LCD-B LCD Display

Purchase the nMediaPC PRO-LCD-B.  As I write this post, it’s available from newegg.com for US $38 shipped.

Other nmMdiaPC PRO-LCD models may work with these instructions as well, but I only tried them with the PRO-LCD-B.

2. Install the PRO-LCD-B hardware

Power off your PC, and install the PRO-LCD-B in an empty 5 1/4” drive bay. 

The install was fairly easy; the PRO-LCD-B has two connections: One to a standard disk drive power cable from the PC’s internal power supply, and one to a 4-pin USB connection on the motherboard.  My HTPC’s motherboard (a Gigabyte AMD GA-MA785GM-US2H) had several such 4-pin USB leads available on the motherboard, even with all of my case’s front and rear USB ports already hooked up.

(When I powered my PC back on, I *think* I saw some stock/default text on the LCD display, but I’m not 100% sure about this – and I’m not about to voluntarily revert my HTPC to that state at this point just to double-check.) :-)

3. Install the PRO-LCD-B driver software

Download and install the PRO-LCD-B driver software from the nMediaPC website:

http://www.nmediapc.com/LCD/download.htm

I also have a mirrored copy (current as of January 2012) in the event that the file ever becomes unavailable from the nMediaPC site:

http://jonschneider.com/jsblog/CDM20600.zip (1.8 MB)

(Although at this point my next step at this point was to install nMediaPC’s “M-Play Home Center (MHC)” software to drive the LCD display, this turned out to be a dead end, and I recommend you skip it if your goal is to get your LCD display to show the actively-recording Windows Media Center program.  See the “Dead Ends” appendix at the end of this post for more on this.)

4. Install LCDSmartie

LCDSmartie is a free open-source program for Windows that can drive the display of text on LCD display devices, including the PRO-LCD-B.

I downloaded and installed the 5.4.2.92 beta release (dated June 8, 2011).  LCDSmartie downloads are available from here:

http://lcdsmartie.sourceforge.net/smartied.htm

I mirrored the 5.4.2.92 beta release here:

http://jonschneider.com/jsblog/lcd_smartie_v5.4.2.92 Beta.zip (2 MB)

Uncompress the “lcd_smartie_v5.4.2.92 Beta” folder and its contents from that .zip archive.  I put this folder onto the root directory of my C: drive.

5. Install the lisvfd.dll display driver for LCDSmartie

None of the out-of-the-box drivers that come with the LCDSmartie 5.4.2.92 release work with the PRO-LCD-B.  However, there is another driver available on the LCDSmartie site that did work for me: the “L.I.S VFD” display driver.

It’s available on the LCDSmartie SourceForce site from here:

http://downloads.sourceforge.net/lcdsmartie/lisvfd.zip?download

If that link doesn’t work anymore, try looking for it on the LCDSmartie site download page under “Plugins”, or else download my mirrored copy:

http://jonschneider.com/jsblog/lisvfd.zip

After downloading that, place the lisvfd.dll file from the .zip archive into the “displays” folder under your LCDSmartie installation folder.

6. Configure the lisvfd.dll display driver in LCDSmartie

Run LCDSmartie (via the LCDSmartie.exe file in the extracted “lcd_smartie_v5.4.2.92 Beta” folder that you created in step 4 above).

When LCDSmartie comes up, it should show a small window showing the content that it is sending to the LCD display (although nothing will actually appear on the PRO-LCD-B until the steps in this section are completed).  Click the “Setup” button in the lower-left corner of the window to bring up the Setup window.

In the LCDSmartie setup window, in the “LCD Size” dropdown in the Display Size section in the top-right corner, select the “2x20” value (the display size of the PRO-LCD-B).

Next, still in the Display Size section, click the Plugin tab.  In the Display Plugin dropdown, select lisvfd.dll.  (This option will only appear if you copied the lisvfd.dll file into the LCDSmartie “displays” subfolder in the previous step.)

For the next step, you need to know what COM port your PRO-LCD-B is running on.  To determine this:

  • Bring up the Windows 7 “Devices and Printers” screen by opening the Windows Start menu, typing “devices” into the text field, and selecting the “Devices and Printers” option that appears.
  • On the “Devices and Printers” screen, in the “Unspecified” section, look for a device named “FT232R USB UART”.  Right-click on it and select Properties from the context menu.
  • On the Properties window, select the Hardware tab.
  • In the “Device Functions” table that appears, look for an entry like “USB Serial Port (COM4)”, where the “4” might be any number.  Make a note of that number.
  • Close the FT232R properties window and the “Devices and Printers” window.

Then, return to LCDSmartie.  (It doesn’t appear in the Alt+Tab list on my machine, so you may need to select it from the Windows taskbar).  In the LCDSmartie Setup dialog, in the Display Settings section, in the Plugin tab, in the Startup Parameters field, enter “COM4,38400” where “COM4” is the actual COM port value from the Devices and Printers section above.

  • If for whatever reason you couldn’t find the FT232R device in “Devices and Printers”, then an alternative here might just be to try entering different values for the COM port number in this field to see if you can get something to display on the PRO-LCD-B screen.

Once this is done, click OK on the LCDSmartie setup dialog.  You should now see some text from LCDSmartie (a scrolling LCDSmartie logo, and possibly some other information) appear on the PRO-LCD-B screen on your PC!

7. Install the “LCDSmartie dll to display Windows Media Center status”

Once LCDSmartie is successfully configured to display information on the PRO-LCD-B screen, the next step is to get it to display what’s currently recording in Windows Media Center.  A plug-in called “LCDSmartie dll to display Windows Media Center status” by Dave Perrow can be used to do this.

Download the “LCDSmartie dll to display Windows Media Center status” from its website, here:

http://mcedll.codeplex.com/

Or grab my mirrored version (current as of January 2012):

http://jonschneider.com/jsblog/MCE_DLL.zip

Extract the MCE_dll.dll, MCE_dll.cfg, and MCE_dll.ini files to the “plugins” folder under your LCDSmartie installation.

8. Install Windows Media Center TCP/IP Controller

The MCE_dll plugin relies on another piece of open-source for Windows called Windows Media Center TCP/IP Controller (or “TcpIpController”) to function.  TcpIpController publishes a “feed” of what Windows Media Center is currently doing (including what program it’s recording) to a particular TCP port on your PC, where it can be read by MCE_dll.

I installed the “Win7 64 and 32 bit Alpha - button command fix” release of TcpIpController.  (Note: This is not the default release of TcpIpController – I’m not sure whether or not the default release works with MCE_dll.)

Download the “Win7 64 and 32 bit Alpha - button command fix” release of TcpIpController from its codeplex.com website here:

http://vmccontroller.codeplex.com/releases/view/23251

Or get this version from my website:

https://jonschneider.com/jsblog/Setup%20x64.msi

Run the downloaded .msi file, and continue through the prompts to complete the installation wizard.

When the installation finishes, reboot – without a reboot, TcpIpController will not work properly.

9. Configure TV channel names

The MCE_dll plugin will display the name of the channel being recorded, along with the channel number and the name of the program being recorded.  It gets the channel number and program name from Windows Media Center (via the TcpIpStatus plugin), but we need to manually supply the channel names.

To do this, in a text editor, open the MCE_dll.ini file that you previously placed in the “plugins” folder under the LCDSmartie folder, and replace all of the values with the channel numbers and names for your local channels.

(You can skip this step if you happen to live in the same region of Scotland as the MCE_dll author.) :-)

10. Configure LCDSmartie to use the Windows Media Center status (MCE_dll) plugin

Now that we have the MCE_dll plugin and its TcpIpController dependency in place, we need to configure LCDSmartie to use them.

Bring up the LCDSmartie Setup dialog.  In the “Screens settings” section, make sure Screen 1 is selected (set the value of the Screen field to 1), and then replace the values in the two large fields in this section (which represent what LCDSmartie will display on the PRO-LCD-B screen):

Line 1: 

$dll(MCE_dll.dll,1,,)

Line 2:

$dll(MCE_dll.dll,2,,)

An explanation of what these values mean, along with some other values you can play with, can be found on the MCD_dll plugin site.

Finally, click OK.  If your Windows Media Center is actively recording something, you should now see the channel number, channel name, and show name on the PRO-LCD-B display!

The finished product on my HTPC (with the PRO-LCD-B installed just below the DVD drive):

PRO-LCD-B

(The actual LCD display image is far cleaner/sharper than it appears in the photo; my iPod camera refused to take a nice image of it.)

11. Configure LCDSmartie to run at Windows startup

In the LCDSmartie setup dialog, in the Startup/Shutdown tab, click the “Autostart hidden” radio button, then click OK.

Appendix: Dead ends

A couple of the things that I tried that didn’t work:

  • A piece of open-source software for Windows called LCDWriter by “andy vt” says that it will also get an LCD display to display what Windows Media Center is currently recording, among several other functions.  However, I couldn’t get the 64-bit version to successfully display anything to my PRO-LCD-B; and the 32-bit version (which can work with LCDSmartie display plugins via a wrapper dll) gave me a runtime error on my PC every time I tried to run it, so I eventually gave up on getting it to work on my PC.
  • The default PRO-LCD-B display software from nMedia has a lot of cool functions, and it was very easy to install and get initially working, but I was unable to successfully get it to display the recording program in Windows Media Center.  It also seemed to be slightly buggy in other ways (at least for me); for example, after exiting Windows Media Center, the PRO-LCD-B would continue to display “Channel Listing”, for example, instead of reverting back to the default date/time display.

Appendix: Thanks!

Thanks to the authors of LCDSmartie, the lisvfd.dll display driver, the “Windows Media Center status” plugin for LCDSmartie, and the Windows Media Center TCP/IP Controller.  Without all of those open source projects having been developed and made freely available, I wouldn’t have been able to complete this project – or at least, it would have taken me significantly longer to code up a solution myself!

Tuesday, July 13, 2010

HTPC remote control review: Lenovo N5901 multimedia remote with keyboard

n5901

A couple of months ago, to use as a remote control for my Windows 7 HTPC, I purchased a Lenovo N5901 multimedia remote with keyboard (part no. 57Y6336).  The remote control easily fits in one hand, yet it combines a QWERTY keyboard, a trackball and two mouse buttons, and volume / playback buttons.  Following are my comments on the different aspects of the device, based on my experience with it so far.

Setup: The trackball and keyboard both worked fine “out of the box” for me with Windows 7 upon plugging in the (tiny!) USB wireless receiver to the PC, both in Windows Media Center and on the normal Windows 7 desktop – no software install was needed.

Keyboard: The keyboard is a “mostly-full” keyboard.  It isn’t suitable for touch-typing; I’m a pretty good typist on a standard QWERTY keyboard, but I can’t use the keyboard on the N5901 without looking down at it as I type.  The keyboard also has no function keys (F1, F2, … F12). 

The N5901 keyboard isn’t really suitable for use for any heavy-duty typing (e.g. composing emails) but it works well enough for keying in a Windows password at boot time, or for entering a few characters of the name of a show to search for in Windows Media Center.

Trackball: The included trackball and two mouse buttons work just fine.  One-handed use is possible, but I’ve found that it works best to use it with two hands; using the controller with only my left hand, I occasionally accidentally nudge the trackball with my thumb as I reach around the trackball to left-click.  It works better for me to hold the remote with both hands and use right thumb for the trackball, and left thumb to left-click.

Battery Life: The battery life is at the very least “okay,” as I’m on my 3rd month of using the remote, and it’s still on its original set of two AAA batteries.

Wireless Connectivity: The wireless connectivity for me was slightly suspect – when I first used the remote, it would usually work fine, but it would occasionally “drop” a split second of my trackball use, or a single key press using the keyboard.  (The latter was particularly frustrating when entering my password logging in to Windows following a reboot.)  My couch where I would typically sit and use the remote is located around 15 feet from the HTPC – well within the device’s specified operational range of 10 meters.

In my living room configuration, the couch is “L” shaped, with one side of the “L” extending along a wall toward the TV and the HTPC.  I was therefore able to work around the occasional wireless connectivity issues by purchasing a 10-foot USB extension cable (for less than $5 shipped off eBay), running that cable from the PC under my couch to underneath the place I usually sit in the middle of the couch, and plugging the N5901’s USB wireless receiver into the extension cable under the couch.  Having done this, the wireless connectivity now works with no problems.

Playback Controls: The N5901 features “play”, “stop”, “fast forward”, “rewind”, “previous”, and “next” multimedia playback control buttons.  All work just fine and as expected out of the box with Windows Media Center on Windows 7.

Volume Controls: The N5901 also features “volume up” and “volume down” buttons.  For some reason, at least for TV playback, although when I press these buttons Windows Media Center reports the volume level going up and down (minimum 0, maximum 50), the actual sound output level from my TV speakers doesn’t change, unless I turn the volume all the way down to 0, at which point the sound does cut out entirely (mute). 

Since the volume button presses on the remote are being received successfully by Windows Media Center, the problem apparently is with some other aspect of my hardware configuration, not the N5901 itself.  I’ve just been using the TV’s own remote instead to control the volume, which works fine.

Orange Button: The N5901 features a prominent, but unlabeled “orange button” in the top-left corner of the control (visible in the above image).  On my Windows 7 machine, pressing this button results in the somewhat odd behavior of bringing up a Windows Explorer window with the location set to “My Computer.”  Neither Windows 7 nor the N5901 itself provides any way (that I could figure out) to change this behavior.

What I really wanted this button to do was to act similarly to the “TiVo” button on a TiVo remote – that is, in the case of my setup, as a “Go to Windows Media Center Home screen” button.  Specifically, I wanted this behavior:

    1. If Windows Media Center (WMC) is not currently running, run it.
    2. If WMC is already running, but is not the active window, make it the active window.
    3. If WMC is the active window, navigate to the WMC front page / main menu.
    4. Suppress the default behavior of bringing up "My Computer."

The “green button” on “designed for Windows Media Center” remote controls might have this behavior as well; however, I’m not sure, never having had the chance to use one.

After some research, I was able to come up with a script for the free AutoHotKey utility to accomplish this behavior.  This is the script:

VKB6::  ;On a press of the Lenovo N5901 orange button:
  if WinActive("Windows Media Center")  ;Is WMC the current active window? 
    Send #!{Enter}  ;Act like a "green button" press (go to WMC main menu) 
  else 
    run c:\windows\ehome\ehshell.exe  ;Run/activate WMC 
  return

The complete details of how I created this script are available in a superuser.com post.

Backlight: Probably the biggest drawback of the N5901 is that the buttons are not backlit.  In a completely dark room, the QWERTY keyboard is pretty much unusable, and the playback control buttons are pretty difficult to use.  The trackball and mouse buttons are no problem to use in the dark, though.

Conclusion

Based on my positive experience with the device over the past couple of months, I would recommend the N5901 as a reasonably inexpensive “all-in-one” (mouse + keyboard + playback buttons) HTPC remote control.

Sunday, May 23, 2010

HTPC Build part 5 – Parts List! My $500 Windows 7 2010 HTPC

This is the fifth in a series of posts I’m writing about an HTPC (Home Theatre PC) build that I recently completed.  To see a list of all posts in this series, click here.

Having gotten over-the-air HDTV set up, successfully tested a PC TV tuner and Windows Media Center, made an attempt to recycle an old PC into an HTPC, and done some testing with a loaner HTPC, I was finally ready to finalize a list of parts, place the order, and build my own HTPC!

Here is the final parts list for my HTPC:

    Cost
(USD; shipped;
including tax)
Purchased From Purchase Date
Motherboard Gigabyte AMD GA-MA785GM-US2H $58 newegg.com May 2010
CPU AMD Phenom II X2 550 Callisto 3.1GHz $77 newegg.com May 2010
RAM Corsair 4 GB (2x 2GB) DDR2-800 (PC2 6400) TWIN2X4096-6400C5DHX $26 frys.com November 2008
Hard disk Western Digital 640 GB internal SATA $70 newegg.com February 2010
Onboard video ATI Radeon HD 4200 $0
(on motherboard)
-- --
Add-on video card (None -- yet) $0 -- --
TV tuner Hauppauge USB HVR-850 $50 amazon.com January 2010
Optical drive ASUS 24X DVD RW DRW-24B1ST SATA $27 newegg.com May 2010
Wireless LAN Monoprice USB Wireless Lan 802.11G $11 monoprice.com January 2010
PC case (Recycled 2004 desktop PC case) $0 -- 2004
Power supply unit CORSAIR CMPSU-400CX 400W $30 (after rebate) newegg.com May 2010
Operating system Windows 7 Home Premium 64-bit (OEM) $100 newegg.com May 2010
Remote control Lenovo Multimedia Remote with Keyboard 57Y6336 / N5901 $38 lenovo.com April 2010
HDMI cable HDMI cable, 6’, male-to-male $1 meritline.com November 2009

Total Cost: $488 (Not including a PC case)

To cut to the chase: This HTPC works great!  The hardware worked fine immediately upon being assembled; the machine works great as a DVR and meets all of my other goals as well (with the exception of being able to act as a high-end gaming PC -- more on that below); and the machine has none of the video/overscan issues with my Philips 3000-series HDTV that I had encountered with the Intel-based loaner HTPC I tested.

Read on for more detailed commentary on the specific parts that I decided on ordering, followed by my thoughts on the performance of the new HTPC over the several few weeks that I’ve had it up and running so far.

Parts

Motherboard / CPU / Onboard Video

As I mentioned in the previous post in this series, I had encountered some fairly significant video issues with overscan and flickering of thin black lines when testing with an Intel-based HTPC and its Intel GMA X4500 onboard video, which my friend Dave had been kind enough to let me borrow and test with my TV for several days.

My consequent decision to opt for an AMD/ATI-based build for this HTPC, including Radeon HD 4200 onboard video, turned out to be a good one!  Hooking the PC up to my Philips 32PFL5332D/37 HDTV via HDMI, everything just worked great “out of the box.”  There were no issues with overscan; the PC video output running at 1920x1080 was automatically sized correctly to fit the viewable area of the TV display, without me having to do anything.

Further, the overall quality of the display was much better as compared to the Intel GMA X4500 test machine.  There were none of the issues with thin black lines appearing to “flicker” that I had noticed with the Intel onboard video.  Text on the TV display is quite readable, particularly once I increased the default text size in Windows 7 to 150% (via Control Panel | Appearance and Personalization | Display).

Regarding the specific motherboard and CPU I purchased, the purchase criteria for these parts were, in roughly descending order of importance (most important criteria first):

  • Decent quality onboard video capable of HD video playback
  • Native onboard HDMI-out
  • Very positive reviews (Parts that would be likely to “just work”)
  • Reasonable price
  • Compatible with the 4 GB of DDR2-800 RAM I already owned (more on this below)

The Gigabyte AMD GA-MA785GM-US2H and AMD Phenom II X2 that I ended up deciding on fit all of these criteria nicely.  At a combined cost of $135 shipped (including a $22 “combo” promotion that newegg.com was running at the time of my purchase), I got performance that was adequate for the demands that would be placed on the HTPC at a pretty good price.

RAM

Although I included the cost of the RAM in my calculated “Total Cost” above (the $488 figure), I actually ended recycling 4 GB of Corsair-brand RAM that I had purchased for the desktop PC that I built in 2008, which is still my primary home PC.  Running the 2008 desktop PC with the 4 GB of Corsair RAM and 4 GB of Crucial-brand RAM (8 GB total), the machine would be mostly stable (and pass Windows 7’s suite of memory tests), but would bluescreen once every month or two.  I pulled the 4 GB of Crucial RAM out of the machine, but the problems continued; I replaced the Crucial RAM and pulled out the Corsair RAM, and the problems stopped.  (Note: I do realize that I shouldn’t have been running two different brands of RAM in the same PC in any event.) 

To save some money, and on the theory that there was just some kind of incompatibility between my 2008 PC’s motherboard and the Corsair RAM, I tried installing the 4 GB of Corsair RAM in the HTPC.  So far, this experiment has been a success; I’ve had no bluescreen/crashing troubles at all with the HTPC in the several weeks that it’s been running at this point.

Hard Disk

I bought the hard drive for the HTPC, a 640 GB Western Digital internal SATA drive, a couple of months earlier than most of the rest of the parts, as part of my attempt to turn my old 2004 desktop PC into an HTPC.  When that didn’t pan out, I was able to just use that same drive in the final HTPC build, as I had planned. 

The only downside to this approach turned out to be that over the last month or so, there have been a lot of good sales on hard drives; had I waited, I could probably have picked up a 1 TB drive for not much more than the $70 that I paid for the 640 GB drive back in February, which would allow me to record a lot more HD video on the HTPC.  I’m not too concerned about this, though.  640 GB still allows for a good amount of HD video recording, and in a year or two when hard drive prices have dropped even further, I can always easily add another (larger) SATA internal hard drive to the machine if I find that I want more recording capacity.

Add-on video card

As noted in the table above, I opted not to buy an add-on video card for the HTPC as part of the initial build.  Aside from not being able to act as a high-end gaming machine, the HTPC functions fine with just the onboard video.  By waiting, I’ll be able to buy a more powerful video card for my dollar later on.

PC Case

As with the RAM, I decided to save money by re-using an old part.  Using the 2004 motherboard, CPU, and RAM for the HTPC didn’t work out, but the 2004 case was still perfectly good; I took out the old motherboard, and installed the new parts in that case.  It’s a full-size desktop PC case rather than an HTPC form factor case that would fit in the entertainment center cabinet and look nice sitting next to my other devices such as the Wii; a “real” HTPC case is always something that I can “upgrade” to later.  

Remote Control

n5901The remote control I purchased, a Lenovo Multimedia Remote with Keyboard 57Y6336 (N5901), is something that I wasn’t originally planning on getting.  I had originally envisioned using a more traditional TV-like remote to control the HTPC from the couch.  However, when the N5901 went on sale on the Lenovo site for 50% off, I decided to take a chance on it – a handheld remote that could also function as a mouse and as a QWERTY keyboard seemed pretty cool. 

My experience with the N5901 has been mostly good, with a few caveats.  I’ll share my full thoughts on the device in a subsequent post in this series.

The Build

Putting together the new PC was smooth and easy – just the way I like these things to work!  All of the parts went together with no problems, and the completed PC booted up successfully the first time that I powered it on.

My new OEM copy of Windows 7 64-bit also installed smoothly and with no problems.  Windows 7 recognized all of my devices, including the HVR-850 TV tuner, the Monoprice Wireless Lan adapter, and the Lenovo Multimedia Remote with no problems, and without me having to manually install any drivers. 

Performance

I’ll go through and discuss my goals for this HTPC system one at a time, and how the system measures up against each goal.

Primary goal: Act as a DVR (record HD TV broadcasts, and playback HD video)

The primary goal for the this HTPC was to serve as my household’s primary (and only) DVR – to automatically “tape” (record) TV shows, and to play them back later on demand.

The HTPC works great in this capacity.  The Windows Media Center software works very well.  I like it even better than the Tivo that I used for a while previously, due to being able to use the mouse in the Windows Media Center interface to quickly skip directly to a particular location in a show.

The HTPC has no problem recording one show while playing back another.  In theory, I could in the future add a second TV tuner to the machine (another HVR-850 or a similar device), and be able to record two different shows simultaneously.

It’s also worth mentioning that when Windows Media Center is recording a TV show, the impact on the HTPC’s resources (processor and memory) is negligible – the machine can be recording a show while at the same time running a game or other Windows applications, with no noticeable performance impact.

Secondary goal: Act as a secondary home PC

The goal here was to be able to close or minimize Window Media Center and drop back to the Windows desktop and use the HTPC like a regular PC – to browse the web, check email, and so forth. 

The HTPC works great in this respect as well.  As mentioned above, the Radeon HD 4200 onboard video produces a great-looking signal on my Philips HDTV, with no overscan and very readable text.  Just last weekend, I used the HTPC in this capacity: I sat on the couch with my family, and used the HTPC to show on the TV screen a bunch of digital photos that my Dad had taken of the house he’s building in Florida.

Secondary goal: Play DVD movies

Since my old DVD player died, I had been keeping my Playstation 2 hooked up to the TV mostly to act as a DVD player and play the occasional movie. 

The HTPC works just fine for playing DVDs, so now I can replace the PS2 with some other device if the need arises.

Secondary goal: Play old NES / SNES / Nintendo 64 games

On occasion, I use my desktop PC to play via an emulator an old NES (Nintendo), SNES (Super Nintendeo), or Nintendo 64 cartridge that I own (and is stored away in my basement).  Playing these old games on a PC monitor while sitting in an office chair just isn’t quite the same as playing them on the TV while sitting back on the couch, though. 

I haven’t spent a lot of time using the HTPC for retro console gaming aside from the initial round of testing yet, but the HTPC does work great for this.  Even the old NES and SNES games look really nice on the HDTV.  The image is really sharp, and there’s no blurring or aliasing. 

The responsiveness of emulated games on the HTPC is also very snappy.  I was a bit concerned that there would be some small delay between doing an input on the controller and seeing the corresponding action happen in the game on the TV screen, but there has been no such delay; the games I’ve tried have responded instantly to controller input.

I’m using an XBox 360 controller (which is compatible with Windows PCs via USB) as my controller, and it works pretty well for controlling old NES games.  At some point I’m planning to pick up an SNES controller USB PC adapter and get my old SNES controllers out of storage to complete the retro gaming experience.

Secondary goal: Play new PC games / “Poor man’s XBox 360”

As with the Intel PC I tested with, I’ve tried two more “serious” modern games on the HTPC: World of Warcraft, and Batman Arkham Asylum.

As with the Intel PC, World of Warcraft runs just fine on the HTPC in full 1920x1080 resolution, although not at the maximum graphics settings.  I’m not really planning on playing much Warcraft on this HTPC, but it’s nice to know that the game runs on the machine just fine, and I now have another PC that will run WoW in a pinch.

Also as with the Intel PC, and also as expected, Batman Arkham Asylum runs, but so slowly that it isn’t really playable.  The Radeon HD 4200 onboard video isn’t up to the challenge of running a modern graphics-intensive game, even on the minimum settings.  An add-on video card will be an easy addition to the HTPC at some point in the future; I’m saving a full play-through of Batman for the time when I’ll finally be able to sit back on the couch and play through the game on the HDTV.

Secondary goal: Stream video between PCs

One thing that occurred to me that it would be nice to be able to do is to stream recorded video (TV shows) from the HTPC over to my desktop PC, for those (very unusual) occasions where Melissa and I both want to watch TV at the same time, and we don’t want to watch the same show.

The software (Windows 7 and Windows Media Center) does support this functionality – I can fire up Windows Media Center on my desktop PC and see the shows that have been recorded on the HTPC.  Unfortunately – and this is the only “unexpected” issue that I have with my setup at the moment – when I try to playback a video over the network (even a standard-def video), the playback is extremely choppy, to the point of being unwatchable.  I did run this test over both of my other test machines (the converted 2004 machine, and the Intel test machine) so the problem is apparently my network setup, not the HTPC itself. 

Both of my PCs are running USB 802.11g wireless adapters, and my router is a Belkin F5D8233-4 802.11n.  Unfortunately, my home is situated such that running a wired network isn’t really possible, so all of my machines are connected via wireless.  I suspect that streaming video (even full HD video) over a home wireless LAN should be possible, and that it’s some kind of problem with my network that’s preventing this from working for me, but I haven’t gotten this tracked down yet.  When I have an opportunity to do so, I’m going to try a different router and see if that does anything to improve the situation.

Tertiary goal: Run quietly

One final goal that I had for this HTPC is that it run quietly – I didn’t want to have to increase the volume of the TV at all just for the sake of having to compensate for a loud PC (particularly given that Melissa and I typically only ever sit down to watch TV when the kids are sleeping upstairs). 

Fortunately, this HTPC build is indeed silent when it runs.  Even with the PC on and TV turned off, when sitting back on the couch, the PC fans are not audible whatsoever.

Conclusion

This HTPC build turned out to be a lengthy project, due to the methodical approach that I took to testing purchasing and testing components prior to doing the final parts purchase and build.  It was a lot of fun to work through the process, though, and it was a very good learning experience.  Best of all, I have an end result that I’m really happy with!  My family is very happy with our new HTPC/DVR as well.  (I can hear Melissa in the other room as I write this using the HTPC to watch the recording of the finale of “Lost” that started airing earlier tonight while we were still getting the kids to bed.)

As a bonus, I didn’t spend too much money to achieve the desired result!  Although the total cost of almost $500 up front was by no means trivial, it’s nice that, going forward, I will have a $0 “DVR fee” alongside my monthly $0 TV and $0 phone expenditures.

This is the last of the primary posts in this series.  I will be writing at least one more follow-up post, though, covering my thoughts on the Lenovo Multimedia Remote with integrated trackball and keyboard that we’re using to control the HTPC from the couch.

Tuesday, May 18, 2010

HTPC Build part 3 – My attempt to turn a 2004 PC into an HTPC

This is the third in a series of posts I’m writing about an HTPC (Home Theatre PC) build that I recently completed.  To see a list of all posts in this series, click here.

Rather than ordering all of the parts to build a new HTPC at once, I decided to try turning my old (built in 2004) desktop PC into an HTPC.  The hard drive on that PC had died, but the remaining parts were still in good working order.  The pertinent specs on the machine were:

CPU AMD Athlon XP 2800+
Memory 1 GB DDR SDRAM
Video Radeon 9800 AGP 128 MB

Since the old hard drive on the machine had died, and I wanted a large enough disk to have sufficient room to record a good quantity of hours of HD video, I went ahead and ordered a new 640 GB SATA hard drive ($70 shipped from newegg.com).

One problem with this was that the old PC motherboard supported only IDE drives, not SATA.  (SATA is the current standard for desktop PC drives; IDE is an older standard that was still in wide use back in 2004.)   I did want a SATA hard drive, though, just in case the “refurbish the old PC” plan didn’t work out, and I ended up building a whole new PC.  I solved this problem by picking up a SATA-IDE converter for less than $3 shipped off eBay.

I also knew that I would need a method to get video and sound from the old PC to my HDTV.  The Radeon 9800 video card in the machine supported DVI video out, so I purchased a DVI-HDMI adapter for $2 shipped (on sale) from meritline.com.  For the sound, I bought a 3.5mm to RCA Y audio adapter cable off eBay for $1.28 shipped.  (I continue to be pleasantly surprised how inexpensively it’s possible to purchase and have shipped simple parts like cables and adapters via online merchants!)

In addition to holding off for the time being on further significant hardware purchases, I did not buy an additional copy of Windows 7 at this point.  Instead, the plan was to install Windows 7 without entering a license key; Windows will run on a time-limited basis with no key, so I planned to test my hardware configuration first, and then purchase the additional Windows 7 license once I had proved that everything worked.

I went ahead and put the new SATA hard drive into the old PC; the SATA-IDE adapter ended up working just fine.  I fired up the PC and installed Windows 7.  Windows 7 installed with no problems, even on the older hardware.  (I did have to install 32-bit Windows 7, since the older hardware didn’t support 64-bit.)

At this point, I disconnected the spare VGA monitor that I had been using for the Windows 7 install, and hooked up the PC to my HDTV via the adapter cables I had purchased.  I then spent a few hours testing the system – with decidedly mixed results. 

First, the positives:

  • Even on the old hardware, Windows 7 actually ran reasonably well. 
  • Audio and video output from the PC worked on the TV, and I was able to run the TV at its native video resolution of 1920x1080.
  • Playback of the short sample HD video clip that comes with Windows Media Center worked okay (although playback was a bit choppy for the first 2 or 3 seconds each time the clip started).

I ran into some significant problems, though:

  • Video playback: Occasionally the video output from the PC displayed on the TV screen would either “freeze” (stop updating), or simply go black.  Unplugging and re-plugging the HDMI cable would fix this, but the problem occurred fairly frequently – every 20-30 minutes or so – and I wasn’t about to settle for a solution where I’d need to be replugging the cable all the time.  Changing channels on the TV (away from the “HDMI 1” input and then back again), or turning the TV off and then back on, would not fix this problem.  (I didn’t make a clear determination whether it was the old video card, or the DVI-HDMI adapter, that was to blame for the issue.)
  • Video display: Text rendered by Windows applications running on the TV display was very “clipped” and difficult to read.  Increasing the system-wide font size to 150% and playing with the ClearType Tuner helped with this somewhat, but text shown on the display still wasn’t very nice-looking.
  • Sound input: The PC did not output sound over the DVI/HDMI cable; it was necessary to use the RCA audio cable that I had purchased to get sound to output via the TV.  Further, my TV doesn’t have dedicated RCA audio inputs that go with the HDMI input; I was able via the TV’s own menu software to “remap” the “AV 1” (component video) audio inputs to the “HDMI 1” channel, but this meant that I needed to disconnect the audio cables for the device that I had connected to the “AV 1” input (my Wii) – not a situation I was pleased with.
  • PC speed: Although HD video playback was possible, using the PC generally felt sluggish.  This was somewhat to be expected given the old hardware, but using Windows 7 on the old hardware wasn’t really a great experience.  One example is that it took several seconds to Alt+Tab (switch programs) between Windows Media Center and the Windows desktop.

After several hours of playing with the machine, based on the multiple problems I encountered, I made the call to abort the idea of using the old hardware for my HTPC.  Even though the idea of refurbishing my old PC didn’t work out, it had still been an interesting experiment; I had proven that I could get a Windows desktop to display on my TV, and gained an idea of what I could expect as a minimum baseline for an HTPC’s performance. 

The next step would be to go ahead and invest in a set of new parts, and build a new machine.  The new HTPC would be built with the new SATA hard drive I had already bought, and a new motherboard and processor that I would purchase.

The next post in this series will cover the results some testing I did with a loaner Intel-based HTPC that I borrowed from a friend of mine, as a last step towards a final determination on the parts list for my new HTPC build.

Monday, May 17, 2010

HTPC Build Part 2 – Testing a PC TV Tuner and Windows Media Center

This is the second in a series of posts I’m writing about an HTPC (Home Theatre PC) build that I recently completed.  To see a list of all posts in this series, click here.

Having gotten free HDTV via my DIY antenna working nicely, I decided to purchase a TV tuner and try it out with my existing PC running Windows 7 (and therefore also Windows Media Center), before making the full investment in a complete set of parts for a new HTPC.

I found a a pretty good overview video from Microsoft describing what it takes to hook a TV tuner card up to a PC.  Doing this on a PC running Windows 7 enables the ability to be able to watch live broadcast TV on the PC monitor.  It also enables Windows to record broadcast TV like a TiVo or similar DVR device – with no monthly fee!  (There are some free software packages for Linux that have similar functionality, but Windows is my preferred OS, so I decided to go with Microsoft’s software solution.)

HVR-850 After doing some research, I decided to purchase an HVR-850 USB-connection PC TV tuner by Hauppauge.  This tuner is compatible with over-the-air HDTV (ATSC) signals, and is certified to work with Windows 7.  I paid about US $55 for mine (and as of the time of this writing, it’s going for $55 shipped on Amazon).  (Note: This model isn’t compatible with some other types of TV signals such as “Clear QAM” from a set-top cable box; for that, you’d need a higher-end tuner part like the HVR-950.)

Unfortunately, the HVR-850 unit that I received was DOA. I plugged it in to my PC, and Windows 7 recognized the device right away, no driver install needed.  However, upon connecting the HVR-850 via the standard coax cable connection to my antenna and then scanning for over-the-air channels in Windows Media Center, the device wouldn’t find any channels.  I fiddled with the HVR-850 for quite a while, but just couldn’t get it to work.  Finally I had the idea to hook my old NES up to the HVR-850.  The output from the NES was just barely visible on the computer screen through heavy static/snow, and the music from the game was also just barely audible through heavy static/snow as well.  Therefore I concluded that the HVR-850 was “working” in that it was in fact sending some TV signal to the PC; it was just working very poorly!  Apparently I just had gotten a bad HVR-850 unit.

I contacted Hauppauge tech support, and they agreed based on my reported observed behavior that my HVR-850 was probably bad, and to RMA the unit under the warranty.  I got my replacement HVR-850 several days later, and this time, it worked like a charm!  Windows 7 once again recognized the part right away, and I was able to successfully watch live TV on my PC of the same TV channels that I could get on my regular TV.

I tested the DVR functionality of Windows Media Center (WMC) for a couple of weeks, and that worked great as well.  As with the TiVo I’d used previously, it was easy to select a set of shows to record, and have them record automatically.

A cool feature of Windows Media Center is that while watching a program, you can easily drag the current time index of the show back and forth using the mouse, and while doing so, WMC gives you a picture-in-picture indication of what is at the target location.  This makes it really easy to jump to a particular point of a show, and to quickly skip commercials.  It’s nice that Windows Media Center supports control of the software via either a mouse, or via a TV remote control.

At this point, I had effectively turned my primary PC into a fully-functional DVR, for just the $55 incremental purchase of the PC TV tuner above and beyond the cost of the PC hardware and software that I already owned.  Not bad!  However, while watching TV sitting in my office chair at my desk is okay, watching TV on my actual television while sitting on my couch in my living room would be much better!  So, having proven that the Windows 7 DVR software in Windows Media Center and the HVR-850 TV Tuner worked well, I decided to proceed with the next step of going ahead and actually assembling an HTPC for my living room.

Part 3 in this series will cover my attempt to save some money on parts by trying to turn my old 2004 desktop PC into an HTPC.