Microsoft Does It Again…

I see that I’ve used the phrase “open mouth, change feet” a number of times in the life of this blog to describe the continuing ability of Microsoft to snatch defeat from the jaws of victory. Today I came across yet another example.

I had noticed some reports that people weren’t able to get their navigation software to interface with the GPS sensor built in to some Windows 8 tablets.

Now the thing is that until very recently, PCs did not have GPS hardware built into them. Instead, external devices such as GPS Data Loggers were used to provide GPS data, and interfaced to Windows software applications via Windows COM (communications) ports. In the old days, these were physical RS232 ports. These days, they are “virtual” ports set up over a Bluetooth or USB connection.

In the development of Windows 8, support for a variety of sensors, including GPS, was built into the operating system, and exposed by a new set of APIs. The point being that this means that there is a new set of interfaces for developers to use, and they are different from the traditional COM port interfaces.

So, as you might expect, traditional Windows navigation software, which has been written expecting to find GPS data coming in via traditional COM port interfaces, won’t see the new generation of GPS receivers being built directly into PC hardware running Windows 8.

And so it is. Here for example is the very latest version of Microsoft’s AutoRoute 2013. I downloaded a trial version and installed it on my Lenovo ThinkPad Tablet 2, which has a Broadcom GNSS Gelocation Sensor in it. As you can see, AutoRoute 2013 expects to find GPS data arriving via a COM port, and complains that it can’t find the GPS receiver:

Autoroute 01

What I find truly ironic about this is that Microsoft trumpets the fact that AutoRoute 2013 now has support for the Touch features of Windows 8:

Autoroute 03

However, the AutoRoute team has completely forgotten to use the new interfaces for GPS sensors that may be present in Windows 8 devices. Open mouth, change feet.

A further irony is given by the fact that when this issue was raised in a Microsoft forum, Janet Schneider, a Microsoft employee, blithely writes that

You can use the Location API and a Location Provider Driver to get NMEA strings, instead of using a virtual COM port.

Janet, please tell that to your fellow developers in Microsoft, not us, the poor users of this stuff. The left hand of Microsoft clearly has no clue what the right hand is doing.

Now what would be really useful is for someone in Microsoft to code a software shim that would connect a virtual COM port to a Location Provider Driver. That would enable us to carry on using our legacy Windows navigation software on Windows 8 tablets with GPS receivers. It would even allow the AutoRoute 2013 software to work as advertised.

Addendum: Well, Microsoft hasn’t bothered to write a software shim, or updated their Streets & Trips or AutoRoute software at this time of writing (December 2013), but at least two third parties have developed shims:

Addendum 25 February 2014: If you’re looking for a map application that has maps held on your Tablet, and which will work directly with the GNSS sensor in the ThinkPad Tablet 2, then the good news is that Nokia has released its HERE Maps App for all Windows 8.1 devices. Even better, it’s free.

Addendum 8 July 2014: Microsoft has announced that AutoRoute, Streets and Trips, and Mappoint will no longer be developed, and will be dropped. I can’t say that I’m surprised, but on the other hand there are many Line of Business applications that have been built on top of MapPoint services, so those will have to be migrated over to Bing, HERE or Google Maps…

Addendum 25 August 2015: And Microsoft drops the ball once more… I’m now seeing reports that Microsoft has changed something in Windows 10 that affects the traditional virtual COM ports. The effect is that Bluetooth GPS loggers no longer connect properly. This means that I can no longer use my Qstarz GPS logger with my Surface 3 to feed GPS data into the Microsoft Maps app. Honestly, I despair at Microsoft sometimes; they are their own worst enemy…

Addendum 30 August 2015: For those of us who are definitely having problems getting the SPP slave port to work, there could be some good news on the horizon…
I’ve just upgraded my Yoga 3 Pro to the latest Insider Preview build (10532), and the SPP problem seems to have been fixed. I’m able to connect my Qstarz GPS logger and get data. This result has been confirmed by another person who had the same problem with the 10240 build of Windows 10.  I hope that this fix will be present in the October update to Windows 10 that will be available to everyone…

Addendum 1 October 2015: Microsoft has issued an update (KB3093266) to Windows 10 that fixes the virtual COM ports issue. Excellent.

About Geoff Coupe

I'm a British citizen, although I have lived and worked in the Netherlands since 1983. I came here on a three year assignment, but fell in love with the country, and one Dutchman in particular, and so have stayed here ever since. On the 13th December 2006 I also became a Dutch citizen.
This entry was posted in Computers and Internet. Bookmark the permalink.

31 Responses to Microsoft Does It Again…

  1. Peter Ferguson says:

    Oh no! I have been waiting for the Surface Pro specifically to run Oziexplorer which I have been using for over 10 years on MS X86 laptops for Marine navigation. Originally I used it with a GPS attached via the serial port then via USB Garmin GPS (when laptops stopped having serial ports). So I Google the subject and find not only are people having problems connecting such software to the internal GPS on W8 laptops they are having problems connecting to external USB GPS’s. Garmin have produced W8 driver updates but problems still exist. One guy says his “sees” the external GPS 50% of the time, another guy says he only got his to work by rolling back the device driver for the GPS. Very frustrating.

    • Peter Ferguson says:

      After finally purchasing a Sony Vaio Duo 11 (which I am extremely happy with) because it does have an internal GPS I too discovered that not many navigation programs are able to use the sensor API provided by W8. But the latest version of Oziexplorer does support it. (A fact discovered by Geoff quite a while back I read in a forum.) It seems a simple programming change is all that is needed for these programs to be able use the sensor API’s. I know it also seems strange that MS’s own software was not able to do this from the get go but according to guru Paul Thurrott, no division of MS ever liaise with another. A major problem at MS in his opinion.

  2. Charles says:

    Hello,
    I encounter the same problem with my Lenovo Tablet 2, on which I managed to install Fugawi Global Navigator 4.5. My remedy for the time beeing is the successful connection of a WinTec Data Logger GPS device via Bluetooth. That works without any driver problems, as you don’t need to install them for a Bluetooth connection. Another possibility could be the use of GPSGate, which is able to digest many different kinds of GPS inputs, not only COM-Ports, and to generate many COM-Port outputs. For that, I do need some more information how to access the inbuilt GPS sensor of my Lenovo Tablet. I’m still waiting for an answer from Lenovo….

    Kind regards, Charles

    • Geoff Coupe says:

      Charles, thanks for your comment. I have a Qstarz GPS data logger, which uses Bluetooth. I did a test and added it to my ThinkPad as a Windows 8 device. Windows 8 installed it automatically, and it set up a couple of virtual COM ports using Serial Link over Bluetooth itself. So then AutoRoute was able to use the Qstarz to get GPS data. That’s similar to what you did with the WinTec Data Logger. However, it rather defeats the object of being able to just take the ThinkPad along without an extra piece of kit.

      This issue seems common to a lot of existing software out there that has been written to use the virtual COM port technique of interfacing with GPS devices. I suspect that some of the software vendors will adapt their software to use the new Location Provider Driver and APIs. See the discussion on this thread for example:
      http://forums.arcgis.com/threads/75252-Using-ArcGIS-for-Windows-Mobile-with-the-Windows-sensor-location-API

      I’ve also seen a comment from a Lenovo staff member promising to see whether Lenovo would be able to develop a “software shim” to allow interfacing between virtual COM ports and the new APIs and drivers. However, I’m not holding my breath. Unless Microsoft does this for everybody, then I think what we will see, over time, is that every GPS software vendor will develop their own software shims. Reinventing the wheel many times instead of once.

      It’s possible that GPSGate may come up with their own software shim, but at the moment they haven’t. They are still working with the legacy interfaces; as far as I know they haven’t released anything for the new interfaces.

  3. Peter Ferguson says:

    Geoff, have you tried http://www.centrafuse.com/centrafuse-localizer. It is designed to output sensor data to a virtual comm port. I cannot get it to work on my Sony Vaio Duo 11 but others have it working on Lenovo TPT2

    • Geoff Coupe says:

      Peter, I’ve gone the route of using software that recognises the GNSS sensor data via the Windows 8 Location APIs, so I don’t need the centrafuse shim. But thanks for pointing it out; this should help others.

  4. Ken Zielinski says:

    I’ve solved that problem with a little VB magic… Using Janet’s API I was able to convert the Longitude and Latitude to a NEMA sentence that I send to output com port. The magic is complete when I employed a free virtual comport software that cross couples two virtual com ports together. I now have Delorme Street Atlas V8 (circa 2000) connected to one virtual com port and my program to the other and Delorme is happy. Ken Zielinski kazielinski@mindspring.com

  5. Pingback: Surface – The Next Generation | Geoff Coupe's Blog

  6. Pingback: Miix 2 built in GPS?

  7. Pingback: Dell Venue 8 Pro - does anybody have one - Page 3

  8. powermatt says:

    An alternative I’ve found for those of us that own an Android smartphone; an app called extGPS. Admittedly, it defeats the purpose of having built-in GPS, because it uses your phone’s GPS radio instead. Essentially, you pair your phone with your tablet, and then the extGPS app can create a virtual com port through the Bluetooth driver (the same way dedicated GPS receivers do it). There might be some issues with specific phones, though. It works well with an HTC One, but not at all with a Nexus 4.

  9. nathan says:

    I just got a Dell XPS with win 8.1, intent on mounting it in my big rig. My previous system was an XP pro machine. I used a Garmin USB receiver and GPSGate to create a virtual com. It worked great with my logbook program (eclipse) and my nav software (ALK Copilot truck laptop). I tried the same setup on the new Dell XPS W8.1 only to find my logbook program sees it but not my nav software. I tried a couple different nav programs but to no avail. I also installed Centrafuse Localizer but never could get that running. I’m running out of ideas here. Any thoughts?

    • Geoff Coupe says:

      Nathan, it seems odd that the logbook program will continue to work, but that your nav software doesn’t. Both should be seeing the GPS data coming in through the virtual COM port created by GPSGate, as they did on Windows XP Pro. It sounds as though the connection between GPSGate and ALK Copilot is not working properly.

      The Centrafuse Localizer software would only work if your Dell XPS is fitted with an internal GPS chip – is it? Then you would be using the internal GPS chip to provide GPS data (appearing in the Windows 8.1 Location Service) via the Localizer, which takes that data and creates a virtual COM port to interface with your applications and pipe the data to them. In that scenario, you wouldn’t be using your Garmin USB receiver at all.

  10. Ben Williams says:

    Geoff, struggling with Bluetooth GPS devices, OziExplorer and Win 8.1 specifically a Surface Pro 3, a Toshiba Encore and a Toshiba Slider. A USB device works fine with OziExplorer however when I try a Bluetooth device I only get occasional position updates. It would be nice to get back to the virtual COM ports etc that work with win 7 and before. Advice please. Ben

    • Geoff Coupe says:

      I’m not sure what you mean by “It would be nice to get back to the virtual COM ports etc that work with win 7 and before”. These are just the same in Windows 8 as in Windows 7.

      You seem to be saying that your USB GPS device is providing more position updates than your Bluetooth GPS device. I assume that the Bluetooth device is showing up in the GPS Port Checker utility that Oziexplorer provides? I don’t know whether it is possible to adjust the BT GPS device settings? I suggest you email Oziexplorer support, they’ll probably be able to help you more than I can. I don’t use Oziexplorer myself.

  11. Zach Anderson says:

    I’m attempting to write a Visual Basic app for desktops to receive GPS NMEA data. My old USB GPS receiver (Delorme Earthmate LT-20) is apparently not supported in Windows 8.1, although it is detected as a device and as functioning properly. I do have a Nokia Lumia 920 Windows Phone w/GPS, however. I could use either USB or BT, I suppose, but nothing is detected so far by any app on my laptop. How can I receive the data onto my laptop? VB.Net code appreciated. Thanks.

  12. Peter Ferguson says:

    Thought I better update my experiences here. My Sony Vaio Duo 11 died (lent it to my sister who when for a 2 week trip on a yacht with it.) Bought a surface pro 3. Absolute love it EXCEPT no GPS. I have searched the internet for a week trying to find someone who can absolutely tell me the name of a USB or BT GPS that will work on surface pro 3 with 8.1. I have 2 Garmin USB GPS that are more than 8 years old. I have tried all new drivers but nothing, I cannot get them to work. I have my beloved oziexplorer loaded on my surface 3 just waiting for any real GPS to connect.

    • Geoff Coupe says:

      Peter, when you say you cannot get them to work, do you mean that they won’t work anymore with oziexplorer, or they don’t work period? I have an old GPS logger (a Qstarz) that is of a similar vintage, and this still works in Windows 8.1. Can you try the dongles with a different mapping program? For example, try the Maps Pro app (in the Windows store). That will work with both the Windows Location service interfaces or the old-school virtual COM ports. Could be a way to check where the issue lies?

    • Matt says:

      I realise this is an old post, but I thought I’d share for reference. Globalsat BU-353S4 is a USB GPS receiver that I have recently setup successfully on a Dell tablet running Windows 10. Oziexplorer works (set to USB Mouse GPS) well, I went for a drive and moving maps works as expected. The GPS has a magnetic base so you can put it on your roof and it is also water proof. They’re only 70 odd dollars and I see that you can purchase them from Oziexplorer direct.

  13. Clive says:

    Well, after a long time Microsoft seems to have made a step forward! I’ve just upgraded to the major revision of Windows 10 (Threshold 2) and was pleased to find that USB GPS are recognised by the location service. You don’t even need to tell the location service that one is there. That means that you can now use your USB GPS with the Windows 10 Maps App, which is reasonable as free software and lets you download maps for many countries, so you don’t need to be connected to the internet. I still prefer to use Autoroute 2013, which runs fine under Windows 10, even though Microsoft withdrew support at the end of 2014.

    As an aside, before the major update I was having problems installing Autoroute under Windows 10 due to the ‘licensing error’ that has arisen at times for people since Windows 7. The problem was resolved after the major update.

  14. Sean says:

    Looks like I am not the only one that is disappointed that the Surface doesn’t have built in GPS! Obviously there are solutions and workarounds for this, however my issue is that I have a Lumia 950 and cannot find an app that allows me to share my NMEA GPS data from my Lumia to Surface. Any thoughts suggestions on the subject are welcome…..

    Cheers!

    • Geoff Coupe says:

      Sean, I don’t think such an app exists unfortunately. And with the current low market share of Windows Phone, I doubt that we’ll be seeing one appear. A separate GPS logger using Bluetooth is probably your best bet to get NMEA data into your Surface.

  15. Lukas Jenkins says:

    Would a Surface 3 LTE with built in GPS (Broadcom GNSS 47531 chip) provide NMEA data to applications automatically? Or does the visual com that exists in Windows 10 have to be set up somehow? Or would a external GPS such as the GlobalSat BU-353-S4 USB GPS Receiver be needed for NMEA data?

    • Lukas Jenkins says:

      spelling correction: *virtual com

    • Geoff Coupe says:

      Lukas, I’m not sure what the Surface 3 LTE will do. If it’s anything like my Lenovo ThinkPad 10 (which has a Broadcom GNSS 4752 chip fitted), then it should use the chip to feed data to the Windows 10 sensor APIs, which are used in turn by Windows 10 apps.

      Also, as far as I know, most of the external USB GPS receivers will use Virtual COM ports to feed in NMEA data (the traditional Win32 method). You’d need to use Windows 10 apps that supported this set of APIs – e.g. Maps Pro.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.