I am successfully using the GPS Tiny Shield with a TinyZero. These are the relevant lines from my code:
...
#include "GPS.h"
#include "SoftwareSerialZero.h"
TinyGPS GPS;
SoftwareSerial swuart( GPS_RXPin, GPS_TXPin );
...
void setup() {
...
// GPS
swuart.begin( GPSBaud );
gpsInitPins();
delay( 100 ); // delay() is EVIL when GPS is in use
gpsOn();
delay( 100 ); // delay() is EVIL when GPS is in use
// Drain the GPS module's pent-up data
while( swuart.available() )
swuart.read();
...
}
void loop() {
int year;
byte month, day, hour, minute, second, hundredths;
unsigned long age;
float flat, flon;
...
GPS.crack_datetime( &year, &month, &day, &hour, &minute, &second, &hundredths, &age );
if( age != TinyGPS::GPS_INVALID_AGE ) {
...
}
GPS.f_get_position( &flat, &flon, &age );
if( age != TinyGPS::GPS_INVALID_AGE ) {
...
}
}
I use the GPS in a widget that provides data for astrophotography, including the current GMT and location among other data. It will take 5 to 10 minutes to get a fix when it's first used after a long time. The next night, however, it will get a fix within 30 seconds.
HTH
--
dnl