I built an HTPC from an old VCR

My latest grand project has come about from a desire to have an integrated home entertainment solution and an inability to find any off-the-shelf product that handles media the way I want it to.wpid-wp-1427424367999.jpg

My first impulse was to build an HTPC in a traditional desktop-style case, but I could not locate one that would fit in my IKEA Besta TV stand. As it happens, I had a cache of old VCRs taking up space in storage after my VHS digitising project, so I grabbed one that would suit well and got to tinkering.

wpid-wp-1427425387636.jpg
A few hours of Dremel work and the original RCA and Coaxial ports are replaced with USB and HDMI.
wpid-wp-1427425396022.jpg
The front RCA ports made a convenient location to add a couple front USB ports.

 The form factor of the VHS turned out to fit an mATX motherboard and power supply side-by-side almost exactly. Thankfully, there was still plenty of clearance for fans and other internal bits as well. Best of all, the case pays homage to a time in my childhood when the VCR (actually, this exact VCR) was the focal point of entertainment–perhaps even more than the NES that sat next to it. After all, you can’t play Super Mario Bros. and build Lego models at the same time!

wpid-wp-1427425401398.jpg
Still a slightly jumbled mess inside, but it works.

With the internals completed, I set about assembling the software suite. XBMC provides the main interface while Firefox and RetroArch supplement functionality for most streaming services and video games. The biggest decision I’ve had to make was whether to build the system on Linux or Windows. I’ve completed comparable versions under both, but I eventually paid for a Windows 7 license to take advantage of the superior graphics processing compatibility provided by Microsoft DirectX as well as eliminate the headache of futzing around with Wine compatibility settings.

wpid-wp-1427425380569.jpg
Original serial number and patent labels joined by the ubiquitous “Intel Inside” decal.

The end result is an all-in-one streaming media, local media, classic and modern gaming machine that evokes an aesthetic of an era that is quickly fading into the annals of history.

wpid-wp-1427425384322.jpg
The original date of manufacture label: June 1993.
wpid-wp-1427425391689.jpg
21 years of reliable service and counting!
wpid-wp-1427424377477.jpg
The unit’s cassette door broke off sometime in the late 1990s, so I 3D printed a replacement to seal the innards from dust. I also replaced the original 7-segment display with a USB liquid crystal display.

VCR Project Workflow: Windows

How To Install Intel Graphics Drivers in Ubuntu Linux

The motherboard that I picked up for the VCR project provides out-of-the-box full-resolution HDMI video under Linux, but requires an additional proprietary Intel graphics driver to process audio through the HDMI port. Thankfully, this is not a terribly difficult process thanks to the fine folks at Intel providing an easy graphical installer package.

Head over to https://01.org/linuxgraphics/ and download the .deb package for Ubuntu.

Use your preferred package manager to install the .deb package, then run the installed package.

Follow the on-screen instructions to install the drivers.

How To Verify HDMI Audio Out In Ubuntu Linux (And Its Derivatives)

Assuming you have installed your graphics card drivers correctly, you will still want to quickly verify your HDMI audio out is working before any further mucking about in the operating system environment. In Ubuntu 14.04, this is done quite simply from the menu bar.

Click the sound icon in the upper-right corner, then in the context menu that appears, click on “Sound Settings”

Screen Shot 2015-04-03 at 11.02.11 PM

In the Sound Settings dialog box, verify that your sound card is activated and click the “Test Sound” button.

Screen Shot 2015-04-03 at 11.02.32 PM

Click the test button for each channel and verify the output.

Screen Shot 2015-04-03 at 11.02.38 PM

Other derivatives of Ubuntu (particularly the lightweight Lubuntu) do not have the robust GUI that Ubuntu features. In these cases, a little terminal jiggery-pokery will be necessary.

Verify the HDMI audio output with this terminal command:

aplay -D plughw:0,3 /usr/share/sounds/alsa/Front_Center.wav

Use Nano (or another inline text editor) to add the following line to /etc/asound.conf AND/OR ~/.asoundrc (depending on what your distro uses)

pcm.!default = pcm.hdmi

Reboot, and you should be up and running with full HDMI stereo sound!

How To Setup IR Remote Control Access In Ubuntu Linux

What HTPC setup would be complete without a remote control to command your rig from across the room? For the VCR, I chose the SIIG Vista MCE Remote for its compatibility and range of functions. It also happened to be reasonably-priced at Micro Center when I bought it.

To get started, plug in your IR receiver USB dongle and install LIRC from the terminal:

sudo apt-get install lirc

During installation, you will be presented with a dialog asking you to select the specific remote control you have.

Screen Shot 2015-04-08 at 3.49.35 PM

For the SIIG Vista MCE remote, choose “Windows Media Center Transceivers/Remotes (all)”

Screen Shot 2015-04-08 at 3.49.51 PM

Then, choose your brand of IR blaster (if applicable). In this example, I do not have one installed, so I chose “None”.

Screen Shot 2015-04-08 at 3.50.02 PM

Allow the installation to finish, then install LIRC X Utilities from the terminal with the following command:

sudo apt-get install lirc-x

Test your remote’s communication with the irw terminal command.

Point the remote at the receiver and press a few buttons, you should get some coded output on the screen. If so, congratulations! Press C to quit IRW.

If there is no output, verify that the dongle is working (there’s usually a red light that accompanies keypresses) and that the correct remote was selected in setup. You may need to reboot for the computer to recognise the new hardware.

For more on remote control setup, click here.

How To Install The nMedia PRO-LCD USB Module In Ubuntu Linux

CREDIT: nMedia
CREDIT: nMedia

To maintain a level of authenticity, the VCR required an external display like the one originally installed to show status, function, channel number, etc. I opted to replace the original 7-segment display module with a USB-powered LCD to put a modern spin on the old look. There aren’t many display modules available, so I did a little research to make sure that the nMedia PRO-LCD would be compatible with Linux drivers. Fortunately, it is, but it took much cursing and gnashing of teeth to get it working.

First, make sure that the USB cord and power supply are plugged in.

CREDIT: nMedia
CREDIT: nMedia
cable3 USB
CREDIT: nMedia
image004
CREDIT: nMedia

Power-on the computer, and the display should show a test pattern with the words “MCE Indicator TM for Media Center” dancing around. Now, it’s time to install drivers!

From the terminal, execute the following:

sudo apt-get install LCDproc

Once LCDproc is installed, configure the daemon by editing /etc/LCDd.conf in Nano or another text editor. Change the following settings to the appropriate values:

Driver=lis

Foreground=no

AutoRotate=no

ServerScreen=no

Backlight=open

Heartbeat=open

Reboot, and your LCD is ready for input! Or is it output?

How To Install RetroArch And Libretro In Ubuntu Linux

RetroArch may be the single greatest contribution to classic gaming emulation since the dawn of Nesticle: a multi-console emulator frontend spanning the history of videogames from the Atari 2600 through Playstation eras. Libretro is the companion to RetroArch that contains all the emulator cores.

Installing RetroArch and Libretro in Windows or OSX is a fairly simple process of downloading the RA binary and the Libretro cores, but in Linux, it takes a little more effort.

First, add the Hunter Kaller repository to Ubuntu and update:

sudo add-apt-repository ppa:hunter-kaller/ppa
sudo apt-get update

Install RetroArch and Libretro with a couple of terminal commands:

sudo apt-get install retroarch
sudo apt-get install libretro*

When you run RetroArch, the Libretro cores will be located in /usr/lib/libretro/

Screen Shot 2015-04-08 at 7.26.04 PM

How To Watch Netflix and Hulu in Linux

Linux is great for many applications, but the plugins that drive streaming services like Netflix and Hulu are closed-source and the developers have little to no interest in supporting a “fringe” operating system. Thankfully, the fine folks at Google saw the wisdom in giving back to the community that helped build them by building Netflix and Hulu support into the Google Chrome browser.

Install Google Chrome by downloading the appropriate package from the Chrome website and you’re ready to go!

For the first time in nearly a decade, I’m using Windows as a primary OS

I have to admit, I haven’t used Windows on a machine that I own since 2006 when Microsoft wanted me to pay for a new license for the copy of Windows XP Pro that I legally purchased as an upgrade to the same computer I had been using since 2002. Microsoft–to put it mildly, and in plain terms–royally pissed me off that day, and I swore off their products for what might have seemed forever. I switched to Ubuntu 6.06 and became an instant fan of Linux, reliving some of my youth spent digging around in MS-DOS and writing lines upon lines of code. I ran various flavours of Linux for years all the while staying sure of myself that I could run anything just as well as I could with Windows.

In 2010, that all came crashing down–literally–when a bookshelf fell from the wall in my tenement apartment and crushed my laptop. I did the best I could to revive it, but the hardware was circling the drain. It was time for a new computer. I bought a MacBook Pro.

I’m a fan of OSX at its core level. The system is based on UNIX (“It’s a UNIX system. I know this!”), so it’s sorta like Linux…except that it just works. No muss, no fuss, and no compatibility issues that need to be sorted. I’ve been happily using OSX going on 5 years now, but for the VCR, I was not going to attempt the foolhardy pursuit of building a hackintosh. Ubuntu proved very capable in building a functioning software suite, but when I got to the higher end of the project’s performance envelope–namely in areas regarding emulation–Ubuntu’s OpenGL processing was simply falling short.

Finally, for the first time in nearly a decade, I have installed Windows as a primary operating system on a machine that I own. Thankfully, I missed the Vista era (as Vista is to 7 what ME was to XP), and in my experimenting with Windows 8 at my day job, I knew that tiled monstrosity wouldn’t see day one on my network! Windows 8 is a jumbled mess that can’t decide if it’s going to be for desktops or tablets, showing the shortcomings of both and the advantages of neither. Even the 8.1 upgrade still managed to take away a lot of the core functionality that I would rely on for the VCR. For this reason, I took the plunge and bought a copy of Windows 7 Home Premium.

So far, the $99 price tag has shown its value against my open-source mistress in the gaming realm, allowing me to play my entire games library without complex compatibility layers or other desenrascanço. I can even purchase new games from Steam and Good Old Games to go along with the hundreds of titles I already own! There are a few key functionality options in Windows that one does not enjoy in Ubuntu as well. The case in point: EventGhost. Ubuntu does have an ability to program macros to various events in the OS, but only in Windows is there a GUI that walks you through setup quickly and easily.

The bottom line: Linux is fantastic and an unbeatable bargain for the price (free), but for the foreseeable future when you need a little extra multimedia support, it’s worth dropping a Benjamin to get DirectX.