Because elasticdog was already taken

Testing a EM-406A GPS module

Some months ago I ordered a EM-406 GPS module from Sparkfun. I intended to explore geotagging and this module seemed to be a simple one to use : integrated antenna, SiRF III chipset (seems to be well know on forums) while not too expensive.

Among the specs :

20-Channel Receiver

Extremely high sensitivity : -159dBm

70mA at 4.5-6.5V

Outputs NMEA 0183 and SiRF binary protocol

Module interface

You provide a 5V power source and it begins to output NMEA sentences on the TX output at 4800 bauds. When the led stops blinking the module is fixed : enough satellites are tracked to computes its position as Lat/Long coordinates.

15 Comments so far ↓

Thanks so much for this entry – it was very useful! One quick question – when you do your level shifting, do you still use the level shifter RX-I chip(maybe something like a MAX232?) in addition to the circuit you provided, or does the circuit serve both purposes? I tried your design, but I’m still getting complete gibberish out of my EM-406A. My only other thought is that I may have totally failed at soldering… Thanks for any advice you can provide!

I am using the Sparkfun level shifter circuit to obtain TTL serial levels (0-5V) with my USB-Serial adapter. It provides the same functionality as a MAX232. As the serial level of the EM-406A is 0-2.8V, I then use an additional shift to raise 2.8 to 5V.

If you need to connect your GPS directly to a microcontroller serial input at a TTL level, you only need the first shifter stage.

Could you provide more information about your hardware setup ?

Another problem could be a bad baudrate/protocol settings. Your GPS is could be setup to output SirF binary data when you expect NMEA. In this case, SiRFDemo has a “Synchronize Protocol&Baud Rate” that could help you to find the correct settings.

Wow – thanks so much for the advice! Adding the TTL level shifter made it work like a charm, and I got my first data out successfully today (now off to learn NMEA protocol!).

This is a part of a bigger project for me – I’m designing an indoor-outdoor tracking device for my senior project – so eventually all of the data will be going into a microprocessor where it will be synthesized with data from microaccelerometers and other ICs, but the current challenge was to get anything at all out of the GPS, and start figuring out how to do signal processing on the arriving sentences. And you just made life super-easy for me. Would you like to be credited for your help as “The Chief Sheep” in my references?

Thanks for the excellent instruction. I was just wondering why the PNP transistor is included. Why not omit Q2, replace R5 with a wire and connect R7 to the emitter of Q1? Then use R6 as a pull-down for the emitter (and R7).

TO Maurits: If I understand you correctly you are proposing an Emitter follower. It won’t work because Q1′s Vbe is 0.6V and Vb (when the GPS gives a logic ’1′) is 2.8, it means Ve can’t be higher than 2.2V. Hence Q2.

Hi, thanks for posting about your project, I am doing a similar one for my undergraduate final year and I was wondering. Is the sensitivity of the EM-406A good indoors or should I invest in the more expensive EM-408 plus antenna plus antenna interface cable, thanks

It plugs straight into USB on one side, and uses 3.3V logic on the other. Hence all that is needed is to plug RX/TX on the GPS straight to TX/RX on the board, Ground goes to Ground, and VIN on the GPS goes to VCC (+5 from usb) on the board.