Gpsd: Difference between revisions

From Wildsong
Jump to navigationJump to search
Brian Wilson (talk | contribs)
m Brian Wilson moved page Gpsd on Mac to Gpsd without leaving a redirect
Brian Wilson (talk | contribs)
mNo edit summary
Line 1: Line 1:
= Where =
== Where ==


gpsd home: http://gpsd.berlios.de/
gpsd home: http://gpsd.berlios.de/
Line 9: Line 9:
My Mac: MacBookPro running 10.6.3 (Snow Leopard).
My Mac: MacBookPro running 10.6.3 (Snow Leopard).


= What and why =
== What and why ==


gpsd is a service that listens to one or more gps receivers and makes the received data available over a network connection. It understands a wide variety of binary protocols.
gpsd is a service that listens to one or more gps receivers and makes the received data available over a network connection. It understands a wide variety of binary protocols.
Line 17: Line 17:
I use virtual machines, so I should be able to let a program running on any virtual machine connect to the gpsd host running on the Mac.
I use virtual machines, so I should be able to let a program running on any virtual machine connect to the gpsd host running on the Mac.


== Receivers ==
=== Receivers ===


All the receivers I have currently are covered:
All the receivers I have currently are covered:
Line 27: Line 27:
*UBX
*UBX


= How =
== For the Mac ==


In my case on my Mac, I will be plugging in usb devices or possibly using a bluetooth connection. I already know I can listen to BT devices using things that appear on ports /dev/tty.BT* when the devices are paired with the Mac so I won't go into that here.
In my case on my Mac, I will be plugging in usb devices or possibly using a bluetooth connection. I already know I can listen to BT devices using things that appear on ports /dev/tty.BT* when the devices are paired with the Mac so I won't go into that here.

Revision as of 04:52, 8 December 2016

Where

gpsd home: http://gpsd.berlios.de/

Current version: 2.94

The Mac port: version 2.38 http://gpsd.darwinports.com/

My Mac: MacBookPro running 10.6.3 (Snow Leopard).

What and why

gpsd is a service that listens to one or more gps receivers and makes the received data available over a network connection. It understands a wide variety of binary protocols.

The reason to run it on a Mac laptop is to make the signal available to programs needing time and location services in a way that is flexible and device independent.

I use virtual machines, so I should be able to let a program running on any virtual machine connect to the gpsd host running on the Mac.

Receivers

All the receivers I have currently are covered:

  • DeLorme Earthmate
  • Garmin
  • NMEA
  • SiRF
  • Trimble TSIP
  • UBX

For the Mac

In my case on my Mac, I will be plugging in usb devices or possibly using a bluetooth connection. I already know I can listen to BT devices using things that appear on ports /dev/tty.BT* when the devices are paired with the Mac so I won't go into that here.

Down the slippery slope.

Download, build, install in order

  1. libusb - required to talk to usb devices
  2. libemul - required to talk to DeLorme LT40 usb device
  3. gpsd-emul - required to connect together emul and gpsd
  4. gpsd - the thing that we wanted back in chapter 1. Remember?

Download libusb from http://sourceforge.net/projects/libusb/develop

./configure; make; sudo make install

To get the DeLorme LT40 going I seem to need gpsd-emul (emul = Earthmate userland). Trying to ./configure that, it tells me I need libemul. That's in the separate emul tarball. They are on the berlios.de site.

emul:

env CPPFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib" ./configure 
make
sudo make install

Now that the dependencies are out of the way...

At version 2.94, gpsd builds out of the box on Snow Leopard.

unpack tarball
./configure
make
sudo make install

Starting it up

  1. Plug in a USB gps receiver, let's see, here's a DeLorme Earthmate LT40
  2. /usr/local/gpsd

What you get

Besides the daemon "gpsd", of course...

In /usr/local/bin, you will find

  • lcdgps
  • gpxlogger
  • gpspipe
  • gpsmon
  • gpsdecode
  • gpsctl
  • cgps

Position

Time

Python integration

I want a short python script here...