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."
I use gpsdrive without any driver issues. The real problem is the availability of maps.
Linux is perhaps the most stable operating system currently on the market. In fact, in several studies that I've seen, Linux as an embedded system outperforms and crashes less often than dedicated software on traditional GPS systems.
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$
Yes, but if you were a corporation, you'd establish a failure ratio, then, regarding the guarantee that a dedicated system manufacturer would offer, you'd probably go for this one anyway.
Why ?
Imagine you are the owner of a supertanker fleet and they all use GPS to navigate.
Now, if one of these sinks at Valdez of in Bretagne, you'd have a hard time explaining to a judge how responsible you were not if you went for a self hacked system.
The same could apply for trekkers who could get lost because of a dysfunction.
BTW, I had a Zaurus and its battery life is just too low to make it OK for a GPS enabled trek.
And despite this, I'd love tosee Linux go mainstream but this'll have to be distributed through a commercial channel otherwise it won't be able to finance itself.
Trolling using another account since 2005.
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.....
Listen, I'm as big of a Linux fan as anyone, but trusting my coding (or even worse, someone else's) to work on my specific build out in the middle of a fog when it's failure means being hopelessly stranded... That's a pretty frightening thought. At least if something is released commercially and it fails like that, you can sue once (if?) you get back to shore.
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
Um, Does your GPS output NMEA? Read the owners manual. If you read the article, then you would know both programs use NMEA from the GPS on a serial port.
If your GPS provides it then Ok it should work, If it doesn't, then your milage may vary.
The truth shall set you free!
I would agree with not putting Linux on a GPS device, even if it was capable. Embedded systems are fairly hard to hack for a good reason: If you mess it up, it will be a serious problem.
In theory there is no difference between theory and practice.
In practice, however, there is.
Most GPS's use RS232, or a usb-RS232 converter. They mostly are able to use the NMEA standard for transsmission. This is definatly one application where linux has all the drivers it needs.
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.
Yeah, and I carry a copy of Bowditch, a recent set of charts, an RB sight, and a sextant for when the fool thing breaks... and I know how to use these tools, too.
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.
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.
OLEX is a nice piece of commercial mapping software that runs under Linux, and to my knowledge there is a lot of very positive feedback from the local fisherman in the area where I work, Scotland, West Highlands.
Our diversity is our strength
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
Ok, so it's back to what's most important - that it works, or that your family have somebody to sue when it doesn't.
I'll take "works" over "sue" anytime. I don't care if my family have anyone to sue if I don't come back. What I care about is that I DO come back. So I'll take the system that has proven itself over years of using it on my home machine and work servers, over the one that $manufacturer claims works, but specific info is a trade secret.
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.
GIS-Knoppix (http://www.sourcepole.com/gis-knoppix/) comes with a set of pre-installed GIS (Geographical Info Systems) software and utilities including GPSDrive.o s&os=Linux is an excellent resource fo GIS, GPS and related tools including many for Linux &c.
A.
http://www.freegis.org/browse.en.html?category=
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'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.
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
"Linux as an embedded system outperforms and crashes less often than dedicated software on traditional GPS systems." :)
What studies and what OSs? I would say that compared to Palm OS and WinCE you are probably correct. Compared to QNX or one of the FAA certified realtime control OSs probably not.
Don't get me wrong Linux is a very stable OS and does well in many embedded environments but it is not the most stable OS on the planet. It is a great trade off between stability and flexibility.
Would I trust it for a navigation system. Yes since a navigation system can go through a reboot and not cause a huge problem. Now an autopilot or a control system is a different story.
What we consider reliable for desktop and even servers is not the same as what aerospace, life support system, and nuclear safety system designers consider reliable. If I server goes five years with out a crash that is good. If a plane crashes after five years that is very bad
I would not be surprised if someday a realtime version of Linux did get certified for those types of applications.
I admit that I am suprised that more embeded system do not use BSD. Maybe the do and we don't hear that much about them.
See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
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?
The article talks about Linux mapping programs that take their feed from GPS via the standard NEMA protocol, not running Linux ON a GPS. (I didn't see any reference in the article to getting the GPS to talk to the Linux box. I'll guess standard Serial, vs USB)
But your point is the same. You don't trust the external chartplotter as much as you trust the GPS device itself. Now, to be honest, in fog I'd rather have radar than GPS. While the GPS receiver can tell me where I am in relation to my marks and place me on a chart (most of the "downloadable maps" are road maps, not charts) it won't tell me about the coastal tanker on anchorage 42.
Worse, I wouldn't want to drag my laptop out on deck when the fog rolls in - and you can be sure I won't be down at the nav station.
They do seem like decent tools for wardriving and geocaching (if you want to lug a laptop) but not for marine navigation.
Never attribute to malice what can as easily be the result of incompetence...
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?