NMEA Sentences with Teensy 3.6 and Adafruit GPS

I am not getting correct strings of A and C NMEA sentences when switching from an arduino uno with Softserial libraries, to a Teensy 3.6 using hardware serial ports instead of softserial.

//Make sure to install the adafruit GPS library from https://github.com/adafruit/Adafruit-GPS-Library
#include <Adafruit_GPS.h> //Load the GPS Library. Make sure you have installed the library form the adafruit site above
 //Load the Software Serial Library. This library in effect gives the arduino additional serial ports
#define mySerial Serial1
Adafruit_GPS GPS(&mySerial); //Create GPS object

String NMEA1;  //We will use this variable to hold our first NMEA sentence
String NMEA2;  //We will use this variable to hold our second NMEA sentence
char c;       //Used to read the characters spewing from the GPS module

void setup()  
{
  Serial.begin(115200);  //Turn on the Serial Monitor
  GPS.begin(9600);       //Turn GPS on at baud rate of 9600
  mySerial.begin(9600); //Start receiving info on serial1
  GPS.sendCommand("$PGCMD,33,0*6D"); // Turn Off GPS Antenna Update
  GPS.sendCommand(PMTK_SET_NMEA_OUTPUT_RMCGGA); //Tell GPS we want only $GPRMC and $GPGGA NMEA sentences
  GPS.sendCommand(PMTK_SET_NMEA_UPDATE_5HZ);   // 1 Hz update rate
  delay(1000);
}


void loop()                     // run over and over again
{
readGPS();  //This is a function we define below which reads two NMEA sentences from GPS

}
void readGPS(){  //This function will read and remember two NMEA sentences from GPS
  clearGPS();
  while(!GPS.newNMEAreceived()) { //Keep reading characters in this loop until a good NMEA sentence is received
  c=GPS.read(); //read a character from the GPS
  }
GPS.parse(GPS.lastNMEA());  //Once you get a good NMEA, parse it
NMEA1=GPS.lastNMEA();      //Once parsed, save NMEA sentence into NMEA1
while(!GPS.newNMEAreceived()) {  //Go out and get the second NMEA sentence, should be different type than the first one read above.
  c=GPS.read();
  }
GPS.parse(GPS.lastNMEA());
NMEA2=GPS.lastNMEA();
  Serial.println(NMEA1);
  Serial.println(NMEA2);
  Serial.println("");
}
void clearGPS() {  //Since between GPS reads, we still have data streaming in, we need to clear the old data by reading a few sentences, and discarding these
while(!GPS.newNMEAreceived()) {
  c=GPS.read();
  }
GPS.parse(GPS.lastNMEA());
while(!GPS.newNMEAreceived()) {
  c=GPS.read();
  }
GPS.parse(GPS.lastNMEA());
while(!GPS.newNMEAreceived()) {
  c=GPS.read();
  }
GPS.parse(GPS.lastNMEA());
while(!GPS.newNMEAreceived()) {
  c=GPS.read();
  }
GPS.parse(GPS.lastNMEA());

}

Any suggestions please? I look to further integrate this code with more senors, so I would like to to be robust when it comes to timing. I feel like the NMEA string is coming in too fast.

I feel like the NMEA string is coming in too fast.

It can't come in faster than the GPS is sending it.

What differences are you seeing?

On the Uno I see Consistent C and A sentences in pairs, every time. With the teensy it spits out other sentences such as V,G and such. The clearGPS loop is supposed to prevent corrupt or innacurate senteces from appearing. Here is my serial stream from the teensy.

$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32


$GPGGA,180600.092,,,,,0,00,,,M,,M,,*7C



$GPGSA,A,1,,,,,,,,,,,,,,,*1E


$GPRMC,180601.092,V,,,,,0.00,0.00,230818,,,N*48



$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32


$GPGGA,180603.092,,,,,0,00,,,M,,M,,*7F



$GPGSA,A,1,,,,,,,,,,,,,,,*1E


$GPGSV,1,1,03,12,,,28,29,,,29,02,,,26*75



$GPRMC,180605.092,V,,,,,0.00,0.00,230818,,,N*4C


$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32



$GPGGA,180607.092,,,,,0,00,,,M,,M,,*7B


$GPGSA,A,1,,,,,,,,,,,,,,,*1E



$GPRMC,180608.092,V,,,,,0.00,0.00,230818,,,N*41


$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32



$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32


$GPGGA,180610.092,,,,,0,00,,,M,,M,,*7D



$GPGSA,A,1,,,,,,,,,,,,,,,*1E


$GPRMC,180611.092,V,,,,,0.00,0.00,230818,,,N*49



$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32


$GPGGA,180613.092,,,,,0,00,,,M,,M,,*7E



$GPGSA,A,1,,,,,,,,,,,,,,,*1E


$GPGSV,1,1,03,12,,,31,29,,,34,02,,,27*70



$GPRMC,180615.092,V,,,,,0.00,0.00,230818,,,N*4D


$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32

[code]