GPS Buying Guide
by Nate | March 25, 2009 | 54 comments
Skill Level:
Beginner
Updated with SUP500F on April 20th, 2010.
There's lots of options out there for a GPS receiver. This guide will
hopefully help you navigate (cough) through the forest of options.
Go read about GPS
on Wikipedia. Now how do we actually use this technology? It's
gloriously simple. Every GPS module works the same: power it, and within
30 seconds to a minute, it will output a string of ASCII characters
like this:
What is all that? Those are NMEA sentences. You can view the text coming out of these GPS modules using any old terminal program. Is the example above, can you pick out the 4003.8914 longitude and 10512.5933 latitude? That's where SparkFun lives! We use GPS Visualizer to convert these numbers to something that google maps can understand. See 203710.000? That's the current time, accurate down to a few miliseconds. See 250309? That's today's date - March 25th, 2009. There's a bunch more data there (altitude, speed, heading, satellites in view, etc), but the key is that you can easily record this data to a CSV file or write a program (even on a microcontroller) to capture and evaluate the data.
Criteria to think about when shopping:
These modules are getting smaller every day but figure out what your application is. As a general rule, the smaller you make the module, the more likely you are to have antenna problems (longer lock time, less accuracy, etc).
How often do you want an update? 99% of consumer devices (think in-car navigation) operate with a 1Hz (or once per second) update rate. Your car simply doesn't move fast enough that we need to know where you are on the globe more than once per second. There are some applications, such as planes and UAVs, where you need greater update rates. 1Hz was the standard. 5Hz and even 10Hz are becoming available and cheap. You can always configure a GPS receive to slow down, and update less often (1Hz) if your microcontroller or application can't handle all the NMEA data.
GPS units are taking in large amounts of timing data from the
satellites and crunching it down. Then they output 'you are here'. They
do a lot of heavy lifting, and therefore use some juice. The current
average is around 30mA at 3.3V. 30mA may not sound like a lot, but it's a
lot. This power is coming down over time and we hope to see it in the
~1 to 10mA range in 2010.
Watch out: Antennas use power. They often use an amplifier which can
account for 20-30mA of current. If a module has really low power specs,
it's probably because the module doesn't have an antenna built in.
The price of GPS modules are all over the place. A good, 1Hz receiver is well under $100 and always dropping. Be sure to shop around.
This is a great sales ploy in my opinion. You'll see GPS modules that have 50 channels of tracking. Why!? There's only 24 GPS satellites, and it's impossible to stand on the globe and be in view of more than 12 at a time. All modules designed since 2008 have more than ample channel tracking (the ability to track multiple satellites at the same time). I don't even consider this when shopping.
Many modules come with this chunk of something on top of it. What is
that? That is a precisely made chunk of ceramic. Each antenna is finely
trimmed to pickup the GPS L1 frequency of 1.57542 GHz. Sound expensive?
Well, they make a lot of them. There are some other GPS antenna technologies (chip, helical), but they are not as common, a bit more expensive, and require significantly more amplification and filtering.
Oh hey - the satellites are in the sky, 12,552 miles
above you, so be sure and point the ceramic towards the sky, ok? GPS
antennas are getting better, and you can certainly get GPS signal
indoors, but it's hit-or-miss. I hear there are reception problems in
the urban canyons of places like New York City. If you can get near a window - it will help a lot.
How accurate is GPS? Well it varies a bit, but you can usually find out where you are, anywhere in the world, within 30 seconds, down to +/- 10m. Amazing! I say +/- because it can vary between modules, time of day, clarity of reception, etc. Most modules can get it down to +/-3m, but if you need sub meter or centimeter accuracy, it gets really expensive. I've heard stories of such fabled GPS receivers, but I have never gotten to touch one. Someone please prove us wrong.
For more information on GPS accuracy, see the GPS Tracking Comparisons Tutorial.
Below we list some of our favorite GPS modules in no particular order. Remember, we are completely biased. We've used a lot of these modules, and we apologize to the companies that spent a lot of effort designing them. This is just what we think...
SUP500F - the new kid on the block. This GPS receiver has so many great features.
Cons:
Other:
EM406 - the workhorse. This GPS receiver works very well.
Pros:
Cons:
Other:
The Locosys LS20031 module is a very good module!
Pros:
The Venus634FLPx is an interesting candidate.
Pros:
EM408
Pros:
The GS405 and GS406 are nearly identical.
Pros:
The SiGe GN3S Sampler is a very powerful, very hard to use GPS receiver.
Pros:
The San Jose Navigation unit, aka EB-85A.
Pros:
Copernicus is a good SMD module from Trimble.
Pros:
The Lassen iQ is a classic. But its days are numbered.
Pros:
Other:
There are many other options from SparkFun and from the rest of the world. They're not listed here because we don't particularly find them interesting. Let us know if you find one that we are missing!
▼ Comments 54 comments
I had the EM406 running on 3.3V. It didn’t get as hot & didn’t seem to have any problems. Avoid modules without XYZ coordinates.
I run my EM-406A at 3.3V, it works perfectly fine.
XYZ is ECEF coordinates. The ECEF output has much higher resolution than NMEA & it’s the raw navigation result.
Hi Calif – Good feedback! We too have run the EM406 down to 3.3V. It’s out of spec (5V), but usually it works.
What do you mean by XYZ coordinates? Most GPS have long/lat coordinates (XY?) and I don’t know of a module that does not have altitude (Z?).
Does anyone know if gps ground speed data is purely 2D or can it compensate for changes in altitude ?
ie… if a plane was flying in still air and it was in a 45 deg dive @ 30 knots airspeed , would the gps speed register 15 knots or 30?
torkroll — GPS data is 3D by nature. However, in lower-accuracy (i.e. consumer-grade) setups, the Z axis is notoriously inaccurate. This is somewhat logical if you think of the nature of GPS — “triangulating” is the wrong word to use, since this is not planar geometry, but I’ll use it anyway. The GPS device is best at using satellites that are close to directly above you, providing some XY separation, but very little Z separation in their altitudes — and hence larger errors in your Z reading.
I am currently embedding a very precise GPS receiver in a device I’m creating at work which I expect to get +/– 10cm accuracy, thanks to real-time streaming corrections from a commercial subscription service that operates their own geostationary satellites. That level of accuracy does allow the Z axis information to be quite useful.
For a good overview of where GPS errors come from and how they can be corrected — and, indeed, a great introduction to GPS in general — see http://www.trimble.com/gps/howgps-error.shtml. No, I don’t work for Trimble, but they do make some good equipment.
You have featured several high altitude balloon projects over the years, they’re popular and fun.
A lot of the GPS receivers cut out at 18,000ft. It would be very useful to know whether or not your receivers work up at balloon altitudes.
To start the ball rolling:
Lassen IQ’s work as high as we have tested them (33km+)
Anything SirfIII-based cuts out at 24km.
Ublox-based stuff (eg GS406) works up to 50km altitude if you set the correct mode with the UBX protocol.
Ed
www.cuspaceflight.co.uk
From working with a balloon group in my area, I’ve always heard that modules cut out based on both speed and altitude. Also, some cut out based on speed AND altitude whereas some cut out on speed OR altitude. For ballooning, the former is preferred obviously. More information regarding this would be useful.
do you need special licensing to fly high altitude balloons
my 2 cents on the helical antennae is they seem to detune a lot less and seem to be better at multipath/reflection rejection. This is only from using devices with the two types of antennae. For instance, if I put the ceramic antenna on my iron radiator in my room at the window, the position bounces around a lot, and up to 50m, but using a helical antenna, it is more stable, and less variable. Of course the underlying chipsets also have something to do with this.
helical antenna breaks very fast.
A lot of people have delays in their GPS readouts of 5-12 seconds. This is because of serial port buffering. In NMEA mode, the carriage returns flush the serial ports. In binary mode, there are very few carriage returns. The best solution is to disable serial port buffering. In recent Linux derivatives, it’s been a matter of
struct termios term;
int fd = open(path, O_RDWR | O_NOCTTY | O_SYNC);
tcgetattr(fd, &term);
cfsetispeed(&term, baud);
cfsetospeed(&term, baud);
term.c_iflag = 0;
term.c_oflag = 0;
term.c_lflag = 0;
term.c_cc[VTIME] = 1;
term.c_cc[VMIN] = 1;
tcsetattr(fd, TCSANOW, &term);
Some people increase the GPS baud & enable as many output parameters as possible to flush the buffer.
Your comment on the number of channels beyond 12 being marketing foolishness is not correct. The number of channels availible is a direct contributer to the time to first fix on a receiver. When a GPS receiver is doing a cold start, it does not know what time it is, where it is, how fast it is moving, what satellites to look for, or how accurate it’s reference clock is. What this means is that there is a large number of combinations that must be searched. Even though all GPS sats transmit on the same frequencies, the relative motion of the sat as it comes overhead causes a doppler shift. The result of the doppler shift is that a receiver must search over a wide frequency range. Each channel can only search for one satellite over a narrow frequency range. To cover the whole possible range of frequencies for a single satellite can take up to 8 channels per satelite that are being searched for. More if you want extremely high sensitivity. There are 32 possible satellite ID’s to search for. You can take time or channels to do this search.
Once you have a good fix and know what time it is (within a few microseconds) and where you are, 12 channels is good. I am not sure, but I think that WAAS ties up an extra channel or so, so maybe 14 channels. The receivers I have worked on shut down whole blocks of channels (for lower power consumption) once they had found enough sats or they had searched for everything that they could with no additional sats found. A receiver still needs to search for additional sats once it has a good fix because sats rise and set or get blocked by obstructions all the time.
I have seen some hanheld units with millimeter accuracy. They were about $12,000. They are being used for GIS at our GIS center.
Cool! Links are encouraged.
I’m sure we’ll see prices drop. Just image the stuff we could do with even centimeter accuracy!
These are very sophisticated devices that use RTK which uses the phase of the carrier and require precisely located fixed ground station communicating with mobile units using radio. These units are used for mostly for surveying. A quick overview: http://en.wikipedia.org/wiki/Real_Time_Kinematic
These are not likely to show up at prices that most of us could afford. They are also not small devices and use special antennas to minimize multipath errors.
The next big improvement in GPS will come when the new satellites start broadcasting on the new L2C and L5 civilian bands, and low cost chips that use these signals become available. Using the L1C and L2C, or L5 band, dual frequency receivers will be able to compensate for most of the atmospheric caused errors. In addition, the new signals have other significant improvements which will improve low signal acquisition and increase reliability and accuracy of tracking. This is scheduled for 2011-2013. It will be interesting to see if these improvements in the navigation signals result in more power efficient along with more precise receivers.
The first satellite capable of L5 [for testing] was just launched this week!!!
Read more about this here:
http://en.wikipedia.org/wiki/Global_Positioning_System
http://en.wikipedia.org/wiki/GPS_modernization
What about PPS output? Which of these have good timing specs and easy access for use in timing and frequency control projects?
The GPS/GLONASS and soon-to-be Galileo satellite constellations are basically a bunch of orbiting atomic clocks. Well designed receivers can be put to many interesting, truly geeky projects (see the http://www.febo.com, the timenuts mailing list at time-nuts@febo.com, and their ilk). With care these devices can provide time information down to the 20 nanosecond level.
— Dave
Yes, be nice to know which units are better for timing applications.
it would be nice if the review featured important subjects such as current consumption, time to first fix, power saving features, etc.
Torqroll:
I am not certain, but I believe that the data output from the GPS modules is 2D in nature. This may be due to the poor accuracy of the vertical axis info provided by GPS. (Including the altitude info would degrade the accuracy of the overall speed)
It may also be that the vast majority of users want it that way…
It is actually 3D — see my above reply. For example, in the screenshot SparkFun posted, see the second line — the first $GPGGA message — has a 1621.5 number near the end. That’s the altitude in meters. That said, read down the screen and notice how much the altitude reading is changing from second to second…
For more info on NMEA sentences, check out http://gpsinformation.org/dale/nmea.htm (or just search Google).
The GS406 is superb once you’ve ghetto-soldered wires onto it. It’d be the freakin UAV GPS king if it had a con that mated with something that’s not out of stock at every disty on earth. Anybody want to group buy a reel with me? 1,998 left :P
Put me down for 5…
You mention the EM408 has a dual antenna capability. Does this mean it can process the location of each antenna simultaneously and independantly? That sounds like a good use for those 50 channels beyond marketing hype. Or 20 in this case. I need to determine orientation (heading) independently of heading (course over ground). I figured independant antennas a couple meters apart would do the trick. One in bow, one in stern. Course over ground would be the position of 1 antenna integrated over time. Orientation would be the instantaneous position of bow relative to stern. Is this doable in 1 unit using differential correction or some other method or do I need 2 full units? Reason for need, I want to know after drifting sideways for hours while fishing, which island is that off my bow without having to start the motor and move a little in that direction to get the arrow oriented correctly. Also, I’m building a robot that would like to know.
I don’t see anything in the datasheet that indicates it would do that for you, or a command to switch antennas for that matter. I think the dual antenna they refer is that the integrated works pretty well, or it has a connector that you can use an external.
That being said, it sounds like you are after a compass module – about $60 on here, and they have a couple so you can choose SPI/I2C interfaces,etc. An advantage of a compass is also that your headings would be relative to a fixed point (say the bow) rather than relative to the direction of drift. A GPS would give you the course you are drifting, which in a boat (unlike a car) is rarely bow-first, whereas a compass gives you the direction relative to the direction it is pointing. Say you are looking off to port, its pretty easy to get an absolute bearing rather than having to guesstimate which direction you are floating relative to which direction you are looking.
Not that I’ve gotten around to playing with either gps or compass modules yet, just my $.02 – planning on picking up both in the near future (too many gps choices :) )
i use various gps recievers.
EB-230/EB-270 from transystem – looks like but no docs, no support.
Also recievers integrated in telit GM862/GE863 – it simplest and fastest way to realize locator/tracker.
Now i use Telit GE865 (GSM/GRPS) and UBlox NEO-5Q (GPS). PCB dimensions 43 x 23 mm (without GSM antenna and battery). As to antenna i use ceramic but want to try Helix (passive and active to compare accuracy). All shematics and pcb available from htpp://akb77.com/g
I would like to use an XBee and a GPS and have the GPS data streamed to a PC at some remote location from the actual GPS/XBee.
Can anyone suggest what I would use for this?
Can we find the exact name of location (Or City) using the latitudes and longitudes without using the google maps. Please reply on my mail ID i.e., amit.sdm@gmail.com
Is there a possibility of a side-by-side comparison expeiment of the measured performance of these devices showing measured differences in different environments? In my head I see 8-10 of different units put on a piece of wood, strapped to the top of a car, beind driven around in different situations (open road, back alley, forest lane, parking garage, different speeds, etc.. ) with all of them streaming data into a laptop. Postprocessing would reveal the true nature of the capabilities of each unit. Measured currents and startup times could be done on a bench with a scope perhaps…
i just researched on GPS modules on the net. looks like the Holux m1000/m1200 are cheaper ($40) and more accurate (<3m accuracy). atleast thats what is claimed.
they have usart interface/bluetooth!! so i guess they are easily hackable.. other specs also look better.
has anyone tried it?
I am looking for a GPS module that supports EGNOS satellite based differential GPS for 2m resolution:)
Sob/ I didn’t find this topic mentioned here or on the GPS product pages..
So I did a bit of internet diving/ and am now aware that WAAS and EGNOS are instances of SBAS/ DOH..
I looked at a few sparcfun modules for statements about WAAS/ SBAS/ EGNOS resolution and have found…
EM406-A / EM408 with WAAS resolution is 5m
LS20031 GPS 5Hz WAAS resolution of 2.5m (datasheet)
GS407/ 2.5M normal, <2.0M (SBAS) WAAS/EGNOS
copernicus is specified in lots of detail/ horizontail 2m SBAS
(and others)
Couple of comments then – the buyers guide could explain SBAS and WAAS and EGNOS and the asian one… – or at least link to the Wiki pages.
The product pages could usefully list support for SBAS/ and claimed resolutions:).
There was a single mention of DGPS on a product page which I think is the generic term for SBAS [new style GPS +lots] and Ground-Based-AS [old style GPS+a bit] so probably actually refers to SBAS – which almost all the modules you sell support..
So that isolated mention just confused me for a bit
Why is not your 10hz gps listed here?
Just got it added today :) The SUP500F is my new number 1 pick.
Except now that it is deprecated, what is your new new #1 pick?
I’m interested in playing with some GPS, so was reading this very informative guide. Just a quick comment:
I entered the numbers for your location into the GPS Visualizer, and it showed me a spot off the West coast of Africa! You have confused latitude and longitude (the value given for lat. is actually long., and vice-versa). Additionally, since the longitude is W(est), the value must be negative, or you will be shown a location in China!
Correct values are:
Latitude: 4003.8914
Longitude: -10512.5933
Thanks for the great buying guide!
You mention that the Accuracy is not very high, but has anyone found how the repeatability is?
I have long wondered what I would ever need one of these for, but I now have a potential application. I would like to track my RC aircraft with a video camera on a tripod using a pan/tilt system. The problem is I’m not sure if the performance of GPS modules is up to the task yet. I can adjust for accuracy error, but if the repeatability is poor, then this just wouldn’t work. Any experience with this would be nice. Or if anyone has done anything similar, let us know.
There’s good information on error sources and magnitudes at the Wikipedia GPS page.
Without using military-level hardware or additional (and expensive) accuracy-improvement systems like WAAS and DGPS, the advertised accuracy of GPS is 50m. Practically speaking, the computed position will randomly wander around this circle. Averaging can improve accuracy for stationary targets, but the problem gets harder for moving targets like your aircraft.
Also, check the brand spankin' new GPS Tracking Comparison tutorial:
http://www.sparkfun.com/commerce/tutorial_info.php?tutorials_id=169
-Aaron
Do any of these modules have low power or sleep states you can put them in? I want to log GPS once every hour to once per day — and not burn battery power in the mean time.
Best bet would be to power the module down and wake it up every hour for the reading.
I just need a gps logger for a road trip, what would you recomend
why this GM862-GPS Cellular/GPS Module is not listed here? I’m planning to buy this “GM862 Evaluation Kit – RS232” and I need some help in making this hardware work.
Can any of those GPS modules support a 20g acceleration?
I need one for a rocket project and I want a module that wouldn’t crash because of the acceleration or the speed.
Most modules have one or both of two restrictions. They will not function at speeds of 515 meters/sec, or above 18 kilometers, or about 60k feet. Datasheets for each module can help you with this, but I have found that SiRF III, VENUS634FLPx, MT3329 and MT3318 have BOTH limitations. Modules by Trimble will probably be your best bet.
These type of restrictions are based on International Traffic in Arms Regulations to prevent them, presumbably, from being used in offensive missiles and other systems. Don’t quote me on the exact numbers in terms of acceleration and altitude but modules have similar restrictions. You might be able to use the raw data output to calculate your own solution but I think the modules even cut off raw data when a limit is exceeded.
Check out: http://www.groupsrv.com/science/about460860.html
I’m unfamiliar with the site but the limits look like what I’ve seen in the past; 18000m and 512 m/s.
Hi Sparkfun, this buying guide appears to be really out-of-date:
Your #1 pick is SUP500F – “We are no longer carrying the SUP-500 due to poor quality control. We are suggesting the LS20031 as a substitute module. This page is for reference only…"
I’m sure many people would appreciate it if you could do an update/upgrade to content, format and picks! Looking at all the features and options for these GPS modules gets me lost! ;) Thanks!
I’m seconding this, guys! I bought the SUP500 based on this article, but it looks like a couple of weeks after it arrived, you decided to stop carrying it. I only found out about it today. Grrr…
I do like the look and feature set (and reliability!) of the Locosys module, so it looks like I’ll be forking out some more dough RSN.
Ah, the difficulties with bleeding edge technology!
I would appreciate an update too!
Look at the copernicus:
Pros: Newer (12-18 months)
Cons: Kinda old
What is the real age of that chipset?
Can any of these receivers provide binary output of pseudorange and carrier phase for each satellite?
Well if you are willing to spend ~$6,000+ outback guidance offers systems(A320/A321) delivering +-20mm accuracy within 24km of a base station or +-20cm without a base station (+-60cm using WAAS).
Which GPS complying with NMEA 2000 would you recommend ?