GPS Receiver - EM-506 (48 Channel)

The EM-506 GPS receiver from USGlobalSat based on the spectacular SiRF StarIII chipset. This complete module is built upon the same technology as the ET-301, but includes on-board voltage regulation, LED status indicator, battery backed RAM, and a built-in patch antenna! 6-pin interface cable included.

This EM-506 GPS module is powered by SiRF Star IV, it can provide you with superior sensitivity and performance even in urban canyon and dense foliage environment. With SiRF CGEE (Client Generated Extended Ephemeris) technology, it predicts satellite positions for up to 3 days and delivers CGEE-start time of less than 15 seconds under most conditions, without any network assistance.

Not sure which GPS module is right for you? Check out our GPS Buying Guide!

  • 48-Channel Receiver
  • Extremely high sensitivity : -163dBm
  • 2.5m Positional Accuracy
  • Hot Start : 1s
  • Warm Start : 35s / 15s with CGEE
  • Cold Start : 35s / 15s with CGEE
  • 45-55mA at 4.5-6.5V* 30mm x 30mm x 10.7mm
  • 16g including cable


GPS Receiver - EM-506 (48 Channel) Product Help and Resources

GPS Basics

December 14, 2012

The Global Positioning System (GPS) is an engineering marvel that we all have access to for a relatively low cost and no subscription fee. With the correct hardware and minimal effort, you can determine your position and time almost anywhere on the globe.

Directive pin

The data sheet for the EM-506 is a bit foggy on what the directive pin does. USGlobalsat only says "This pin indicates the GPS states." but our testing indicates that it outputs a 1 second high, one second low pulse. (High level is 3.25 volts and the low level is 0.75 volts.) The directive pin appears to be a 1PPS pin that's active once you achieve lock with GPS satellites.

Hookup Tips

The GPS receiver uses a serial UART. Page 3 of the datasheet shows the pinouts and specs. For an example hookup with an Arduino, click here. Try using a blank sketch so that the Atmega328P does not interefere with the serial from the GPS just like the "Serial Debugging: Arduino-Compatible board" example.

1 of 1 found this helpful:

Quick Functionality Test with Arduino

Don't have an FTDI to test but you do have an Arduino? This image shows how to hook up your GPS Module with an Arduino to test if it is working or not.

Core Skill: Programming

If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.

3 Programming

Skill Level: Competent - The toolchain for programming is a bit more complex and will examples may not be explicitly provided for you. You will be required to have a fundamental knowledge of programming and be required to provide your own code. You may need to modify existing libraries or code to work with your specific hardware. Sensor and hardware interfaces will be SPI or I2C.
See all skill levels

Core Skill: Electrical Prototyping

If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.

3 Electrical Prototyping

Skill Level: Competent - You will be required to reference a datasheet or schematic to know how to use a component. Your knowledge of a datasheet will only require basic features like power requirements, pinouts, or communications type. Also, you may need a power supply that?s greater than 12V or more than 1A worth of current.
See all skill levels


Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • Member #1350398 / about 5 years ago / 1

    Does anyone have a good way to mount this? I'm currently using the BeagleBone Blue on a quadcopter. The module itself has no mounting holes. I have a couple thoughts but I don't know if it would be advisable:

    1. Solder the outside shield to another PCB with mounting holes.
    2. Glue it to some plexiglass that I can mount to my frame.

    Any help would be appreciated.

  • Member #826527 / about 7 years ago / 1

    I hace a GPS EM 506 sparkfun shield. I would like to know how I can change the default Digital pins for Serial communication. And also de baud rate. Please could you help me? Thank you.

  • SharpCoder / about 7 years ago / 1

    What kind of cable is that? I can't for the life of me figure out how to break those pins out into regular wires. From the datasheet I gather it hooks up to serial tx / rx ports which is cool (I'm using a raspberry pi so that's covered). But plugging it in is proving to be an embarrassing challenge.

  • Member #535793 / about 7 years ago / 1

    If the dynamic limits of this GPS receiver are exceeded (4g, 20 m/s^3) will it automatically reset and be able to get a fix again once it is back within the limits? If not can it be commanded to reset?

  • Member #393665 / about 10 years ago / 4

    Did a unplug-plug replacement for a 406A in a current application, same SparkFun GPS shield, same code, etc. Once I cycled the power switch on the shield, the 506 worked a treat.

  • Member #552888 / about 9 years ago / 2

    Newbie question: Can the EM-506 communicate with an Edison through one of the Edison blocks? Still learning what the interfaces are and trying to figure out compatibility. If so, can someone provide a brief description of how the 506 wires connect to an Edison block? Or do I need some kind of additional hardware between the 506 and the Edison blocks?

  • Tylerwr / about 10 years ago / 2

    I am using the EM-406 with the GPS Arduino shield. Will this be a drop in replacement?

  • Member #628121 / about 8 years ago / 1

    Will this GPS work at 120,000 Ft?

    • M-Short / about 8 years ago / 1

      Nope, page 3 of the datasheet lists the maximum altitude as 18,000 meters.

  • CUNINGAN / about 8 years ago / 1

    Anyone knows if this GPS come from factory with the SBAS enabled?. And why the Rx pin of the second UART did not have pin to send RTCM-104 data to the unit?. I want to implement this module in a project and I am looking to a module with DGPS enabled and I did not found any.

  • Member #666932 / about 9 years ago / 1

    Does this module put out PPS like its predecessor? It has something called "Directive" but I have no idea what that is.

  • Member #553042 / about 9 years ago / 1

    Does the unit have to be placed facing the sky, with nothing covering it? Would it still work if, say, there was a sheet of metal over it? Thank you.

  • diamondjim / about 9 years ago / 1

    Is it possible to buy the little cable with the two plugs on it which comes with the unit? I need an extra cable. Jim

  • Member #576913 / about 9 years ago / 1

    Can ull tell me how to connect GPS Receiver - EM-506 (48 Channel) to my raspberry pi....... because i want to track my raspberry pi remotely

  • Member #549119 / about 9 years ago / 1

    Wondering the PPS (PIN # 6 of EM 406) is connected or left open in GPS-10710? if not connected how can the issue can be solved??

  • Elijah / about 10 years ago / 1

    Anyone flown this on a high altitude balloon yet, or have confirmation it works over 60K ft?

  • bokubob / about 10 years ago / 1

    I see in the revisions that the 1PPS signal was changed to "directive". Is the "directive" signal also timing quality, or is there a way get the 1pps back?

  • Member #380429 / about 10 years ago / 1

    Is this not a 3.3v part like most GPS parts or am I reading the sheet wrong? Does that complicate it's use with battery projects? Looks like a great part aside from that concern.

    • The I/O levels are 3.3V but the Supply voltage (Vin) is 5V.

      • liudr / about 9 years ago / 1

        To complicate the things even more, the sparkfun GPS shield has NO logic level converter for its RX. It's connected directly to arduino pins. You may have to cut a trace.

  • Hmm, Just in time for AVC...

Customer Reviews

4.3 out of 5

Based on 13 ratings:

Currently viewing all customer reviews.

4 of 4 found this helpful:

Easy to use, great sensitvity

Ran this module up on my coffee table in the lounge, and despite being inside a double brick building, got a reliable fix remarkably quickly. NMEA data is pumping out as expected, and the provided interconnect cable had me connected up to my dev board really quickly.

1 of 1 found this helpful:

Save ur self days of development...

....just download the "TingGps" library, it will make development very easy. The little connector is impossible to solder, you'll just end up stripping the cable (which isn't easy); However the unit it's self is fantastic, accuracy to around three meters.

1 of 1 found this helpful:

Works great

I got this receiver for hobby purposes and wound up building a small decoder using the Uno. The reception is pretty good. It will receive just fine indoors with the curtains open. If there was anything else that I might wish for it would be to add an optional external antenna.

2 of 3 found this helpful:

Great accuracy. Decent fix time.

This thing has great accuracy. After the initial fix it could place my location on a map with pinpoint accuracy. The fix time is quick if you are under open sky. In a building it is a bit slower.

1 of 3 found this helpful:

New 506 that replaces the old 406

Before I purchased, I inquired if it was suitable as a replacement for the redundant EM-406 and was told it was. However information about software changes like Baud rate will be required before it will work as a change over replacement so it was not a straight forward replacement as expected. We have not completed the software changes to make it work yet so I hope I am not premature providing this requested feed back. Relevant info at the time of inquiry before my purchase would have been appreciated as I had not booked my software writer to alter code.

Hi, Sorry about the baud mismatch. Other than that, this module has the same pin out (minus the 1pps which has been replaced with a Directive pin that outputs GPS states.) It has the same power parameters 4.5~6.5V. It is using the updated SiRF Star IV as compared to the 406's SiRF Star III.

There is an example on page 14 of the datasheet that shows how to switch the settings of the device. The EM-406 was factory set to NEMA, with a baud of 4800. So your command will be $PSRF100,1,4800,8,1,0*0C

Works well, though I wish it had a 1pps output

This is the first GPS module I've worked with. It works as advertised, including very fast time to fix. I'm using it as part of a clock, so in a perfect world, I would want a unit that had a 1PPS output. As far as I can tell Sparkfun sells units that have 1PPS, and units that have integral antennas, but not units that have both. Does anybody know otherwise?

Small size, solid performance

The module worked as expected right out of the box. Receive sensitivity seems to be quite good, but I'm not convinced that the Time To First Fix is as good as advertised. That, combined with the absence of a 1PPS output, is my reason for a four-star rating.

Great device !

The accuracy and precision is great. GPS locks to satellite signal in just a few secs. The signal is great even indoors. ( Although you might need to take it outside for initial signal lock ). The setup was very easy and quick.

Quick negative point : GPS documentation could be better. The baud rate of the GPS is not specified on the datasheet and one has to shoot in the dark with guesses. GPS datasheet could be much much better.

works like a champ!

When you first start it up, it takes about 15 seconds to find satellites. I had it on my window sill in a snow storm with my hand-held Garmin next to it. The Garmin gave up trying to find satellites while the EM-506 works after taking a while longer to get reception than it normally would. I don't do Arduino, so I used the code from

Great accuracy, easy interface

We have a number of these units working well in our equipment. Very accurate and easy to integrate.

Simple and low cost and it works

I had an RS232 shifter which I could use to connect it to my laptop. It output data as expected. It logged on to the satellites quickly with no need to initialize.

I wanted to preset the baud rate and output messages. I had some Java code to read and write to a port. I added a function to append the checksum to the command sentence. I could then turn off some of the output sentences but that was not persistent over a power cycle. But when I set the baud rate, it made the output sentence selection permanent as well.

So all is well.. Dave Heffler Lunenburg, N.S. Canda.


The best!

It seems to work

I've only done some rudimentary testing so far, but it seems to work fairly accurately. The GPS appears to lock onto the satellites quickly, usually within a few seconds. Sometimes longer, but it could depend on the cloud cover. I didn’t pay attention to that. I entered the reported position into Google maps. I was sitting near a perimeter wall of my house, and Google pinned a location just outside of my house, about 10 ft away based on the outline of the shown houses. I’m not sure how accurate the Google maps located the houses, but the shown location was good enough for me at the time. I had the GPS plugged into a Sparkfun CAN-BUS shield piggy backed on the Arduino Uno. I took the setup for a ride in my car having the Uno display the GPS speed on a LCD display. The GPS speed updated quickly tracking the car speed. I’m happy with the GPS unit thus far.