// 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 #include // 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() { while (!Serial); // wait for leo to be ready Serial.begin(57600); // this baud rate doesn't actually matter! mySerial.begin(9600); delay(2000); Serial.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 (Serial.available()) { char c = Serial.read(); Serial.write(c); mySerial.write(c); } if (mySerial.available()) { char c = mySerial.read(); Serial.write(c); } }