77 lines
2.5 KiB
C++
77 lines
2.5 KiB
C++
// 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>
|
|
|
|
// 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);
|
|
}
|
|
}
|