Two Ways To Use GPS With Linux
An anonymous reader writes "Whether you're wardriving, vacationing or building a Car PC, a Global Positioning System is a handy tool. Interacting with your GPS via your PC makes for an even better GPS experience. As a Linux user, GPS/PC integration can be somewhat sketchy. Vendors don't write software and drivers for Linux; it's probably safe to assume that the good folks over at Garmin would say something along the lines of "Lih-what?". Have no fear! Using your GPS with Linux isn't impossible! Check out this review over at LinuxForumsDOTorg of two fairly robust GPS navigation programs for Linux."
Nice! this is what I've been looking for. Now let's figure out if it'll work with my belkin bluetooth gps.
No doubt in my mind that Linux is a good OS, but if I'm out on my boat in the fog I'm going to use the build in OS. GPS is very inportant out on the ocean. Now in my car or on my home pc I will be more than happy with GPS run by Linux.
roamingfeet
I use gpsdrive without any driver issues. The real problem is the availability of maps.
Wouldn't drivers be more useful?
I've recently gotten Garmin GPSMan 60CS as a gift and so far I was unable to get any Linux programs to talk to it (over the USB cable that came with it). Did anybody have any success with getting Linux talk to any Garmin GPS units over USB?
GPS Review
Posted by jeremy1701 at Wed Sep 22, 2004 12:23 pm
Review of Two GPS Navigation Programs in Linux
GPS's, or global positioning systems, are becoming more and more popular every day. With awesome standard features, increased map detail and dropping prices, it's no wonder why. Add to that the the growing popularity of treasure hunting games like geocaching and it's easy to understand the popularity of this little gadget.
There are several programs available for Linux that will interact with just about any GPS on the market. This software generally servers to either interact with or enhance the GPS unit. Programs that interact can transfer information to and from the unit, including way-points, routes, detailed maps, saved tracks and more. These usually run on a proprietary protocol, such as Garmin or Magellan. Though the protocol is considered proprietary, development is supported by most companies and is very well documented. Other types of programs enhance the GPS unit by providing a more detailed and comprehensive visual display of the information read from from the GPS. These mostly use the open source NMEA protocol to read and display data from the GPS such as position, time of day, signal strength and others. These are the types of programs this article will focus on, specifically RoadMap and GPS Drive. Neither of these provide the type of trip planning funcationality associated with programs like Rand McNally trip planner or Yahoo! Maps, however, Rand McNally Trip Planner works well, but not perfectly, under Wine. Should you have any questions on installation, configuration or general use, I can usually be found hanging around at http://www.linuxforums.org. Feel free to post your question.
The basic setup I used for this review consisted of a Garmin Rino 120 GPS connected through the serial port (/dev/ttyS0) to a Compaq Armada m700 Laptop running Mandrake 10.0. This is a pretty basic and straight forward setup. It is simple to install, configure and use.
RoadMap v1.0
Home Page: http://roadmap.digitalomaha.net/
Rating: 4/5 Penguins
Roadmap is a vector based navigation program. This means that maps can be zoomed in or out without having to download another map or without the map image becoming pixelated like the bitmap based map programs do. The map files used by RoadMap are generated from the TIGER files provided by the US Census Bureau, and thus cover the USA only. Maps have to be generated to a Roadmap format using the suite of utilities that come with the program, however, pre-made maps are available to simply download and use. One especially nice thing about RoadMap is that the maps are available for download by state, rather then by coordinate location.
Roadmap can be built on either GTK or QT platforms, but also comes as precompiled binaries able to be run from a local directory. The installation is not Linux standard at all and the documentation is somewhat limited. Rather then a single configure file, there are separate, pregenerated Makefiles for GTK, GTK2 and QT. I found this to be slightly confusing, but installation went smooth after that. I also tried the binaries and they worked great, with the exception that the map directories still needed to be created.
Roadmap uses the gpsd daemon and the NMEA protocol to communicate with your unit. In order for you to use Roadmap, you have to manually start gpsd and configure Roadmap to listen on the correct port before it will work. There appears to be support for starting and stopping gpsd from within the program when it loads, but it doesn't seem to work with the either the pre-compiled binaries or the source.
Roadmap can display other GPS information such as number of connected satellite's and signal strength. This utility is actually a completely separate program, however calling the program from within Roadmap doesn't work. Starting the program separately gives a plethora of additional useful information.
Roadmap can also be set-up with the flite voice synthesis
Vendors don't write software and drivers for Linux
Who cares about software and drivers. Open protocols and open standards, that's what we need!
bash$
I believe the success of GPS has always been the fact that it can reliably give you your position at any point in time. To achieve this, the battery _HAS_ to last long enough. :)
I'm all for linux, but when it comes to GPS I have always been sceptical.
At work, we are developing a device for the police department. It's a portable device based on the ARMVI CPU that runs WindowsCE; the OS does quite a good job. The question is, I guess, can the linux software live up to those needs?
When in its active state, GPS's really use one intense amount of power that it's just not funny; this means the software will need to keep the GPS out of active state for as long as possible. Built-in GPS OSes keep to that important rule as simple rule of thumb. Maybe I should go through the linux code and see what they dp; chances are good they're doing the same, or even better; maybe I can even contribute something to the code base later when I'm bored.
Us ham types've been doing GPS navigatin not only of our own vehicles, but others as well for over 12 years now! I use a package called 'Xastir' and an on the air protocol called APRS.
Basicly, take a GPS receiver and a laptop (Not just linux, xastir will run on Windows too), a TNC and a VHF radio - use pretty much any map you'd care to use (local or online), current weather information, satallite imagry, NWS alerts, warnings, etc, etc, etc... See your track - find your way, see forest fires, floods, tornadoes, hurricanes....
The only limit is imagination
Just wanna check on someone? Use your web browser and visit Findu - plug in their callsign and see where they're at.
And no, you don't need a ham license to play along. Just to feed data into the world wide Information System.
Kinda neat to zoom in on 'the old country' and watch my firends in the UK on thier way to work as I'm get'n ready to call it a day, then keyboard to keyboard messaging with 'em along the way.....
And no air time fees
Senior NCO in the fight against entropy. I've seen things, man. Things no one should have to see.....
Most GPS receivers will deliver their signals in NMEA format, which is an accepted standard. Most of the USB units even only contain a pl2303 chip or another form of USB2Serial driver and work just fine. I bought mine on eBay, just plugged it in, and hotplug did most of the work. It appeared as a new USB serial port, so I could gpsdrive without any problems.
Life is just nature's way of keeping meat fresh.
Slightly related, someone recently posted to the Full Disclosure mailing list, with a guide for how to get the Pharos GPS-360 (as sold in the "Microsoft Streets & Trips 2005 with GPS locator" package) working under linux. Might be useful to some people
I am a starving student and all these GPS receivers seem out of reach (even the cheapest seems to be over 150$). Is it tough to build one on your own? Anyone with relevant experience? Any pointers would be appreciated.
gpsd: serve up realtime GPS data
s /html57_us er/v.in.garmin.html
http://gpsd.berlios.de
gpstrans: download/upload Garmin data
http://gpstrans.sourceforge.net
gpsbabel: up/download & convert GPS data
http://gpsbabel.sourceforge.net
v.in.garmin + GRASS GIS 5.7: download GPS directly into serious mapping & analysis software
http://grass.ibiblio.org/grass57/manual
http://grass.ibiblio.org
have fun, don't get lost.
~.~
I'm a peripheral visionary.
I don't want to torpedo the purpose of this whole article, but Linux isn't as far out in the cold as you might think. Most GPS programs out there use the NMEA protocol which is handled over a common serial port. The article poster seems to imply that Linux is left out in terms of drivers, but the fact is that most GPS units support the NMEA protocol. That includes Garmin, Magellan and others. If you have a common DB9 serial connector and the right cable, you can get any number of GPS units to work with any number of programs.
That being said, what is troubling is the "any number of programs" that I mentioned above. There really is not a large community of developers working on consumer mapping applications. If you look hard enough, you may stumble across some gems here and there, but for the most part the Linux scene is noticably lacking.
Tuxmobil's Page is a good place to start looking at different apps.
Hmmm...
I used Garble because back in Summer 2000, before the grueling years of my physics PhD program began, I took a 15,000 mile roadtrip around the USA. During most of the driving I had my laptop connected to my GPS, pinging it every minute (through a simple bash script) getting a latitude and longitude. After my trip I compiled all the points, and used IDL to make some nice plots from the data. IDL was cool because I could easily set up map projections w/ my latitude/longitude data, overlap satellite images, and even plot country/state borders (IDL costs $$$$$, but Johns Hopkins University physics department has a large client license on the student terminals, which is nice). Check out my final Mercator Plot and Satellite Perspective Plot. My route is in red (chronologically going clockwise around the country), yellow circles are where I spent the night.
You can read my unfinished online journal here. Yeah, it's been a few years since the trip, and I do really need to finish that journal and clean up the ugly page layouts.
make world, not war
Another Amateur Radio moving-map tool - this one
capable of displaying -multiple- moving GPS-
carrying symbols across the screen (not just one, that represents yours) is UI-View
Great for tracking various emergency service vehicles at an incident.
It's from the UK... A cost-free 16-bit demo is
available, bur it's maybe 10 UK Pounds for 32-bit
Windows (only!) version.
This past summer, a friend of mine took it into his head to build a caseless PC.
This plan was to have two modes; a mode for work (IE: throwing it in his backpack), and a mode for play (mounting it on an RC car he built himself).
He began finished the latter while I watched him, utilizing his own hacked together power setup to provide rechargable battery power to the device for a period of time he has yet to test fully. He then proceeded to install Linux on a 128 MB CF card, using an IDECF converter [I was amazed it existed, but there you go], and a few small utilities for run. A 500 MHz processor powered it.
Now, the relevant part of this is the RC car it was on. He wanted to control the car using the motherboard mounted on its back. He wrote a simple program to send pulses along a parallel converter of his own design to the various wheels, as they responded to pulse frequency by operating specific ways...pretty standard.
Then, he wanted to use a GPS to make it drive around the campus. He wrote his own software for the GPS device another friend of ours provided, NMEA-0182 with a few vendor extensions, IIRC. The device sent over serial, and it was a fairly simple bit of work to make it interpret the coordinates properly...the hard part was mapping the area. =)
The point of all that is, good GPS devices usually use a standard output interface, and protocol. And it is, honestly, not that hard to write your own program to interface with it. I still have the source code to the program he wrote...it's easily under 1000 lines, and possibly under 500.
So, if you'd like to use a GPS device to steer your projects...write your own software. =)
It's only an insult if it's not true.
Almost all GPSes out there that have ports communicate in a very simple text-based protocol over a serial port. It's very easy to write something which processes this data stream. Fortunately the GPS data stream is very low-bandwidth (by computer standards these days) so plain old 9600 baud and text is plenty. You only get a new GPS reading every second or so anyway. The only part of the GPS signal that is not adequately served by the serial link is high-resolution timing information, but for most computers, being off by 0.1 sec is probably fine.
I hand-built serial cables using plugs I got from this guy (Elsewhere on that site there's links to folks all over the world selling the same plugs for a range of different GPS receivers). Apparently even the tiny little Garmin Geko 201 and Geko 301 (but not the 101 model) also speak serial - and they're tiny cute little things they are!!!
My little eTrex has a menu with a whole bunch of different 'languages' that it will speak (and/or receive) via the serial port. According to the manual (warning: pdf) (page 45) it speaks NMEA 0183, a bunch of proprietary Garmin stuff and a couple of flavours suitable for differential work. I know from fiddling with mine that it also speaks a 'plain text' (they're all plain text, but this one is more so) format that is quite human readable and probably quite easily parseable with some perl.
Another imporant point about GPS and Linux (*nix in general is time). GPS requires incredibly accurate time to operate, so by implication GPS receivers make excellent clocks. Last time I checked xntp had support for NMEA (GPS) as a time source.
A quick freshmeat (if 'google' is a verb, then surely 'freshmeat' can be one too!) will tell you that GPS on *nix is nothing new!!! (Not all of those returns are gps nav related, but there's a lot of stuff to parse gps sentences, moving maps, program receivers, all kinds of goodies!
I find your ideas intriguing and I wish to subscribe to your newsletter.
My laptop has no serial port, would I be able to run the USB to serial converter that I now use in Windows?
I dont see why this is news. Most GPS devices uses NMEA which is trivial to parse.
Slightly OT but wouldn't the purposes of OSS be better served if they could find some kind of input into Galileo, the competitor to GPS? GPS is kinda dependent on the US-Military, and when Galileo comes on line it won't be....
My Favourite Meme
I used the NMEA output of my usb gps to drive multimap requests
4 55 3105809694&lat=50.956740380761
:)
mutlimap takes lat/log coordinates so it really is a no brainer
http://www.multimap.com/map/browse.cgi?lon=-4.1
hehe check the street name
There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
Some instructions, how to start gpsd automatically when connecting USB GPS receiver. There is also described how to start Kismet server automatically.
http://wiki.version6.net/Kismet hotplug
at least for getting GPS data. Last year I wrote a small serial utility to capture GPS data in linux and only took a couple hours. (requires a GPS unit that sends via RS232, no idea about USB though). The big question would be support for using GPS data.. like plotting a path on a real map.. but that shoulndn't be hard either given terraserver or the myriad of GIS data out there for free. Off Topic, but /. is being used to harvest email accounts for spam.
In almost 6 or so months I've been gmail I've never had a real Spam.. till last week when I *stupidly* wrote my gmail account here.
Are there any boot-from-CD GPS navigation distros out there? I have an old PII laptop which would be great for navigaiton, except that the HD doesn't work relaibly. It'd be nice to be able to burn a cd with a bunch of maps and bootable distro that automatically logs in and brings up GPSDrive. Also, (ianal,b) in states where it's illegal for the driver to be able to see displays which are unrelated to vehicle operation or navigation, it might be useful to be able to show that the computer is running from a read-only filesystem with only navigation programs on it.
Just how much money do the Linux users here thing they contribute to the bottom line at Garmin or Magellan? The offerings for Linux (Linspire, etc) ready for the consumer are noticeably lacking. It's going to stay that way for quite a while. When someone says "there is no software for Linux" invariably thousands of geeks on here (I use that term in the fondest manner) will say "oh I just hooked up my transmogrifier to the digital mitzoplexer and then filtered that through Google. Simple!". Well it's not simple folks. Until you realize that the consumers (you know, those folks paying for things) drive demand, things will not change.
A lot of folks here see a good idea, take it, write their own spaghetti code and tailor it to how they want it and then call it good. The folks in Redmond see a good idea, dumb it up to the least common denominator and wham . your Grandmother has one in her Lincoln Continental. See the difference? There's money in developing code that's "good enough" so long as you address it to your market.
I've seen some pretty cool work with in-car PCs and some using Linux. These are packaged with the consumer in mind, even if they are not quire ready yet. That's what's going to catch on. Just because there are open standards does not mean you all need to write your own. That's the surest way to obscurity.
it's probably safe to assume that the good folks over at Garmin would say something along the lines of "Lih-what?".
This may be the case, however, they are very open with the interface/communications protocols for their GPS's - If you go here you can download documents detailing the protocols in a platform neutral format, meaning that anyone with just a little programming experience can easily make programs to interface with their GPS's, on any platform, Linux included. To be quite honest, I can't think of another hardware vendor, that is so open with the specs. Usually, Companies require you to jump through hoops (NDA agreements/ etc) to get hold of this information, or have to resort to reverse engineering, etc. And, if you can't/dont want to program, then there's a few projects already made for you on sourceforge!
To sum up, Don't knock Garmin, They might not produce Linux drivers, but at the same time, they do go out of their way to make it easy for others to do so should they want to.
Look here for the 'Simple Text protocol'. Hell, When I was cutting my teath on a VIC20, I could have used this to interface the GPS with that, using Commodore BASIC. (assuming I had a RS232 Interface!). This is very simple stuff!
I have the Geko 201. It's a superb little device. It speaks a Garmin protocol that Garmin published here. There are a number of utilities for Linux that implement this protocol; I use gpspoint. The only hurdle is the proprietary serial connector which costs a low double digits $$$; I hacked mine together with a glue gun from a couple of wires.
For laptop-side work I use viking, a very nice GUI based program for managing waypoints and tracks. It's not so much useful for street navigation as it is for trips and geocaching; it can overlay recorded tracks over satellite photos, or create waypoints to be transferred to the GPS for a future trip.
Tsunami -- You can't bring a good wave down!
Difficult and confusing to install? Check!
"Although Roadmap is not the easiest to configure and install..."
Lack of features found in commercial grade applications? Check!
"It would be nice if Roadmap could compute trips and give you step-by-step voice directions, but it doesn't have that feature..."
Broken stuff in the app that confuses users? Check!
"There appears to be support for starting and stopping gpsd from within the program when it loads, but it doesn't seem to work with the either the pre-compiled binaries or the source."
Now just throw in spotty or nonexistant support, and morphing into total Abandonware once the author graduates from college, and we have a real Linux app here!
I got one of those tiny DeLorme Tripmate USB GPS receivers, which was bundled with Windows software for ~ $120. I knew my chances of running with MacOS X or Linux were slim, but I needed it for a big roadtrip. And, yup.. I was right. DeLorme will not release any information on the hardware to enable driver development on Mac or Linux platforms.
The only option is to buy the bluetooth dock for it, which costs more than the GPS unit. I know this works with my PowerBook. I think it coul be made to work in Linux too.
Am I dreaming or it's true? If I get this page via link on the first page of slashdot, the color is gray. But if I get here via "Live Bookmark" of my firefoxie, the color is green.
There is a spark in every single flame bait point.
I'd reccomend checking out roadnav. Not very mature (still only in 0.2), but it uses vector data, plots directions, and has a beautifully-generated map.
I just bought the Suunto X9. The device itself is perfect and it comes with serial docking station. The provided software called "TrekManager" is only available for Windows and I had no luck to get it working with Wine, so I asked Suunto to give me some informations about the communication protocol. The answer:
I don't wanna force other companies to produce MacOSX/Linux software. Its a decision, that should be respected, but they should make it possible for Open Source developers to write their own software. Suunto makes Hardware and thats all - the software is itself is just an add-on.
Now I have to find a windows box, install the software, connect the GPS watch and sniff the serial line to figure out the communication protocl. Sooner or later I'll (or someone else) find out how it works and then we can publish the informations.
So, I recently took a trip through part of Europe and took a number (~35) of GPS readings. Is there any decent (GPL) software that will take all those points(LAT, LONG, Date/Time, Alt.) and give me a map of the area I covered? Presently, my plan is to use mapquest's LAT/LONG service and a bash/perl script to pull the various maps and overlay them until I get something useful. Fun as a project to see if I can, but time-consuming.
Thanks
Joe B
Also check out pygps, which is a gps-driven map viewer. It's similar to gpsdrive, except that 1) it's written in Python, so it's portable, 2) it's written with handhelds in mind, 3) it supports UTM maps, and 4) if I can ever find a user community that cares enough for me to integrate it, I have code to do real-time map downloading via any kind of wireless IP connection.
-russ
Don't piss off The Angry Economist
NMEA 0183 is a standard that nearly every GPS unit conforms to as far as communications with other devices.
:( GRASS is very powerful, but not suitable for your typical "I want to get from point A to point B" navigation.
Interfacing GPS devices to Linux boxes has never, EVER been a problem. It's almost impossible to find a GPS receiver that doesn't speak NMEA 0183, Rockwell binary (Documented), or Garmin binary (ALSO documented, has been fully supported by gpsd under Linux for YEARS.)
Now DOING something with that info from the GPS is a different story... There is almost no decent mapping/navigation software for Linux. About the only semi-decent software is Roadmap, which uses the TIGER/Line dataset in the US. GpsDrive is pretty well polished, but not much more than a toy thanks to lack of vector map support.
retrorocket.o not found, launch anyway?
RoadMap doesn't do routing, due to lack of info on one-way streets in the TIGER dataset.
And I used it not too long ago, it was extremely unreliable and difficult to set up. 90% of the time, it would say, "no map for area found" even though I'd RTFMed and loaded all maps and index files for the state I was in and all surrounding states.
retrorocket.o not found, launch anyway?
All (ok, most all) GPS units send data in NMEA format. Electrically NMEA is close enough to RS-232 that you can plug NMEA directly into a PC's serial port. The NMEA data format is plain ascii text. A small set of "sentances" are repeated every second. Each "sentance" begins with s dollor sign "$" and continues to the end of the line. All values are human readable for example latitude and logitude are represented as something like 32.345,118.324. Google will find you all the details.
So, interfacing to a GPS is not hard. Building an application that does something usfull (that the GPS itself does not already do) would be harder.
But there is not reason to wait for someone to write a "driver" for a GPS
Electronic Admiralty maps/software are currently Windows only. Anyone know of Linux stuff?
Deleted
What about leisure sailing? Can it integrate with the stuff published by the Admiralty?
Deleted
I honestly don't care about pretty moving maps. I like street-address-level route plotting. I'd prefer it on a linux-based PDA. I'd even pay what a comparable Win32 program would cost, or run one under wine if it were compatible with a card-based GPS receiver.
The GPS in my car just does voices, text and arrows, and I'm just ducky with that. However, without routing, IMHO, GPS is useless on the road.
IIRC Navte(ch|q) uses an open format (SDAL) for its routing database, you have to buy the CD/DVDs. Does anything out there work with _any_ routing data to do routes for Linux?
that would automatically download the maps. The gist was using lwget and screen scraping to trick the website into downloading. Pretty standard technique, and easy to implement.
matt zeits
nmea is not spoken on rs232 but a more obscure rs variant, i believe it is rs434. You can directly connect most GPS's to most rs232 serial ports because these ports also work out of spec, ie with a lower voltage. Yup just nitpicking really.
This space is intentionally staring blankly at you
Seems these guy did just that.... from Africa to Canada...
I just d'led the version, and it's very cool.
Remove the spamfreak to speak.
The National Geographic TOPO! (used in the state series, national park series, and back roads explorer series) software has always worked great on WINE. Both version 1.x and 2.x worked great, and every patch they release on the Internet works great. Install on a windows machine to make it easy and copy the installed executables over, it's as simple as that. I've been doing this for a couple years now and GPS support in it works if you've setup your serial ports in your wine config (using a Magellan in NMEA mode).
So it's not open source -- I've never had to fix any problems with it -- printing even works flawlessly (if you have a printer configured, otherwise it hangs when you try to print, but I think that's a WINE problem, and not bad). I considered contacting them and asking them to make it open source (they have free downloads on their website), but I haven't got around to it, yet.
Their business model is to sell the digital images (of public domain USGS data), so it's strange... they can't copyright the data, only the arrangement. Anybody could easily compete with them, they just make a damned good product, in my opinion, very polished.
I don't use it on the roads, though, mostly printing custom maps for backpacking without having to go to the local ranger station, so the raster maps are best for me, no vector maps.
I work at a company that provides GPS to trucking firms to track their fleets, and I can reliably tell you that coverage is not 100%. Monday was particularly terrible for some reason.
haHAhaHAhAHahAHahAAhahAhahAH!!! wHat A d0rK u th0rt 0sX was LuNiX!!!!!!!!!!!!!