UPDATE: It would appear that Virtual COM ports do not work in Windows 8 for Atom based tablets. I’m not 100% this is the case, but I know people have been unsuccessful in doing so with the ASUS VivoTab Smart and the Lenovo Thinkpad Tablet 2, both of which run Atom processors. However, I am aware of one person using an AMD based tablet who had no issues setting up virtual COM ports. Feel free to share your experiences in the comments below!
Please note: this solution will not work for Windows RT as it requires a desktop application!
A quick little entry on something disappointing I discovered while using my Surface Pro. If you use a USB or Bluetooth GPS device, Windows Apps (the metro style ones, not the desktop applications) will not use it. They uses the Windows Location service which uses the wi-fi location service to approximate your position using known wi-fi access point locations. It is extremely useless in rural areas, and I’d even argue urban areas. But, I digress.
As far as regular desktop applications go, you’re fine. You can use the COM port created by your GPS device without issue in Streets & Trips, Delorme or whatever, just like you can on Windows 7 now. GPSGate works on Windows 8 as well. But, I was kind of perturbed that I couldn’t use the high accuracy GPS in the metro apps, like the default maps program that comes with Windows 8. Sometimes you just want to bring up Maps and utilize that touch tailored interface, ya know?
Luckily, someone else has solved this problem. Michael Chourdakis has written a user level driver for Windows 7 (also works in Windows 8) called GPS Sensor 7 that takes data in from a COM GPS device and funnels it into the Windows Location service. Now, those apps that will only work with that service can utilize your higher accuracy GPS device.
Michael initially developed this in 2009 to funnel COM GPS data into the Sensors API for Windows 7. He just recently (as of Feb 2013) got it working pretty well under Windows 8.
Here is where you get the software: http://www.turboirc.com/gps7/
Just go there, download the appropriate version for your system architecture (x86 for 32-bit, x64 for 64-bit), and install it. You will need administrator privileges to run it. When you start it up you’ll see a screen like this:
All you need to do is select the COM port your GPS device is on from the NMEA Source dropdown, set the baud rate (usually 4800) and hit the Get ILocation button. It should put a bunch of GPS data in the lower window like you see above. Once you have that working, click on the Install button. It will request permission, go ahead and do it. It may ask if you trust the driver installation, it should show up as signed by Michael Chourdakis. If so, go ahead and install it.
If you know your GPS device will always output on the COM port you selected, you can click the Set default location button and the software will default to that when it starts up. That way you can put GPS Sensor 7 into your startup menu and have it always run on boot. Now your GPS device is sending data to the Location Services in Windows, and you can enjoy your accurate position information from the metro style applications!
Note: if you’re using GPSGate, the NMEA Source you use in the GPS Sensor 7 software needs to be one of the Virtual COM ports you output to in GPSGate, not the COM port of the GPS device itself.