Browsed by
Month: August 2013

Code 19, missing CD drives, iTunes and you

Code 19, missing CD drives, iTunes and you

I recently rebooted my PC and noticed my CDRom drives had all disappeared.  Not only that, but the machine was acting strangely too.  I looked at the drives, and saw each of the devices was disabled with this message:

Code 19: Windows cannot start this hardware device because its configuration information (in the registry) is incomplete or damaged

A quick Google turns up this article:

A registry problem was detected. This can occur when more than one service is defined for a device, if there is a failure opening the service registry entry, or if the driver name cannot be obtained from the service registry entry.

Try these options:

  • Click Uninstall, and then click Scan for hardware changes to load a usable driver.
  • If the device is a CD or DVD drive, follow the procedure in Article ID 929461 on the Microsoft Web site (
  • Restart the computer in Safe Mode, and then select Last Known Good Configuration. This rolls back to the most recent successful registry configuration.

When that didn’t work, I followed the link to article 929461 and tried this:

To resolve this problem, remove the affected filter drivers. To do this, follow these steps:

  1. Click Start, type regedit in the Start Search box, and then click regedit in the Programs list.
  2. If you are prompted for an administrator password or confirmation, type your password or click Continue.
  3. Locate and then click the following registry subkey:
    There can be many instances of the registry subkey that is mentioned in step 3. You must make sure that you are in the appropriate registry subkey before you change the UpperFilters and the LowerFilters values.
  4. To verify that you are in the appropriate registry subkey, make sure that the Default value is DVD/CD-ROM and the Class value is CDROM.
  5. If you see UpperFilters in the pane on the right side, right-click UpperFilters, and then click Delete.
  6. Click Yes to confirm the removal of the UpperFilters registry entry.
  7. If you see LowerFilters in the pane on the right side, right-click LowerFilters, and then click Delete.
  8. Click Yes to confirm the removal of the LowerFilters registry entry.
  9. Exit Registry Editor, and then restart the computer.

When I did this, I found that Upperfilters pointed to GEARAspiWDM.sys.  The Lowerfilters pointed to a program I knew.  In searching for GEARAspiWDM.sys, Google reveals:

Many of the comments imply this file and service comes with iTunes.  Sure enough, I had just un-installed of iTunes 11 and the done a fall-back install of iTunes 10.7 (due to the fact they broke drag-and-drop).  I removed the filter and then remove/added each drive in turn.  The drives returned like normal and the system returned to full performance.

Thanks again Apple – for your cr*ppy iTunes software.


Getting Intel’s HAXM hardware accelerated Android AVD running on your system

Getting Intel’s HAXM hardware accelerated Android AVD running on your system

One of the (frankly) terrible aspects of doing Android development is the horrendously slow Android emulator. This is especially true if you do OpenGL ES development.  Fear not!  Intel has come to the rescue.  They’ve released HAXM (Hardware Accelerated Execution Manager) that dramatically speeds up your Android development and emulation.  Best part is that it’s free. The amount of time you’ll save on app start up alone makes it worth every moment you’ll spend setting it up.


  1. Install Eclipse as your normally would
  2. Open the Eclipse SDK Manager.
  3. Install one of the latest Android API packages with two important points:
    1. The API level MUST INCLUDE AN INTEL X86 ATOM SYSTEM IMAGE (API 17 at the time of this writing).
    2. Also select the HAXM support.  Found in: ‘Extras’->’Intel x86 Emulator Accelerator (HAXM)’
  4. After those packages are all installed, close the manager and open Eclipse.
  5. Open a workspace and get an app ready to test (use one of the samples if necessary)
  6. Go to: Run->Run Configurations
  7. Right-click ‘Android Application’ on the list on the left and select ‘New’
  8. I named mine Standard_Run_Configuration – but you can name yours whatever.
  9. Put the project name in the Project box (mine was AndroidCubeStart)
  10. Select the ‘Target’ Tab.
  11. Select the ‘Automatically pick compatible device…” option, then select the ‘Manager’ button.
  12. At the Manager pane, select ‘New…’
  13. Fill out the AVD with these notes:
    1. Target MUST be one of the API target levels that has the Atom system image (see step 3)
    2. CPU/ABI must be Intel Atom (x86)
    3. In the ‘Emulation Options’ list, select ‘Use Host GPU’
    4. Select OK to save
  14. You should see your new AVD listed when you’re back at the Android Virtual Device Manager page.  To test it, select it from the list and then press the ‘Start…’ button.
  15. If all goes well, you should have your hardware accelerated AVD emulator.   You should notice that the emulator runs orders of magnitude faster than the standard emulator!


Common problems:

I had the problem where this message appeared when I tried to run the emulator.

emulator: Failed to open the HAX device!
HAX is not working and emulator runs in emulation mode
emulator: Open HAX device failed

To fix this, I tried a number of things that didn’t work, but manually installing HAXM fixed it:

  1. Close Eclipse and Eclipse SDK manager, but still make sure you’ve got the Extras->HAXM installed in the Eclipse SDK Manager (as you did in step 3 above).
  2. Go to the Intel HAXM download page:
  3. Run the install package to the normal locations.
  4. Restart Eclipse and see if you can run the emulator via going to ‘Run’->’Run configurations’.  This time it worked for me.  You should see something like this from the message window if your HAXM is running in hardware accelerated mode.
Starting emulator for AVD 'ARM-HAXM'
emulator: device fd:756
HAX is working and emulator runs in fast virt mode
creating window 0 0 480 800
Programming a new remote entry key fob for a 2004 Mazda 6

Programming a new remote entry key fob for a 2004 Mazda 6

Had one of my key fobs die and had to replace it.  Question is – how do you program the car and key fob to work together?  Turns out the process is quite entertaining.  People wonder what the heck you’re doing when you’re following this procedure out in front of your house on a well-traveled street.

Makes one wonder what other secret codes are available for your car…

Step 1: Open drivers door and leave open.

Step 2: Lock and unlock the drivers door using the power door lock switch on the door.

Step 3: Insert key into the ignition.

Step 4: Turn key to on position and return to off position. (IMPORTANT – use ON position NOT ACC position). Do this 3 times within 10 seconds. Leave key in the ignition.

Step 5: Open and close the drivers door 3 times. (Door should be left open after this step).

Step 6: ECU should respond by locking and unlocking the doors.

Step 7: Press any button on remote #1. ECU responds by locking and unlocking the car doors.

Step 8: Press any button on remote #2 (etc.) Each time the ECU will respond by locking & unlocking the doors.

Step 9: Remove the key from the ignition and the ECU will respond a final time with a series of door locks and unlocks. You’re done!