Ever have trouble setting up a GPS device on Windows Mobile 5?  Ever wonder what that GPS control panel really does?  Well, wonder no more...

Windows Mobile 5 introduced a new feature called the GPS Intermediate Driver which allows multiple apps to share one GPS device.  In the past, if one app had the GPS COM port open, no other app could use it.  But the Intermediate Driver creates a virtual COM port that multiplexes the real GPS port, and can handle multiple client apps simultaneously.

Windows Mobile 5 also introduced a GPS control panel to allow you to configure the Intermediate Driver.  The control panel lets you set the Hardware Port, which is the real port the GPS device is actually on, and the Program Port, which is the virtual COM port the Intermediate Driver exposes.  It is called the Program Port because it is the COM port that GPS programs talk to.  (They no longer talk directly to the Hardware Port, so it can be shared.)

Unfortunately, there are two complications.  First, only Pocket PC has this control panel.  Smartphone does not, which makes the GPS Intermediate Driver unusable on Smartphone.  We hope to announce a solution to this very soon.  Second, some Pocket PC OEMs hid the GPS control panel.  However, it can be unhidden by going into the registry and deleting any "Redirect" or "Hide" keys under HKEY_LOCAL_MACHINE\ControlPanel\GPS Settings.

The Program Port can be any unused COM port.  But you may be wondering how you know what the Hardware Port is.  Well, if your device has a built-in GPS, then it is on a fixed port, and you need to figure out what that port number is.  There are any number of ways to do this; I usually just do a web search on live.com for the model name, "port", and "GPS".

If you have a Bluetooth GPS, you need to set up the Hardware Port yourself (regardless of whether you are using the Intermediate Driver or not).  Since this process can be a bit confusing, here are the step-by-step instructions:

For Smartphone:

Start/Settings/Connections/Bluetooth.
Make sure Bluetooth is set to "On".
Menu/Devices
Menu/New
Select your GPS device from the list and press Next.
Enter the passkey for the Bluetooth GPS.  For example, 12345678.
Next
You should get a message box saying "Your Smartphone has connected".
OK
Next
Check the "Serial port" checkbox.
Done
Done
Menu/COM Ports
Select your GPS.
Menu/New Outgoing Port.
Select your device and press Select.
You will see a COM port that has been chosen for your GPS.  For example, COM6.
Done
Done
Done
Now your GPS is set up on COM6.  Start your GPS app and configure it to use COM6.

For Pocket PC:

Start/Settings/Connnections/Bluetooth
Check the "Turn on Bluetooth" checkbox.
Press the Device tab.
Press "Add new device..."
select your GPS device and press Next.
Check the "Serial Port" checkbox and press Finish.
Press the COM Ports tab.
Press "New outgoing port..."
Select your device and press Next.
You will see a COM port that has been chosen for your GPS.  For example, COM0.
Press Finish.
Now your GPS is set up on COM0.  If you do not want to use the Intermediate Driver to share the GPS port, just start your GPS app and configure it to use COM0.  If you do want to use the Intermediate Driver:

Start/Settings/System/GPS. (If you do not see GPS listed, see the registry hack above.)
Set the "GPS Program Port" to any unused COM port, for example, COM9.
Press the Hardware tab.
Set the Hardware Port to COM0.
Set the baud rate to the baud rate of your Bluetooth GPS (usually 4800, or 9600).
Press OK.
Start your GPS app and configure it to use COM9.

 

- Jason Fuller