How to get an External GPS Working with an HTC Touch Diamond Windows Mobile Phone
Wednesday, June 03, 2009, by Sebastian Dwornik

The HTC Touch Diamond phone supports a built-in QualComm GPS receiver, which in most cases works fairly well, but its sensitivity to acquiring satellites quickly is still lacking.

In my experience, the moment I near the vicinity of a larger city, such as Toronto, and turn ON the internal GPS, it will almost always fail to lock-on any satellites.  This is without even getting into the downtown core with skyscrapers and other large buildings.

Before this, I used to use the OnCourse SiRF star III Bluetooth GPS Receiver with a simple PDA, which worked extremely well, even indoors.

So given that the HTC Touch Diamond phone has Bluetooth support, I decided to try using the OnCourse external GPS with it.

Within a few minutes I had the two devices linked over Bluetooth and configured the External GPS parameters under the Settings -> System dialog.

Bluetooth Settings

External GPS Settings

Unfortunately, it wasn’t quite that simple.

When it failed to work, I reviewed my steps including the External GPS parameters under Settings -> System dialog, and noticed that the GPS Hardware port was not being saved.

GPS Hardware Port

So, as usual, the first step is to ask for help from the Google oracle.  When that failed to retrieve a working solution, I rolled up my sleeves and went Registry diving.

I tested the various Windows Mobile Emulators I use for developing my software, and the External GPS parameters were being saved properly on them.  It was then just a matter of comparing the registry details with my HTC Touch Diamond phone.

The Windows Mobile Emulators contained a "Control Panel Configured Device" key located under [HKEY_LOCAL_MACHINE\System\CurrentControlSet\GPS Intermediate Driver\Drivers] that was missing on my HTC Touch Diamond phone.

So I added this missing key, copying also its parameters from the Emulator images, and the resulting setup was formed.

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\GPS Intermediate Driver\Drivers]
"CurrentDriver"="Control Panel Configured Device"
"CurrentDriverExt"="Control Panel Configured Device"

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\GPS Intermediate Driver\Drivers\Control Panel Configured Device]

PHM drivers    PHM Control Panel

When the "CurrentDriver"="Control Panel Configured Device", the GPS Hardware port setting is then saved properly, and I am able to establish a working connection with the OnCourse external GPS.

To revert back to using the HTC internal GPS, I simply rename the "CurrentDriver" registry keys to match their appropriate setting.

Internal Driver    External Driver

This may seem like an inconvenience to always having to rename a registry key every time I want to switch to using an external GPS, and ideally a little app that would do it for me would be better.  Maybe I’ll write one if there is enough interest.

Re: How to get an External GPS Working with an HTC Touch Diamond Windows Mobile Phone

Wow, adding this one key made everything work. I also consulted the Google gods, but didn't turn up much but a bug report on MSFT's own website. Good work in sniffing this one out!

Monday, June 29, 2009

You're very welcome. :)

Now I just hope the "Google god's" are listening and make sure to add this gem to their index for others to find. ;)


Sebastian Dwornik
Monday, June 29, 2009

I added the missing entries you mentioned here, but the problem did not change. I'm on an HTC Touch Pro (Verizon). Is there something else I might have missed?

Can you send a reg file with the changes by any chance?

Tom Faulkner
Thursday, July 09, 2009

Here is my exported registry file. (

I used the PHM Registry Editor to export it.

Hope it helps. :)

Sebastian Dwornik
Thursday, July 09, 2009

This topic is archived. No further replies will be accepted.




Copyright © 2007 - 2018 Applied PDA Software, Inc. Fresh Lime Studio
All products mentioned on this web site are owned and copyrighted by their respective companies.