Acquiring GPS data via serial port and displaying it.

This thread has been Locked and is not open to further replies. Please start a New Thread if you're having a similar issue. View our Welcome Guide to learn how to use this site.


Thread Starter
Dec 25, 2006
I was given a HAICOM HAI-303III GPS which has no display. It is a unit which sends serial data in NMEA-0183 format to a receiver-display.

I have connected to the serial port of my laptop and with Hyperterminal configured at 4800 baud it receives and displays correctly NMEA-0183 data sentences like $GPRMC, $GPGGA, $GPGSA, GPGSV and others which contain information regarding position, speed, course, etc.


RMC Recommended Minimum sentence C
093721.239 Fix taken at 09:37:21 UTC
A Status A=active or V=Void.
3026.2880,N Latitude 30º 26.2880' N
09341.7718,W Longitude 093º 41.7718' W
022.4 Speed over the ground in knots
084.4 Track angle in degrees True
190108 Date - 19 Jan 2008
003.1,W (Empty fields) Magnetic Variation, W
*6A The checksum data, always begins with *


GGA Global Positioning System Fix Data
093722.238 Fix taken at 09:37:22.238 UTC
3026.2426,N Latitude 30º 26.2426' N
09341.7677,W Longitude 93º 41.7677' W
1 Fix quality: 0 = invalid
1 = GPS fix (SPS)
2 = DGPS fix
3 = PPS fix
4 = Real Time Kinematic
5 = Float RTK
6 = estimated (dead reckoning) (2.3 feature)
7 = Manual input mode
8 = Simulation mode
05 Number of satellites being tracked
24.7 Horizontal dilution of position
715.4,M Altitude, Meters, above mean sea level
51.7,M Height of geoid (mean sea level) above WGS84 ellipsoid
(empty field) time in seconds since last DGPS update
(empty field) DGPS station ID number
*47 the checksum data, always begins with *
Serial Configuration (data link layer)
Baud Rate: 4800
Data Bits: 8
Parity: None
Stop Bits: 1 (or more)
Handshake: None

Application Layer Protocol Rules
Each message starting character is a dollar sign.
The next first five characters identify the type of message (talker).
All data fields that follow are comma-delimited.
The first character that immediately follows the last data field character is an asterisk.
The asterisk is immediately followed by a two-digit checksum representing a hex number. The checksum is the Exclusive OR of all characters between the '$' and '*'. According to the official specification, the checksum is optional for most data sentences, but is compulsory for RMA, RMB, and RMC (among others).
<CR><LF> ends the message
Rather than display a continuous stream of unreadable gibberish I would like to have a window with a display of the different magnitudes.

There is a program for sale (Hillstone) which does what I want but it is too expensive and has map capability which I don't want or need. I just want the basic capability to display time, speed, course and other variables directly as they are being received. That display is quite close to what I could use.

This requires acquiring the NMEA-0183 text sentences from the serial port, interpreting them and displaying the info on the screen. Probably it can be done quite easily with Visual Basic or even VBS but I have only a very basic idea of VB.

I would be grateful if someone can guide me through this process, especially how to import the serial data into the VB program.
Sep 12, 2003
Hi GS3,

Searching for GPS display software +open source, I came across The GPS Toolkit &#8211; Open Source GPS Software here. The link is to a PDF (9 page) paper download with links in it regarding the kit. It works on Linux, Solaris, and Windows according to the paper. Open source software is free for personal use.

See Open Source GPS Home Page

-- Tom


Thread Starter
Dec 25, 2006
I had a look at that page but it is not what I am looking for. It seems to be a project for software for a GPS receiver which processes satelite signals and outputs NMEA-0183 data (in other words, what I already have). What I am looking for is a panel to diplay the NMEA-0183 data received by the computer via the serial com port. It would require:

- Importing the data from the serial port
- Parsing and extracting the data
- Displaying tha data on the screen

I believe this can be easily done in VB by someone who knows but I am totally lost.
This thread has been Locked and is not open to further replies. Please start a New Thread if you're having a similar issue. View our Welcome Guide to learn how to use this site.

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

As Seen On
As Seen On...

Welcome to Tech Support Guy!

Are you looking for the solution to your computer problem? Join our site today to ask your question. This site is completely free -- paid for by advertisers and donations.

If you're not already familiar with forums, watch our Welcome Guide to get started.

Join over 807,865 other people just like you!

Latest posts

Staff online