EM-406A SiRF Not getting a fix

I have the EM-406A SiRF connected to my PC with a FTDI USB/Serial breakout board and powered by 5v. It does return NMEA sentences but cannot get a fix or any data. I’m outside, with the board and antenna pointing up with a clear sky overhead.

Here’s some of the NMEA output from running minicom:

$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,020929.490,V,,,,,,,220409,,*2F
$GPGGA,020930.493,,,,,0,00,,,M,0.0,M,,0000*50
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,3,1,12,13,76,086,,07,64,325,,25,64,020,,23,43,123,*75
$GPGSV,3,2,12,08,33,278,,03,28,079,,19,23,111,,06,21,064,*76
$GPGSV,3,3,12,28,16,213,,10,10,321,,16,08,041,,20,03,172,*78
$GPRMC,020930.493,V,,,,,,,220409,,*24
$GPGGA,020931.490,,,,,0,00,,,M,0.0,M,,0000*52
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,020931.490,V,,,,,,,220409,,*26
$GPGGA,020932.490,,,,,0,00,,,M,0.0,M,,0000*51
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,020932.490,V,,,,,,,220409,,*25
$GPGGA,020933.498,,,,,0,00,,,M,0.0,M,,0000*58
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,020933.498,V,,,,,,,220409,,*2C
$GPGGA,020934.491,,,,,0,00,,,M,0.0,M,,0000*56
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,020934.491,V,,,,,,,220409,,*22
$GPGGA,020935.491,,,,,0,00,,,M,0.0,M,,0000*57
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,3,1,12,13,76,086,,07,64,325,,25,64,020,,23,43,123,*75
$GPGSV,3,2,12,08,33,278,,03,28,079,,19,23,111,,06,21,064,*76
$GPGSV,3,3,12,28,16,213,,10,10,321,,16,08,041,,20,03,172,*78
$GPRMC,020935.491,V,,,,,,,220409,,*23
$GPGGA,020936.495,,,,,0,00,,,M,0.0,M,,0000*50
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,020936.495,V,,,,,,,220409,,*24
$GPGGA,020937.490,,,,,0,00,,,M,0.0,M,,0000*54
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,020937.490,V,,,,,,,220409,,*20
$GPGGA,020938.490,,,,,0,00,,,M,0.0,M,,0000*5B
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,020938.490,V,,,,,,,220409,,*2F
$GPGGA,020939.498,,,,,0,00,,,M,0.0,M,,0000*52
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,020939.498,V,,,,,,,220409,,*26
$GPGGA,020940.495,,,,,0,00,,,M,0.0,M,,0000*51
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,3,1,12,13,76,086,,07,64,325,,25,64,020,,23,43,123,*75

As you can see GPGSV shows that their is 12 satellites in view but GPGGA and GPRMC say the fix is invalid and GPGGA shows no latitude or longitude.

What could the problem be? I need to know quickly if the unit is defective or not since I have to get this ready for a trip I’m taking the first week in may.

Thanks,

Jeremy

PS:

This is the output from gpsd

$ sudo /usr/local/sbin/gpsd -N -D 5 -n /dev/tty.usbserial-A8003Wdf 
gpsd: launching (Version 2.39)
gpsd: listening on port gpsd
gpsd: Priority setting failed.
shmat(65537,0,0) succeeded
shmat(65538,0,0) succeeded
shmat(65539,0,0) succeeded
shmat(65540,0,0) succeeded
gpsd: running with effective group ID 0
gpsd: running with effective user ID 0
opening GPS data source at '/dev/tty.usbserial-A8003Wdf'
speed 9600, 8N1
=> GPS: 2450415348512c5249442a32380d0a
Navcom: command dump: 0299661c0800040200001203
=> GPS: 0299661c0800040200001203
Navcom: sent command 0x1c (Test Support Block)
Navcom: command 0x1c mode = 02, length = 0
Navcom: command dump: 029966200e000001ae02000071000000f203
=> GPS: 029966200e000001ae02000071000000f203
Navcom: sent command 0x20 (Data Request) - data block id = ae at rate 00
Navcom: command dump: 029966200e00000186020a0071000000d003
=> GPS: 029966200e00000186020a0071000000d003
Navcom: sent command 0x20 (Data Request) - data block id = 86 at rate 0a
writing superstar2 control type 3f len 14:013fc008554750532d3030300402
=> GPS: 013fc008554750532d3030300402
writing superstar2 control type 2d len 6:012dd2000000
=> GPS: 012dd2000000
garmin_gps Linux USB module not active.
no probe matched...
gpsd_activate(1): opened GPS (4)
Read 5 chars to buffer offset 0 (total 5): 
ISGPS word tag not correct, skipping byte
00000000: character '.' [00], new state: GROUND_STATE
Character discarded, buffer 4 chars = c0867e00
ISGPS word tag not correct, skipping byte
00000001: character '.' [c0], new state: GROUND_STATE
Character discarded, buffer 3 chars = 867e00
ISGPS word tag not correct, skipping byte
00000002: character '.' [86], new state: GROUND_STATE
Character discarded, buffer 2 chars = 7e00
ISGPS syncing at byte 3: 0x00000000
ISGPS syncing at byte 3: 0x00000001
ISGPS syncing at byte 3: 0x00000003
ISGPS syncing at byte 3: 0x00000007
ISGPS syncing at byte 3: 0x0000000f
ISGPS syncing at byte 3: 0x0000001f
ISGPS lock never achieved
00000003: character '~' [7e], new state: GROUND_STATE
Character discarded, buffer 1 chars = 00
ISGPS word tag not correct, skipping byte
00000004: character '.' [00], new state: GROUND_STATE
Character discarded, buffer 0 chars = 
packet sniff on /dev/tty.usbserial-A8003Wdf finds type -2
GPS sent 5 new characters
New data on /dev/tty.usbserial-A8003Wdf, not yet a packet
Read 7 chars to buffer offset 0 (total 7): 
ISGPS word tag not correct, skipping byte
00000005: character '.' [00], new state: GROUND_STATE
Character discarded, buffer 6 chars = 000000000000
ISGPS word tag not correct, skipping byte
00000006: character '.' [00], new state: GROUND_STATE
Character discarded, buffer 5 chars = 0000000000
ISGPS word tag not correct, skipping byte
00000007: character '.' [00], new state: GROUND_STATE
Character discarded, buffer 4 chars = 00000000
ISGPS word tag not correct, skipping byte
00000008: character '.' [00], new state: GROUND_STATE
Character discarded, buffer 3 chars = 000000
ISGPS word tag not correct, skipping byte
00000009: character '.' [00], new state: GROUND_STATE
Character discarded, buffer 2 chars = 0000
ISGPS word tag not correct, skipping byte
00000010: character '.' [00], new state: GROUND_STATE
Character discarded, buffer 1 chars = 00
ISGPS word tag not correct, skipping byte
00000011: character '.' [00], new state: GROUND_STATE
Character discarded, buffer 0 chars = 
packet sniff on /dev/tty.usbserial-A8003Wdf finds type -2
GPS sent 7 new characters
New data on /dev/tty.usbserial-A8003Wdf, not yet a packet
Read 7 chars to buffer offset 0 (total 7): 
ISGPS word tag not correct, skipping byte
00000012: character '.' [00], new state: GROUND_STATE
Character discarded, buffer 6 chars = 000000000000
ISGPS word tag not correct, skipping byte
00000013: character '.' [00], new state: GROUND_STATE
Character discarded, buffer 5 chars = 0000000000
ISGPS word tag not correct, skipping byte
00000014: character '.' [00], new state: GROUND_STATE
Character discarded, buffer 4 chars = 00000000
ISGPS word tag not correct, skipping byte
00000015: character '.' [00], new state: GROUND_STATE
Character discarded, buffer 3 chars = 000000
ISGPS word tag not correct, skipping byte
00000016: character '.' [00], new state: GROUND_STATE
Character discarded, buffer 2 chars = 0000
ISGPS word tag not correct, skipping byte
00000017: character '.' [00], new state: GROUND_STATE
Character discarded, buffer 1 chars = 00
ISGPS word tag not correct, skipping byte
00000018: character '.' [00], new state: GROUND_STATE
Character discarded, buffer 0 chars = 
packet sniff on /dev/tty.usbserial-A8003Wdf finds type -2
GPS sent 7 new characters
New data on /dev/tty.usbserial-A8003Wdf, not yet a packet
Read 6 chars to buffer offset 0 (total 6): 
ISGPS word tag not correct, skipping byte
00000019: character '.' [00], new state: GROUND_STATE
Character discarded, buffer 5 chars = 0000000000
ISGPS word tag not correct, skipping byte
00000020: character '.' [00], new state: GROUND_STATE
Character discarded, buffer 4 chars = 00000000
ISGPS word tag not correct, skipping byte
00000021: character '.' [00], new state: GROUND_STATE
Character discarded, buffer 3 chars = 000000
ISGPS word tag not correct, skipping byte
00000022: character '.' [00], new state: GROUND_STATE
Character discarded, buffer 2 chars = 0000
ISGPS word tag not correct, skipping byte
00000023: character '.' [00], new state: GROUND_STATE
Character discarded, buffer 1 chars = 00
ISGPS word tag not correct, skipping byte
00000024: character '.' [00], new state: GROUND_STATE
Character discarded, buffer 0 chars = 
packet sniff on /dev/tty.usbserial-A8003Wdf finds type -2
GPS sent 6 new characters

and cgps

???????????????????????????????????????????Ŀ ?????????????????????????????????Ŀ
?    Time:       n/a                        ??PRN:   Elev:  Azim:  SNR:  Used: ?
?    Latitude:   n/a                        ??                                 ?
?    Longitude:  n/a                        ??                                 ?
?    Altitude:   n/a                        ??                                 ?
?    Speed:      n/a                        ??                                 ?
?    Heading:    n/a                        ??                                 ?
?    Climb:      n/a                        ??                                 ?
?    Status:     NO FIX (796 secs)          ??                                 ?
?    GPS Type:   SiRF binary GSW3.2.4_3.1.  ??                                 ?
?    Horizontal Err:  n/a                   ??                                 ?
?    Vertical Err:    n/a                   ??                                 ?
?    Course Err:      n/a                   ??                                 ?
?    Speed Err:       n/a                   ??                                 ?
?                                           ??                                 ?
?                                           ??                                 ?
?                                           ??                                 ?
?                                           ??                                 ?
?                                           ??                                 ?
?                                           ??                                 ?
????????????????????????????????????????????????????????????????????????????????
GPSD,W=1
GPSD,O=?
GPSD,Y=?
GPSD,O=?
GPSD,O=?
GPSD,O=?
GPSD,O=?
GPSD,O=?
GPSD,O=?
GPSD,O=?
GPSD,O=?
GPSD,O=?
GPSD,O=?
GPSD,O=?
GPSD,O=?
GPSD,O=?
GPSD,O=?
GPSD,O=?
GPSD,Y=?
GPSD,O=?
GPSD,O=?
GPSD,O=?
GPSD,O=?
GPSD,O=?

Thanks,

Jeremy

Any thoughts on this?

Have you tried changing the internal settings? eg. turn off WAAS, turn off power-saving modes, only output RMC, that kind of stuff?

I haven’t tried that yet and in an interesting turn of events, the LED is now not coming on 100% and it just spits out gibberish in the console.

Now it doesn’t seem to be responding at all. Is it totally hosed or is there something I can do to bring it back to life?

Is it spitting anything out? Try changing the computer baud rate, perhaps you set it to a different baud.

if your led is acting funny… u could start by checking the voltage.

I’ve checked the voltage and it is getting a steady 5v from my switching voltage regulator. Before, when it was spitting out NMEA sentences, the LED would be dim for a couple seconds after powering on and then turn on to full brightness. Now it just stays dim.

did u tie CTS low on the FT232R?

check the data sheet for connections…

possible you blew it :slight_smile:

and yes double check the baud rate…

corvette123:
did u tie CTS low on the FT232R?

check the data sheet for connections…

possible you blew it :slight_smile:

I was using the FT232 breakout board (http://www.sparkfun.com/commerce/produc … cts_id=718) which should have all those connections setup already, right? What do you think I might have blown, the FT232 or the GPS module?

I’ll try cycling through some of the baud rates tomorrow. Should I go through all possible baud rates or are there specific ones I should check?

Thanks!

just use whatever your GPS module is set to.

the FT232R assumes the baudrate set through the DLL when u open the com port up.

I am having the same problem, my LED is very dim, but if I ground the 406A metal case, the LED comes on bright, but I still can not get it to lock.

Jason

I figured out and solved the problem.

Originally I used minicom terminal and homegrown programs to read the NMEA sentences. The problem started after I tried using gpsd and cpgs to parse and display the data. After that I started getting the weird symbols in minicom and my homegrown program couldn’t understand any of it.

I think gpsd set the GPS to output in SiRF binary format and that setting was saved. To fix it, I downloaded the SiRF Demo program and reset the unit to factory defaults, now it works again. Here are the steps I got from another forum (http://bit.ly/Zbiog):

  • - Download and install SiRF Demo for windows (unfortunately I don't think there is a version for Mac or Linux): [http://bit.ly/t9kb6](http://bit.ly/t9kb6)
  • - When the program launches choose the COM port your unit is plugged into and set the speed to 57600
  • - Click Action> Open Datasource
  • - Click Action > Initialize Data Source
  • - Make sure "Factory reset" and "Clear User data in battery backed RAM" are checked, now click "Ok".
  • - Exit the program and unplug the GPS for a couple seconds. Then plug it back in, open SiRF Demo and click Action> Open Datasource.
  • - Click Action > Synchronize Protocol and Baud rate, wait a couple minutes
  • - Click Action > Switch to NMEA Protocol
  • - It should start showing NMEA sentences now.
  • I hope this works for you.