I recently buy an USB GPS, also called GPS Mouse, `Navibe GM720`_ on eBay. I'll use it with Linux on my Apple iBook G4. .. contents:: Hardware ======== GPS --- The `Navibe GM720`_ uses a USB-to-Serial converter from Prolific. The GPS chipset is the `SiRF Star III`_, a recent and famous chipset used in numerous current GPS receivers. .. image:: http://home.zyrianes.net/blog/static/includes/NGM720Pen.png Computer -------- I use an Apple iBook G4 with Gnu/Linux Gentoo PPC distribution. This 12" iBook is small enough, I can put it in a back bag and the battery allows 3-4 endurance hours. .. image:: http://home.zyrianes.net/blog/static/includes/iBook.png Setting ======= Hardware ID ----------- lsusb only shows the USB-to-Serial converter:: # lsusb Bus 003 Device 002: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port cgps reports: ``SiRF binary GSW3.2.0PAT_3``. Setting an USB GPS with Linux ----------------------------- A lot of these (all?) USB GPS use the Prolific USB-to-Serial converter. So your kernel needs the pl2303 driver. Linux kernel setting (here v2.6.23-rc1):: Device Drivers ---> [*] USB support ---> USB Serial Converter support ---> USB Serial Converter support USB Prolific 2303 Single Port Serial Driver When you plug your USB GPS, you see in /var/log/messages:: Jul 29 17:23:40 iyn usb 3-1: new full speed USB device using ohci_hcd and address 3 Jul 29 17:23:40 iyn usb 3-1: configuration #1 chosen from 1 choice Jul 29 17:23:40 iyn pl2303 3-1:1.0: pl2303 converter detected Jul 29 17:23:40 iyn usb 3-1: pl2303 converter now attached to ttyUSB0 If none, verify if the pl2303 module is loaded, with the command lsmod:: # lsmod | grep pl2303 pl2303 21956 0 If none, the command:: insmod pl2303 loads the module. You see that the GPS can be accessed with the ``ttyUSB0`` serial device, so I'll use the ``/dev/ttyUSB0`` device name. Using ===== Verify you can access your GPS ------------------------------ The gpsd_ suite has the sirfmon_ utility which communicates with the GPS through the serial port (or through gpsd, see below). Starts it with:: sirfmon /dev/ttyUSB0 This software displays on top the informations received from the GPS and on bottom the raw communication with the GPS. GPSd ---- The gpsd_ daemon is an abstraction layer. It communicates through the physical serial port GPS and offers services (lat, long, ...) to its clients (cgps, sirfmon, gpsdrive, navit, ...). A lot of Linux applications use it, and it is ported to Open/Free/NetBSD and Mac OS X. It's very simple, just start the daemon with :: gpsd /dev/ttyUSB0 If you want to kill it, use the ``killall gpsd`` command. FYI: gpsd installs the usb hotplug rules. The gpsd_ suite has a lot of very usefull tools. Gpsd tools : sirfmon -------------------- sirfmon_ is a `SiRF Star III`_ chipset specific tool, it displays a lot of advanced information from this specific chipset class GPS. It'a a textual tool. Start gpsd if not yet done, and just:: sirfmon and sirfmon will use gpsd to get geographic informations, see this Sirfmon screenshot: .. image:: http://home.zyrianes.net/blog/static/includes/sirfmon.png Gpsd tools : cgps ----------------- cgps_ is also a text tool which displays useful geographic informations, but it isn't specific to one chipset class GPS. See this cgps screenshot: .. image:: http://home.zyrianes.net/blog/static/includes/cgps.png Gpsd tools : xgps ----------------- It's same as cgps but with a graphic interface. Gpsd tools : cgpxlogger ----------------------- cgpxlogger_ is a gps data logger, it displays GPS informations, in GPX format. Use example:: # cgpxlogger > 2007-07-29_20h08.gpx and ``Ctrl-c`` stop it. GPX is one of the most known gps data logger format, a lot of applications use it. It's a good solution if you want trace your way or help the OSM_ project. GpsDrive -------- gpsdrive_ is a car navigation system for laptops. It can download maps from Expedia or TopoZone. See this Gps Drive screenshot: .. image:: http://home.zyrianes.net/blog/static/includes/GpsDrive.png Navit ----- navit_ is a car navigation system for laptops and embedded touch screen displays. For the installation, you need some specific libraries: cegui_ with openGL support and quesoglc. See this `Navit installation page`_ from the project. This is a promising project. OpenStreetMap ------------- OSM_ is a collaborative editable map. Most of the current maps have restrictive rights, this project allows each person with a GPS to upgrade the OSM_ map. Some softwares (like Navit) can use this non-commercial Map. See the current `OSM Map`_. iBook with Gentoo and GPS use ============================= ``/etc/init.d/pbbuttonsd stop`` deactivates the suspend to ram process, when you close your laptop or after 5mn of inactivity, so you can log your GPS way with cgpxlogger, and import it to OSM_. Thanks ====== gpsd developers, Gwenn, Jkx. .. _Navibe GM720: http://www.navibe.com/product/gps_mouse/gm720/gm720.htm .. _SiRF Star III: http://en.wikipedia.org/wiki/SiRFstar_III .. _gpsd: http://gpsd.berlios.de/ .. _sirfmon: http://gpsd.berlios.de/sirfmon.html .. _xgps: http://gpsd.berlios.de/xgps.html .. _cgps: http://gpsd.berlios.de/xgps.html .. _cgpxlogger: http://gpsd.berlios.de/xgps.html .. _gpsdrive: http://www.gpsdrive.de/ .. _navit: http://navit.sourceforge.net/ .. _OSM: http://wiki.openstreetmap.org/index.php/OpenStreetMap:About .. _OSM Map: http://www.openstreetmap.org/index.html .. _cegui: http://www.cegui.org.uk/ .. _quesoglc: http://quesoglc.sourceforge.net/ .. _Navit installation page: http://navit.wiki.sourceforge.net/Getting+started