How To Fix Unresponsive USB Ports In Windows 7 Home Premium

I was working with the VCR today when, after a reboot, all the USB ports went dead. After much consternation (and a little bit of cussing), I was able to determine a solution.

Fortunately, I already had TeamViewer installed, so jacking in remotely was a snap. Without any kind of remote access, this process would be nigh impossible since the entirety of input devices are USB.

  1. Navigate to Control Panel -> Hardware and Sound -> Device Manager (listed under Devices and Printers).
  2. The last item in the tree should be Universal Serial Bus Controllers.
  3. Expand the USB Controller branch to expose the list of USB devices connected to the computer.
  4. Right-click and uninstall each of the listings, thus removing it from the system. One or more of the controller drivers was likely corrupted and removing all of them will ensure a clean installation.
  5. Reboot and allow Windows 7 to recognise and reinstall all the connected USB devices. Everything should work like new again!

More information on this problem as well as other solutions can be found here.

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

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.

How To Setup a Windows FTP Server With FileZilla

FileZilla is the de facto Windows FTP server solution. It is an open-source, free application distributed under the GNU public licence.

Installation is fairly straightforward, simply download and run the installer binary. Be careful, though, because Sourceforge sneaks some “sponsored software” into the installer, and you may end up with a little bloatware that you didn’t want or need. The default settings are fine, but you may want to change the default port if you’re going to be opening this sucker to the entire Interweb. Today, though, we’re staying behind the safety of our hardware firewall, so we can only access files if we’re connected to the same wifi.

Setup is a little convoluted, but can be made simple by following these easy steps:

One the server daemon is running and you are in the main window, click the “Users” button Screen Shot 2015-04-09 at 7.26.04 PM to add users to the server.

Screen Shot 2015-04-09 at 7.26.04 PM

In the Users window, click the “Add” button on the right side, type in a username and click “OK”. The user you just specified will be enabled automatically. You can assign a password for this user by checking the box next to “Password” and typing one in.

Screen Shot 2015-04-09 at 7.30.36 PM

Clicking the “Shared Folders” branch (on the left side), you can add directories and assign permissions. I only assign write, delete, and append permissions to my admin account while I give other users the ability to read files on the server. Each directory will require an alias, so give it something easy to remember when you open it in your FTP client.

Screen Shot 2015-04-09 at 7.40.40 PM

For more information on setting up FileZilla Server, including how to punch a hole through the Windows Firewall, consult the FileZilla Wiki.

How To Punch A Hole Through Windows Firewall

Windows 7 does a pretty decent job of sealing itself off from the wild and the wooly of the Interweb with its built-in firewall, but sometimes you have an application running that needs to interact with the outside world: a game or an FTP server, perhaps. In order for these applications to work correctly, you’re going to need to punch a hole in your firewall by adding an exception to Windows Firewall.

First, open Windows Firewall settings from the System and Security settings in the Control Panel.

Screen Shot 2015-04-09 at 9.16.00 PM

In the left sidebar, click “Allow a program of feature through Windows Firewall”

Choose the program from the list and check the box to the left to allow an exception. Check the boxes to the right to specify which networks the exception is allowed on.

Screen Shot 2015-04-09 at 9.19.32 PM

If your application does not appear on the list, click the “Allow another program…” button in the lower left, and either highlight the program from the list or browse for the executable file, then click the “Add” button. (NOTE: for FileZilla Server, make sure that “FileZilla server.exe” is given the exception NOT “FileZilla server interface.exe”)

Screen Shot 2015-04-09 at 9.22.25 PM

Streaming Music From The Cloud With Google Play

If iTunes is the centre of the iOS/OSX sphere of influence, then Google Play is undoubtedly the centre of the Android sphere. But at one time, it was simply a music service along the lines of the iTunes store, but it offered so much more than Apple did: it allowed users to upload a copy of their MP3 library to Google’s servers for streaming music to Android devices or through a browser.

Now, I have quite an extensive library full of rather obscure recordings and eclectic variety, so this came as a huge boon to someone like me. Pandora, Spotify, and Slacker could only go so far with their curated playlists full of repetitive tracks and limited playback options. For years, I’ve been looking for a solution to curate my music library for portable playback (“the Cloud” wasn’t quite a thing yet), and the only option available to me was the $300 iPod Classic (which has since been discontinued), a hefty price to pay for a dedicated device.

My biggest timesuck with Google Play’s music service has been cleaning my MP3 library. 30+ years of collected recordings tends to produce a few duplicate tracks now and again (many of which were songs pulled from Napster that I have since legitimately acquired by purchasing the full album). Granted, you are not required to take such meticulous care of your library, but I tend to be a little obsessive over cataloging, and I like everything to be just so. After several weeks dedicated to cleaning ID3 tags, eliminating duplicates, and filling in missing artwork, I was finally able to upload a clean version of my library: over 18,000 individual tracks! Google allows a whopping 50k tracks to be stored in your account, and the best part is that they will automagically replace your MP3 with the highest quality version available to them for streaming!

Now, I keep everything on a thumb drive organised locally via iTunes, then I upload a copy to Google Play for streaming to my devices: it sure beats the hell outta syncing and charging a separate iPod, I can guarantee that!

The Best BitTorrent Client: Why Have a Torrent When You Can Have a Deluge?

BitTorrent is by far the most effective means of quickly distributing large files to many recipients, but the decentralised and open-source structure of the system has created an overabundance of client software. The BitTorrent project itself recommends using its own µTorrent downloader client, but since going commerical, it has turned into an ad-laden, buggy, lethargic beast unsuitable for speedy downloads.

I’ve used Transmission extensively in my Linux and OSX work, so I’ve been content with it as it is simple and works. With the VCR running on Windows, I needed a client that worked in the new OS. µTorrent was the obvious first choice, but as you can see, that did not last long.

Screen Shot 2015-04-11 at 10.50.51 PM

I discovered Deluge by chance, and I have to admit, I am quite enamoured with it. The interface is very similar to any number of other BT clients, but the magic is in its automation options, its speed, and the fact that it is cross-platform. Seriously, Deluge is the zippiest client I’ve used yet! Try it and you’ll see that Deluge connects to peers faster and more reliably than any other client I’ve used, and it has reduced the times for my completely legit downloads by roughly half! It is certainly the best BitTorrent client that I’ve run across!

How To Setup IR Remote Control Access In Windows With WinLIRC

WinLIRC, unlike its Linux-based sibling, is a finicky priss to get working. I tried to follow the setup guide on their website, but it was getting late and I could no longer make heads or tails of what they were trying to convey. Starting fresh this morning, I took to futzing around with the settings until I had it working correctly.

Installing WinLIRC is as simple as downloading the zip file from SourceForge and extracting it to any location on your computer. For simplicity, I stuck the application folder in C:\

Screen Shot 2015-04-12 at 12.17.00 PM
“Program Files”? Shit just gets lost in there!

When you first run WinLIRC, you will get this error message off the bat:

CREDIT: WinLIRC
CREDIT: WinLIRC

Okay, I haven’t even defined a configuration, so obviously nothing’s going to work! Thanks, WinLIRC! Click “OK” and you’ll be taken to the main Setup window.

10 In the top section, choose the Input Plugin that is compatible with your remote. Since I’m using the SIIG Vista MCE Remote, I’m going to choose one of the MCEVista* plugins, and since my copy of Windows is 64-bit, I need the MCEVIsta64.dll plugin to drive my remote.

Screen Shot 2015-04-12 at 12.22.00 PM In the next section, you have to specify the configuration for the remote itself. Some fine folks have done a great job of writing a configuration file for almost every remote you might run across, so going to pop over to their website and grab /remotes/mceusb/lirc.conf.mceusb (right-click->”Save link as…”), saving it into the WinLIRC folder.

Screen Shot 2015-04-12 at 12.29.50 PMClick “OK” at the bottom, and you will likely get this message:

CREDIT: WinLIRC
CREDIT: WinLIRC

GOTO 10

CREDIT: WinLIRC
CREDIT: WinLIRC

tumblr_lcttnsi9AX1qb5bn1Screen Shot 2015-04-12 at 12.43.25 PM

GOTO 10

CREDIT: WinLIRC
CREDIT: WinLIRC

Rage_table_flipSo, how do you get it to work? The trick is that you can’t simply right-click->”Run as administrator”. Oh, no! You have to edit the properties so that it runs at elevated privileges all the time!

No, not here. One more step....
No, not here. One more step….

In the Properties dialog, click the “Compatibility” tab, and, at the bottom, don’t simply check “Run this program as administrator”. Click the button underneath that says “Change settings for all users”. THEN check “Run this program as administrator”!

Screen Shot 2015-04-12 at 12.52.20 PM
Okay, NOW you can check the box.

Try running WinLIRC again and you should see the system tray icon come up and you should no longer get the dreaded “Error Window of Doom”.

Now that you have WinLIRC properly configured and receiving signals from your remote, you’re going to need some way to parse those signals into useful commands….

Parsing IR Remote Control Signals In Windows Using EventGhost

Now that we’ve learned the secret to getting WinLIRC to run correctly, it’s time to decode those signals into commands that Windows can use. To do this, we’re going to use a powerhouse automation tool that is unique to Windows called EventGhost.

EventGhost is a plugin-extensible application that takes input from any myriad of devices or programs and, through the use of a simple IF/THEN programming setup (think IFTTT), calls the desired response within Windows, a particular application, or even connected devices.

Getting the VCR remote set up in EventGhost was more of a headache than I anticipated, and required a lot of scanning fora and a little noodling to get working correctly. However, once I found the proper combination of versions, plugins, and conditions, it’s working like a champ!

First, you have to download and install EventGhost. At the time of this writing, the newest version (0.4.1.r1700, released 4 Mar 2015) seems to be the culprit behind my inability to get the plugins working, so make sure you go with (as of right now) v0.4.1.r1694, released 27 Jan 2015. If there is development between now and the time you’re working on this, just bear this tip in mind if the latest version does not seem to be working.

When you first run EventGhost, there will be quite a bit of detritus that you won’t likely need already programmed as examples. Disable or delete everything in the Configuration Tree except “Volume Control”

The default configuration tree.

To enable remote control commands, you must activate the MCE Remote plugin. To add the plugin, choose “Add Plugin…” from the “Configuration” menu.

Select “Microsoft MCE Remote” from the list.

Do not install the version marked for Vista/Win7 as it is rather finicky and difficult to work with, requiring the installation of an alternate MCE IR service that is buggier than that scene in Temple of Doom.

Pictured: Attempting to work with AlternateMceIrService in Windows 7 (CREDIT: LucasFilm)

The settings for this plugin will allow you to set a custom button release timeout, which will be handy if your system is registering multiple button presses from your remote. I have mine set to 0.75 seconds, which seems to be just enough time. Play around with this setting to find something that works for you.

Additionally, the settings dialog will prompt you to disable HID service for the remote. You do not need to do this except under special circumstances. The HID service in Windows 7 works fine.

Test to make sure that the correct button presses are being registered in the left sidebar. If they are, congratulations! Your remote is now working in Windows and you can customise buttons to your heart’s content!