GPS Generic NMEA COM Port (Bluetooth, USB etc) Sensor Driver


  • I 've created the UMDF driver to expose a sensor interface for any NMEA-compatible GPS connected at a serial port (via bluetooth, usb etc). It works fine on my system, currently supporting GGA/RMC/GSA/GSV to return X,Y,Z,Precision Information,Satellite Information, Speed and Bearing.

    There is also a reverse driver available, which can map a location sensor (including GPSDirect) to a virtual COM port, for legacy software.

    To validate com port settings , you might need before installing the driver to connect to the GPS device directly (by using e.g. Turbo GPS or Hyperterminal) and verify that your settings work.

    The ISensor ID is {800EE0CB-71EC-40f0-991C-7E76BFABD1AF}, pass this to ISensorManager::GetSensorByID() to get the sensor.

    Best Regards.


    • Driver works with Location API.
    • Driver reports Satellite data.
    • Driver allows selection of the COM port baud speed.
    • Turbo GPS Updated to support Sensor API and indirectly, the driver.
    • Driver returns NMEA and Fix Type
    • Driver supports x86
    • Driver supports GGA and RMC


    • 種類を変更済み WindowsNT 2009年10月2日 17:25
    • 編集済み WindowsNT 2014年3月29日 13:08
    2009年9月28日 11:41


  • Hi Michael,

    I would like to test-drive the driver on my Fujitsu U2010 which has NMEA GPS integrated (Kyocera chipset). Can you provide a x86 binary or source code perhaps, so I can help out?

    2009年9月28日 14:14
  • The x86 driver installed fine. Now going to check whether it works.
    2009年9月28日 17:29
  • I was not able to get a satellite fix. Your app always displays "Invalid signal". Does that mean it can't get a satellite fix? Or does it mean it can't read the NMEA control strings? I am pretty sure I entered the right COM port, double checked with the device manager. Thanks.
    2009年9月28日 20:13
  • Nevermind. It is working now. I tinkered a bit with Hyper Terminal to find the correct baud rate (4800 baud for my GPS), then used your Turbo GPS application to check whether the settings were working there too. I figured that perhaps the sensor driver uses the same backend. The sensor driver now correctly shows the properties.
    One more thing though: How does the driver detect the correct baudrate and other settings for the serial port? Does it read settings from Turbo GPS? Or does it detect everything automatically?
    Thanks again and great job!

    Now I just need to find an application that uses the sensor and location API and is actually useable on my Fujitsu U2010 UMPC. The VE3DNavApp.exe binary uses WPF, which is unuseable performance-wise on my UMPC...

    2009年9月30日 10:30
  • Update 0.0.6 - Added satellite information values.

    2009年10月4日 18:16
  • Update 0.0.8

    Now the driver also works with Location API.


    2009年10月15日 13:58
  • Last update 
     - Driver signed (hey, with my own certificate just for testing yet :)
     - ILocation bug fixed.

    2009年11月2日 20:25
  • Update 0.11

    - Simulation mode added.

    2009年11月26日 14:52
  • How do you use this with the pdc laptop?
    2009年11月26日 16:13
  • Is the GPS accessible normally via a COM port ?

    2009年11月26日 16:31
  • According to the driver manager, the gps is on com 6. But I don't know anything about the port settings. And I'm not positive the format is NMEA but the odds are it is. It's a Huawei chip that has 3G, GPS, etc.
    2009年11月26日 18:54
  • Then try it with a COM port application to see if it works first, then try my driver and setup it to COM 6 and baud 4800. If it is available as a COM port, chances are that it will be in NMEA format (if not, there is nothing you can do).

    2009年11月26日 19:03
  • For me, using a Holux Bluetooth GPS on the PDC notebook, it shows up as COM16 at 4800 baud.  You should be able to see this by looking at the properties of the Bluetooth device after pairing with it.

    At first the driver didn't see anything, until I used a terminal program to connect to COM16.  At that point I got a notification that a BT device was connecting, and after that the driver started seeing data.  It's like the driver doesn't open the COM port but just spies on the data stream?

    BTW, later I turned off Bluetooth and noticed that the UMDF was taking a whole CPU until I killed it.
    2009年11月28日 16:03
  • The driver does open the COM port, but it seems to me that setting COM port options doesn't work properly, so it is the same for me, I had to open the port once with a COM-direct app, and then use the driver. I will make it to open the driver as a normal application first (through its GUI), verify that there is actually NMEA data going through and then actually install the driver.

    As for the cpu bug, I will take a look to what happens when i force my bluetooth off as well.

    2009年11月28日 16:14
  • Update

    Now the GUI checks and applies configuration to the selected com port and if the COM port actually opens and gets configured, then the driver is installed.

    Best Regards.

    2009年11月29日 15:52
  • Driver update to fix a x86 bug.

    2009年12月27日 19:29
  • Thanks for fixing ;-)

    2010年1月3日 20:08
  • Hi Michael,

    I have a new Motion J3400 tablet Windows 7 with an integral GPS (Gobi ?)  and while I have that GPS stopped I am trying to add a GlobalSat Bluetooth BT-359 gps.  I can pair the gps and it gets a valid stream as per hyperterminal on com 7 4800baud. What does not happen is that the bluetooth manager has it in the other category and not in a gps category. Damned if i dont have applications that cannot open the serial port. i did load your driver and it did show a stream on the initial load screen. I dont see where i can start that interface after the initial install to view the stream again. Also the application (Flightprep) still could not open the com 7 port.

    Any ideas?

    2010年1月6日 5:21
  • Hello there.
    Since you do have a COM7 port that opens with hyperterminal, that port should be able to get opened by any other application, no matter what the bluetooth manager says.  If the driver and Turbo GPS can open it, then it is an application level problem (Flightprep needs configuration on the port somehow).

    2010年1月6日 11:08
  • Hi Michael, the driver work great, do you plan on adding reconnect capability? If I power cycle my BT GPS your driver doesn't keep reading the data. I was hoping users could just install your driver once and then whenever they run my app it would just work.
    2010年1月11日 2:37
  • I 'll try that in the next update; it is not that easy because the driver has to be notified when to reconnect and I'm not the driver expert to be able to communicate from the app to the driver directly.

    2010年1月11日 14:14
  • Update -> Converted all VT_R4 to VT_R8. Reconnect capability still not there, but I am trying.

    2010年1月16日 16:35
  • Update -> Driver is now signed.

    2010年3月8日 15:29
  • Update

    Now driver opens the COM port only when a client sensor application is attached and closes COM port if all clients are disconnected. Also if an error occurs in the communication, the driver will retry the COM port as soon as a new client is attached.

    2010年3月17日 11:16

    Thanks for making this available.

    This is my first experience using the Sensor & Location features of Win7. Do you know if there is a C# sample showing how to use your driver?


    2010年5月1日 19:30
  • I'm not sure, but generally an ISensor is an ActiveX control so you would instantiate it and use it the same way you would with any other.

    Perhaps you should ask or search in a C# related forum about usage.




    2010年5月2日 0:01
  • I haven't had a look at the Code Pack, yet, but the Sensor Platform APIs  have been wrapped :


    2010年5月23日 22:53
  • Update for Turbo GPS to work correctly with the GPSDirect Sensor Driver & Geosense.



    2010年5月30日 10:31
  • Update

    Now driver starts in user-mode and goes to admin mode only when installing/uninstalling the sensor.

    Best Regards.


    2010年6月1日 14:46
  • I got a good install and GPSdirect was finding the satellites and I enabled GPSdirect in sensor/location.  When I rebooted my weather gadget cannot find any location and when I open gpsdirect it does not find any satellites.  What am I missing?



    2010年8月10日 4:29
  • No help on this from anyone?
    2010年8月15日 19:57
  • Weather gadget and GPS don't work together. Thinkpad users with a GOBI2000 card experienced this situation. In order to receive GPS data the workaorud is to close the weather gadget.


    2010年8月16日 19:33
  • Weather gadget and GPS don't work together. Thinkpad users with a GOBI2000 card experienced this situation. In order to receive GPS data the workaorud is to close the weather gadget.


    The Weather gadget does work with GPS.

    My understanding for loading this location/sensor driver was so that I could use the GPS device as a location/sensor. The Weather gadget is the only app that I know of that uses the location/sensor.  If it doesn't work then what can use this sensor?


    2010年8月18日 2:37
  • I've been having an issue with this driver i hope someone can help with.

    It installs and works great, after i set up my gps, the installer utility sees correct location data and my own app can see the data too.

    After i reboot there is nothing. I open the installer and it says invalid data.
    My own app reports NaN for all location values (lat / lon / speed / etc). The strange thing is if i uninstall the driver and then immediatley reinstall it then it all starts working again until the next reboot.

    It does survive hibernation though, in that case it comes back no issues until the next full shutdown.

    I'm running a custom app to read the data on a Windows 7 home premium 32bit machine.
    This is the only sensor installed in the Sensors control panel.

    • 編集済み leonk1234 2010年11月11日 22:26 spelling and formatting issues
    2010年11月11日 22:24
  • I 'll take a look - thanks for noting.



    2011年1月5日 22:29
  • Update 0.18 

    * Fixed some internal minor bugs

    * Changed the interface

    * Fixed the reboot bug.


    Best Regards.


    2011年7月16日 20:23
  • Update 0.20.


    Now the driver can also read NMEA data from a TCP/IP connection. 


    2011年7月17日 15:27
  • Hello there,

    I would like to know if it is possible to install the driver without selecting a com port (I know it will not work until it is configured).

    The problem is: We have an application that uses a USB GPS (usb-to-serial) that receives NMEA data. Sometimes we need to replace the GPS Hardware or change the computer or even the USB Port. By doing so, the COM Port is changed (it is a virtual COM Port) and I need to re-configure the driver (using administrative privileges).

    This is something I would like: My application would "auto-detect" GPS port (by iterating all ports available and checking for NMEA data manually) and then configure the driver to use the discovered port.

    That would give more flexibility to the system.

    Is that something planned for future releases ? Something completely new or even possible to achieve?

    By the way, I saw the sentence "If you want to redistribute this driver whithin your application contact me at the forum". Here I am: I do!

    Looking forward to have any feedback on this!

    Kind Regards

    Bruno Bertechini

    ----- Bruno Bertechini CIO Acensco Tecnologia

    2012年3月3日 10:53
  • I 've already answered to you in my forum, but I also say it here so others may see it.

    The driver can install/uninstall using command line parameters so everything can be configured programmatically. If anyone is interested for that, just drop me a note.


    2012年3月19日 20:12
  • Thanks for your answer Michael. As per my understanding, you are saying that I can use command line parameters in order to "install" the driver in a different port.

    But I think this does not solve my problem.

    As I said:

    "The problem is: We have an application that uses a USB GPS (usb-to-serial) that receives NMEA data. Sometimes we need to replace the GPS Hardware or change the computer or even the USB Port. By doing so, the COM Port is changed (it is a virtual COM Port) and I need to re-configure the driver (using administrative privileges)."

    Even if I use command line arguments I will need admin privileges to re-configure it. I would like to have some "method" to "call" the API to a different port or something (dont know if it is even possible).

    Otherwise I will need to have a windows service running with admin privileges to auto-detect the new com port and reinstall the driver. This is what I am trying to avoid!

    Michael, thank you very much for your help. Do you have any suggestions on what approach could be used here?


    Bruno Bertechini

    ----- Bruno Bertechini CIO Acensco Tecnologia

    2012年3月20日 15:22
  • First off, great work on getting this going! But I can't get it to work.

    I have a Verizon Jetpack 4G LTE, MiFi 4620L. It supports broadcasting GPS NMEA over WiFi. In fact, I can telnet to port 10110 and i get a stream of GPS data coming back, which looks like this (while on the interstate near Atlanta):


    So clearly I'm getting back data. But when I put in and port 10110 in the control panel for this driver and install it, it says Signal Invalid - 0 of 0 sats. Any ideas to try?

    2012年10月27日 15:16
  • The new update almost works with Windows 8.

    Some minor issues yet to be fixed.

    Best Regards.


    2012年12月13日 19:51
  • Do you have any comment on Paul's post above about devices that broadcast NMEA data over a TCP port? I have a device that does the same thing(Sixnet Cell Modem) and i also cannot get it to work over ip. Serial is no problem however, but it would be nice to get it working without the serial cable lol.

    Great project btw.

    2012年12月16日 3:05
  • Hi Michael,
    Great work!!
    I want to develop a location based app and using the built in wifi scanning sensor of win8 is not accurate enough.
    I managed to get NMEA signal from my Globalsat BU-353 GPS (which i purchased just because people have been successful making it work with your driver), however, the driver does not get the stream properly under win8. (see attached images)

    Huge appreciation for your work!
    Any progress on windows 8 development? if you need any help with the code let me know if I can help.
    Do you know if there is a workaround I can use to make it work?

    Best regards,

    GPS Info

    GPS Sensor 7

    • 編集済み Okets 2013年1月22日 4:19
    2013年1月22日 4:01
  • Turbo GPS also works.
    same machine, same settings, I am pretty convinced this is probably an issue with the driver...

    2013年1月22日 4:24
  • I 'm working on Windows 8 issues. It seems that it dies when a connection is terminated, and then needs reinstallation.

    Working on it.


    2013年2月3日 12:02
  • Update

    Threading and Windows 8 issues almost fixed. Please test and verify.



    2013年2月24日 10:57
  • Hi Michael,

    working fine for me, any special windows 8 issues you want me to QA?



    2013年3月15日 23:59
  • Great work on this. Now the million-dollar-question: can it be made to work with Windows RT? I understand RT is missing the Serial Port Profile, which could be a show-stopper. However "jailbreaking" the device to allow running of any user code is easily achieved so maybe there are workarounds... It seems that Microsoft doesn't care about all the legacy USB devices out there, and whether they work or not.


    2013年3月24日 21:37
  • You mean for a RT application to access the sensor? or for the driver to be a RT application?


    2013年8月30日 6:47
  • The newer version can also get data from TCP/IP.

    Check my site ( for instructions on how to get GPS data from an Android Phone and map it as a Windows Sensor.


    2014年1月7日 12:36
  • And now, a REVERSE driver is available!

    Maps any location sensor (including GPSDirect!) to a virtual COM port!

    Check my site :)


    2014年3月29日 13:07
  • Hi Michael,

    I try to use a GPS Sensor which is only providing COM interface through your driver as location provider on Windows8.1 but neither my navigation software, nor bing maps are working with it. But TurboGPS is reading it properly. What can be the reason?

    2014年4月3日 13:46
  • Does your navigation software read sensors?

    If yes, try setting the location by "Set My Location" button in the driver and try again.

    If no, perhaps you need the GPSReverse driver to simulate a COM port?


    2014年4月5日 15:05
  • The new version of the driver completes all drivers in one package + testing tools, and it's more compatible with ilocation services.

    Best Regards.


    2015年9月25日 21:22
  • Has this been confirmed to work on any version of Windows Server?  I tried installing it on 2012 R2, but the installer failed with "Sensor Manager cannot be created."  I could try with a 2008 box I have, but I'd strognly prefer to connect the GPS to my 2012 R2 machine.

    I am trying to capture NMEA 0183 v2.0 data via RS-232 COM port (old-school hardware).
    2016年2月22日 2:55