Skip to end of metadata
Go to start of metadata

Gpsd is a daemon for Unix platforms compatible with a large number of GNSS receivers. Learn more about gpsd on the official website at http://www.catb.org/gpsd.

On Ubuntu gpsd can be installed via APT as follows: sudo apt-get install gpsd gpsd-clients.

Once gpsd is installed, it needs to be configured to listen the correct port. A simpler way to make gpsd listen the right port is just to restart the daemon with correct arguments:

killall -INT gpsd
gpsd /dev/ttyACM0

On most GNU/Linux systems, instead of directly specifying the TTY device such as /dev/ttyACM0, it is possible to use the persistent symlinks defined in the dev filesystem in /dev/serial/by-id/. These symlinks allow the user to refer directly to the device using its vendor name, product name, and (optionally) unique ID, which is more convenient because unlike TTY numbers these parameters are persistent.

For example, /dev/ttyACM0 in the example above could be replaced with /dev/serial/by-id/usb-Zubax_Robotics_Zubax_GNSS_34FFD305435730343944224300000000-if00 (the unique ID of your specific Zubax GNSS will be different), or just /dev/serial/by-id/usb-Zubax_Robotics_Zubax_GNSS* to refer to any connected Zubax GNSS regardless of its unique ID.

$ ls -l /dev/serial/by-id/
total 0
lrwxrwxrwx 1 root root 13 Dec 14 15:50 usb-Zubax_Robotics_Zubax_GNSS_34FFD305435730343944224300000000-if00 -> ../../ttyACM0

Check out this article too: Using USB devices with GNU/Linux

Once gpsd is up and running, you can check its configuration with commands like gpsmon and xgps.

Monitoring gpsd using the gpsmon utility
$ gpsmon
┌──────────────────────────────────────────────────────────────────────────────┐
│Time: 2015-12-14T14:47:41.870Z Lat:  00 36' 15.522" N Lon:  00 42' 56.250" E  │
└───────────────────────────────── Cooked PVT ─────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────────────────┐
│ GPGSA HCHDG GPRMC GPGGA GPGSV                                                │
└───────────────────────────────── Sentences ──────────────────────────────────┘
┌──────────────────┐┌────────────────────────────┐┌────────────────────────────┐
│Ch PRN  Az El S/N ││Time:      144741.87        ││Time:      144741.87        │
│ 0   2 294 24  16 ││Latitude:    0036.25871 N   ││Latitude:  0036.25871       │
│ 1   3 153 10  23 ││Longitude:  00042.93750 E   ││Longitude: 00042.93750      │
│ 2   7 216 42  27 ││Speed:     0.324            ││Altitude:  264.388          │
│ 3   9 267 82  33 ││Course:    272.7            ││Quality:   1   Sats: 07     │
│ 4  16  75 38  19 ││Status:    A       FAA:     ││HDOP:      1.29             │
│ 5  23 102 57  22 ││MagVar:                     ││Geoid:     13.2             │
│ 6  26  45 25  13 │└─────────── RMC ────────────┘└─────────── GGA ────────────┘
│ 7  30 222 11  22 │┌────────────────────────────┐┌────────────────────────────┐
│ 8   4 136 49  27 ││Mode: A 3                   ││UTC:           RMS:         │
│ 9  14  66 69  18 ││Sats: 3 7 9 16 23 26 30 4   ││MAJ:           MIN:         │
│10  14  66 69  19 ││DOP: H=1.29  V=1.37  P=1.88 ││ORI:           LAT:         │
│11                │└─────────── GSA ────────────┘│LON:           ALT:         │
└────── GSV ───────┘                              └─────────── GST ────────────┘

xgps utility can be used to monitor gpsd