Yun and Adafruit Ultimate GPS Breakout

Am having issues getting a fix using a yun as the collector and an adafruit ultimate gps breakout as the GPS unit. (Unit is right next to a window with a very good view of the sky)

I have everything connected right (pins 7&8 to send/receive on the gps) but get the following in console

Why would it take so long to get a fix? I did alot of searching around and found that some said it may be a power issue, so I have removed everything from the unit and have the power going directly to the breakout board.

Here is a small sample of the output I get from the GPS unit. (This is at the end of an hour long plug and leave and log session.)

$GPGLL,,,,,005948.800,V$GPGGA,005949.800,,,,,0,00,,,M,,M,,*71
$GPGLL,,,,,005949.800,V$GPGGA,005950.800,,,,,0,00,,,M,,M,,*79
$GPGLL,,,,,005950.800,V$GPGGA,005951.800,,,,,0,00,,,M,,M,,*78
$GPGLL,,,,,005951.800,V,$GPGGA,005952.800,,,,,0,00,,,M,,M,,*7B
$GPGLL,,,,,005952.800,V$GPGGA,005953.800,,,,,0,00,,,M,,M,,*7A
$GPGLL,,,,,005953.800,V$GPGGA,005954.800,,,,,0,00,,,M,,M,,*7D
$GPGLL,,$GPGGA,005955.800,,,,,0,00,,,M,,M,,*7C
$GPGLL,,,,,005955.800,V,$GPGGA,005956.800,,,,,0,00,,,M,,M,,*7F
$GP$GPGGA,005957.800,,,,,0,00,,,M,,M,,*7E
$GPGLL,,,,,005957.$GPGGA,005958.800,,,,,0,00,,,M,,M,,*71
$GPGLL,,,,,005958.800,V,$GPGGA,005959.800,,,,,0,00,,,M,,M,,*70
$GPGLL,,,,,005959.800,V$GPGGA,010000.800,,,,,0,00,,,M,,M,,*71
$GPGLL,,,,,0100$GPGGA,010001.800,,,,,0,00,,,M,,M,,*70
$GPGLL,,,,,010001.800,V,$GPGGA,010002.800,,,,,0,00,,,M,,M,,*73
$GPGLL,,,,,010002.800,V$GPGGA,010003.800,,,,,0,00,,,M,,M,,*72
$GPGLL,,,,,010$GPGGA,010004.800,,,,,0,00,,,M,,M,,*75

Here is the code I am using.

// Updated for Arduino YUN using Serial over Wireless
// Modifed by Captain_K
// Test code for Adafruit GPS modules using MTK3329/MTK3339 driver
//
// This code just echos whatever is coming from the GPS unit to the
// serial monitor, handy for debugging!
//
// Tested and works great with the Adafruit Ultimate GPS module
// using MTK33x9 chipset
//    ------> http://www.adafruit.com/products/746
// Pick one up today at the Adafruit electronics shop 
// and help support open source hardware & software! -ada

//This code is intended for use with Arduino Leonardo and other ATmega32U4-based Arduinos

#include <Adafruit_GPS.h>
#include <SoftwareSerial.h>

// YUN: Include these libraries to allow wireless serial
#include <Bridge.h>
#include <Console.h>

// Connect the GPS Power pin to 5V
// Connect the GPS Ground pin to ground
// If using software serial (sketch example default):
//   Connect the GPS TX (transmit) pin to Digital 8
//   Connect the GPS RX (receive) pin to Digital 7
// If using hardware serial:
//   Connect the GPS TX (transmit) pin to Arduino RX1 (Digital 0)
//   Connect the GPS RX (receive) pin to matching TX1 (Digital 1)

// If using software serial, keep these lines enabled
// (you can change the pin numbers to match your wiring):
SoftwareSerial mySerial(8, 7);

// If using hardware serial, comment
// out the above two lines and enable these two lines instead:
//HardwareSerial mySerial = Serial1;

#define PMTK_SET_NMEA_UPDATE_1HZ  "$PMTK220,1000*1F"
#define PMTK_SET_NMEA_UPDATE_5HZ  "$PMTK220,200*2C"
#define PMTK_SET_NMEA_UPDATE_10HZ "$PMTK220,100*2F"

// turn on only the second sentence (GPRMC)
#define PMTK_SET_NMEA_OUTPUT_RMCONLY "$PMTK314,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*29"
// turn on GPRMC and GGA
#define PMTK_SET_NMEA_OUTPUT_RMCGGA "$PMTK314,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*28"
// turn on ALL THE DATA
#define PMTK_SET_NMEA_OUTPUT_ALLDATA "$PMTK314,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0*28"
// turn off output
//#define PMTK_SET_NMEA_OUTPUT_OFF "$PMTK314,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*28"

#define PMTK_Q_RELEASE "$PMTK605*31"

void setup() {
  Bridge.begin();
  Console.begin();
  while(!Console);
  //while (!Serial); // wait for leo to be ready

//  Console.begin(57600); // this baud rate doesn't actually matter!
  mySerial.begin(9600);
  delay(2000);
  Console.println("Get version!");
  mySerial.println(PMTK_Q_RELEASE);
  
  // you can send various commands to get it started
  //mySerial.println(PMTK_SET_NMEA_OUTPUT_RMCGGA);
  mySerial.println(PMTK_SET_NMEA_OUTPUT_ALLDATA);

  mySerial.println(PMTK_SET_NMEA_UPDATE_1HZ);
 }


void loop() {
  if (Console.available()) {
   char c = Console.read();
   Console.write(c);
   mySerial.write(c);
  }
  if (mySerial.available()) {
    char c = mySerial.read();
    Console.write(c);
  }
}

Any thoughts?

It would appear to me that the GPS is mostly communicating with the Yun, although you appear to have some dropped characters. The question is whether that is happening in your SoftwareSerial connection or Console connection? Either way, that shouldn't affect the ability of the GPS to get a fix.

It's not uncommon for a GPS to take longer to get an initial fix. Try taking it outside with a clear view of the sky, and just be patient. The data sheet says it is typically 35 seconds to get a fix during a cold start. I wouldn't get concerned until I've waited several minutes.

In the output you've posted, it looks like there is only about 15 seconds worth of data - that's not long enough to get an initial fix, especially if looking out a window - you may have a good look at the sky, but it will only be a portion of the sky. The satellites move around a lot during the day, and there jst may not be enough of them visible in that portion of the sky at the time. Remember, you need to be able to see multiple satellites at the same time, just seeing one or two is not enough.

That makes some sense that it may be the serial connection dropping characters. What baud rate do you think I should have running when I am looking at this over the console?

Also, I guess I should have put that I ran it for close to an hour and the data there is a small sample of the data I have received.

istrait77: What baud rate do you think I should have running when I am looking at this over the console?

Console uses a network connection - baud rate is meaningless in that context. It doesn't matter what you use, it is ignored. In your code, you have a baud rate parameter in the Console.begin() call - that function actually doesn't take a parameter. This isn't causing you problems, as the compiler is simply ignoring the value you gave it.

Also, the info you received was void, as shown by the V in your data lines. You should try going outside.