Connecting a GPS Receiver to a Laptop PC

To collect live data from your GPS receiver on your laptop you need:

  1. An RS232 cable, or a USB-serial converter, to connect the GPS to the PC's com port.
  2. Software, like Windmill, to read the GPS data. (Windmill is free to our newsletter subscribers.)

Extracting Information from the GPS's String of Data | Step-by-Step | Trouble-Shooting

Extracting Information from the GPS's String of Data

The GPS receiver sends data in a string or sentence. This might look something like this


First, there is a NMEA code ($GPGLL), then the latitude, North or South, Longitude, East or West, Time (hhmmss), Data Valid (A), Carriage Return and Line Feed.

Out of this data string you might want to record just the latitude and longitude. Windmill will collect this information as 2 "channels" of data, but you have to tell it how to recognise the desired information. In this example, for the latitude channel, you might tell Windmill to search for 'GLL,' and extract up to the next comma. For the longitude channel you might search for 'N,' and extract until ','. Full details of how to do this are in the ComDebug program Help and on our Parsing page.

Another Example of a GPS Data String


hhmmss is the UTC time
A is the status: data valid (A) or receiver warning (V)
llll.ll is latitude (degrees, minutes.m -
N is North or South
yyyyy.yy is longitude (degrees, minutes.m -
W is West or East
kk.k is speed over ground in knots
tt.t is track made good, degrees true
ddmmyy is the date
mm.m is magnetic variation, degrees
W is West or East
*CS is the check sum

Using Windmill you can extract as much of this data, or as little, as you require. It will be saved and displayed in "real-time".

Step-by-Step with ComDebug

  1. Use an RS232 serial cable to plug the GPS into one of the PC's COM ports.
  2. Use ComDebug to enter your GPS settings, and instructions for extracting information from the string of data.
    These settings should get you started. See also the ComDebug program Help.
    1. Edit COM Port Settings: these suggestions should work, but consult your GPS Manual to make sure. Baud rate: 4800; Bits: 8; Parity: none; Stop bits: 1; Flow control: Xon/Xoff or Hardware (you may have to try both). Press OK.
    2. Edit the Instrument Timings:
      Data Persistence - 5000 milliseconds
      Read in the Background
      Instrument Idle or Wait Time - 500 milliseconds
    3. Add a New Message or Edit Message_1:
      Prompt string: this is not needed as a GPS continually sends data
      Reply Parser window: see the tips given in the previous section. For latitude for example, search for "GLL," then extract data up to the next comma. For longitude you could search for 'N,' and extract until comma.
    4. In the Message Screen click Run to check that everything is working.
    5. Save the settings you've entered as an .IMD file and click OK in the main window.
    6. Choose Edit Windmill Device and add your .IMD file. Repeat for any other instruments you have then select the Make IMS button.
    7. Run Logger and load the *.IMS file.

For routine data collection on future occasions, just run the Windmill Logger application. If you have any problems see the Windmill program Help, our Technical Support page or Trouble-Shooting below.

Windmill has been used with many makes of GPS receiver, including:

Map produced using data collected by Windmill.

Map of the sea floor produced using data collected by Windmill, a GPS, a Sonar and Mapping Software.


If you can see your data in ComDebug, but Logger shows Error 114 (Data not yet ready), it is probably a problem with the timing of readings. It might be that you need to change your selections in ComDebug (points 1 and 2 below), or it might be an issue with your USB-serial converter settings (point 3 below).

  1. For a GPS make sure that you have chosen to "read in background". To check this, in ComDebug's main window select Edit Instrument Timings.

    Choosing the timing settings

  2. Make sure that the data persistence time is longer than the sampling rate. If you are logging data every second, for example, set the data persistance to 2 seconds. (Otherwise the data will have expired before you have logged it.)

  3. Now check your USB-serial converter settings.

    Make sure that your converter is continually providing data, and not buffering it. Depending on your converter make:
    a. Set the lowest latency possible
    b. Set the lowest USB Transfer sizes possible
    c. Set fast read and writes

    To do this you may need to use the converter's utility program, or to go through Windows Control Panel. If the latter, open Control Panel then choose Device Manager - Ports (COM) - your USB-to-serial converter. Right click and select Properties. Choose the Port settings tab then the Advanced button. You'll see a dialogue box like this.

    Setting up a USB-serial converter

  4. 4. To gain more details on any problem: whilst Logger or DDE Panel is running, open ComDebug and view the Windmill Debug Screen.

If you're still struggling fill in this form.


Type of GPS: 

How Do You Use Windmill with your GPS Receiver?

Amongst the more popular items in our Monitor newsletter are application stories. We'd love to know about your GPS and GIS projects using Windmill - with the possibility of featuring them in an Issue of Monitor. We would, of course, be happy to credit your company as the source of our story. Monitor is delivered monthly to over 35000 opt-in subscribers.


Further Reading

Data Logging from NMEA Devices
Monitoring coastal dye dispersion
Train wheel-slip monitoring
Sea-Floor Mapping with GPS