gpsd is a daemon that listens to a GPS or Loran receiver and translates the positional data into a simplified format that can be more easily used by other programs, like chart plotters. The package comes with a sample client that plots the location of the currently visible GPS satellites (if available) and a speedometer. It can also use DGPS/ip.
| Tags | Communications Scientific/Engineering Geographical |
|---|---|
| Licenses | BSD Revised |
| Operating Systems | POSIX |
| Implementation | C |
Recent releases


Changes: New drivers, new regression tests, new optimizations, and new correctness features.


Changes: The C++ bindings, Garmin USB support, and multiple instances of ntp pps thread starting were fixed. Handling of odd PPS signals was improved. The eye candy in the PHP visualizers was fixed.


Changes: While work has occurred on other drivers since the last release, the key reason for pushing this release is to fix a nasty brown-paper-bag bug in the handling of leap years. This caused the date to be wrong by one day until the leap day in February.


Changes: This release contains a few new device drivers and lots of bug squishing.


Changes: Many changes were made, perhaps the most obvious being the switch from the GPL to the BSD license to facilitate commercial use. Drivers have been updated. Regular regression testing and automated audits with valgrind, splint, and code analyzers are performed. Unbounded string functions have been eliminated. Performance and reliability is improved. New optimizations were made for embedded deployments. Higher integrity data handling was implemented. New client programs have been added. The gpsd on-the-wire protocol has changed; hand-rolled parsers should be verified against the documentation.
- All comments
Recent commentsre license change
> Many changes were made, perhaps the most obvious
> being the switch from the GPL to the BSD license to
> facilitate commercial use.
Usually the author(s) are better off providing dual-licensed code, (L)GPL and commercial -- if it's 3rd party commercial use to be facilitated, they might earn some money (which is proper); if it's in-house, then authors aren't bound by the license they designated themselves as they can also use any other license for any other party or, well, themselves.
Those crying for BSD license are usually either misunderstanding the licensing, or didn't even read and understand GPL themselves. Historically, BSDL (almost public domain statement but coming with arrogant and problematic advertising clause -- absent in "revised" one) started accompanying code written for government grants, which is way different from independent authors.
Just in case someone bothered you enough... although this might be bothering as well. :-)
Re: Protocol Document
Thanks, I wrote that :).
--Tom
Re: Protocol Document
You can find some documentation of protocol here: http://pygps.org/gpsd/protocol.html (http://pygps.org/gpsd/protocol.html)
Protocol Document
Is there any documentation on the gpsd protocol. Here is what I have figured out so far:
P=lat lon
D=utc (?)
A=altitude
V=speed (unit?)
R=0/1 (no idea?)
S=status (?)
M=mode (?)
Also, is there a publicly available server to test on? My only gps is wired into my car, and its more fun to develop and test indoors.
GPSD differential over IP
I'm having some strange problems using the differential GPS over IP feature of GPSD.
Running on a Win2K or WinXP PC using Cygwin 1.3.10-1, gpsd is misbehaving strangely. First of all, it can't seem to get a differential lock until I telnet to the gpsd port and hit "dp" a few times to grab some data. The first few dp's yield no data (i.e. coordinates are all 0.0), and then suddenly one of them gives real lat and long and the Ds show up on my GPS display. If I run at a higher debug level (-D 4), I don't see the dgps server data show up until I've done the 2 or 3 dps.
Without doing this, I've waiting as long as 20 minutes without ever achieving a differential lock.
This wouldn't be so bad, but I can also only keep gpsd running for about 10 minutes at a time. After that, the telnet port becomes unreponsive and the differential lock goes away. On the display of ps, a "0" appears next to the gpsd process.
Help!
Thanks,
-- Jim