GPS Ultimate Breakout default Baud Rate
Re: GPS Ultimate Breakout default Baud Rate
SoftwareSerial mySerial(8, 7);
Adafruit_GPS GPS(&mySerial);
void setup()
{
// 9600 NMEA is the default baud rate for Adafruit MTK GPS's- some use 4800
GPS.begin(9600);
// GPS.sendCommand("$PMTK251,57600*2C"); //set baud rate to 57600
GPS.sendCommand("$PMTK251,38400*27"); //set baud rate to 38400
// GPS.sendCommand("$PMTK251,19200*22"); //set baud rate to 19200
// GPS.sendCommand("$PMTK251,9600*17"); //set baud rate to 9600
mySerial.end();
GPS.begin(38400);
}
Re: GPS Ultimate Breakout default Baud Rate
Re: GPS Ultimate Breakout default Baud Rate
Re: GPS Ultimate Breakout default Baud Rate
Re: GPS Ultimate Breakout default Baud Rate
Time: 21:31:48.0
Date: 15/4/2015
Fix: 1 quality: 1
Location: 3738.2644N, 9724.6445W
Location (in degrees, works with Google Maps): 37.6377, -97.4107
Speed (knots): 0.01
Angle: 0.00
Altitude: 397.70
Satellites: 5
$GPGGA,213149.000,3738.2645,N,09724.6449,W,1,5,1.95,397.5,M,-26.7,M,,*61
$GPGSA,A,3,11,09,19,23,28,,,,,,,,2.16,1.95,0.91*08
$GPRMC,213149.000,A,3738.2645,N,09724.6449,W,0.02,0.00,150415,,,A*7B
$GPVTG,0.00,T,,M,0.02,N,0.03,K,A*3C
$GPGGA,213150.000,3738.2645,N,09724.6449,W,1,5,1.95,397.3,M,-26.7,M,,*6F
$GPGSA,A,3,11,09,19,23,28,,,,,,,,2.16,1.95,0.91*08
$GPRMC,213150.000,A,3738.2645,N,09724.6449,W,0.01,0.00,150415,,,A*70
$GPVTG,0.00,T,,M,0.01,N,0.02,K,A*3E
// Test code for Adafruit GPS modules using MTK3329/MTK3339 driver
//
// This code shows how to listen to the GPS module in an interrupt
// which allows the program to have more 'freedom' - just parse
// when a new NMEA sentence is available! Then access data when
// desired.
//
// 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
#include <Adafruit_GPS.h>
#include <SoftwareSerial.h>
// If you're using a GPS module:
// 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 3
// Connect the GPS RX (receive) pin to Digital 2
// If using hardware serial (e.g. Arduino Mega):
// Connect the GPS TX (transmit) pin to Arduino RX1, RX2 or RX3
// Connect the GPS RX (receive) pin to matching TX1, TX2 or TX3
// If you're using the Adafruit GPS shield, change
// SoftwareSerial mySerial(3, 2); -> SoftwareSerial mySerial(8, 7);
// and make sure the switch is set to SoftSerial
// If using software serial, keep this line enabled
// (you can change the pin numbers to match your wiring):
//SoftwareSerial mySerial(3, 2);
// If using hardware serial (e.g. Arduino Mega), comment out the
// above SoftwareSerial line, and enable this line instead
// (you can change the Serial number to match your wiring):
#define mySerial Serial1
Adafruit_GPS GPS(&mySerial);
// Set GPSECHO to 'false' to turn off echoing the GPS data to the Serial console
// Set to 'true' if you want to debug and listen to the raw GPS sentences.
#define GPSECHO true
// this keeps track of whether we're using the interrupt
// off by default!
boolean usingInterrupt = false;
void useInterrupt(boolean); // Func prototype keeps Arduino 0023 happy
void setup()
{
// connect at 115200 so we can read the GPS fast enough and echo without dropping chars
// also spit it out
Serial.begin(115200);
Serial.println("Adafruit GPS library basic test!");
// 9600 NMEA is the default baud rate for Adafruit MTK GPS's- some use 4800
GPS.begin(9600);
// GPS.sendCommand("$PMTK251,57600*2C"); //set baud rate to 57600
GPS.sendCommand("$PMTK251,38400*27"); //set baud rate to 38400
// GPS.sendCommand("$PMTK251,19200*22"); //set baud rate to 19200
// GPS.sendCommand("$PMTK251,9600*17"); //set baud rate to 9600
mySerial.end();
GPS.begin(38400);
// uncomment this line to turn on RMC (recommended minimum) and GGA (fix data) including altitude
GPS.sendCommand(PMTK_SET_NMEA_OUTPUT_RMCGGA);
// uncomment this line to turn on only the "minimum recommended" data
//GPS.sendCommand(PMTK_SET_NMEA_OUTPUT_RMCONLY);
// For parsing data, we don't suggest using anything but either RMC only or RMC+GGA since
// the parser doesn't care about other sentences at this time
// Set the update rate
GPS.sendCommand(PMTK_SET_NMEA_UPDATE_1HZ); // 1 Hz update rate
// For the parsing code to work nicely and have time to sort thru the data, and
// print it out we don't suggest using anything higher than 1 Hz
// Request updates on antenna status, comment out to keep quiet
GPS.sendCommand(PGCMD_ANTENNA);
// the nice thing about this code is you can have a timer0 interrupt go off
// every 1 millisecond, and read data from the GPS for you. that makes the
// loop code a heck of a lot easier!
useInterrupt(true);
delay(1000);
// Ask for firmware version
mySerial.println(PMTK_Q_RELEASE);
}
// Interrupt is called once a millisecond, looks for any new GPS data, and stores it
SIGNAL(TIMER0_COMPA_vect) {
char c = GPS.read();
// if you want to debug, this is a good time to do it!
#ifdef UDR0
if (GPSECHO)
if (c) UDR0 = c;
// writing direct to UDR0 is much much faster than Serial.print
// but only one character can be written at a time.
#endif
}
void useInterrupt(boolean v) {
if (v) {
// Timer0 is already used for millis() - we'll just interrupt somewhere
// in the middle and call the "Compare A" function above
OCR0A = 0xAF;
TIMSK0 |= _BV(OCIE0A);
usingInterrupt = true;
} else {
// do not call the interrupt function COMPA anymore
TIMSK0 &= ~_BV(OCIE0A);
usingInterrupt = false;
}
}
uint32_t timer = millis();
void loop() // run over and over again
{
// in case you are not using the interrupt above, you'll
// need to 'hand query' the GPS, not suggested :(
if (! usingInterrupt) {
// read data from the GPS in the 'main loop'
char c = GPS.read();
// if you want to debug, this is a good time to do it!
if (GPSECHO)
if (c) Serial.print(c);
}
// if a sentence is received, we can check the checksum, parse it...
if (GPS.newNMEAreceived()) {
// a tricky thing here is if we print the NMEA sentence, or data
// we end up not listening and catching other sentences!
// so be very wary if using OUTPUT_ALLDATA and trytng to print out data
//Serial.println(GPS.lastNMEA()); // this also sets the newNMEAreceived() flag to false
if (!GPS.parse(GPS.lastNMEA())) // this also sets the newNMEAreceived() flag to false
return; // we can fail to parse a sentence in which case we should just wait for another
}
// if millis() or timer wraps around, we'll just reset it
if (timer > millis()) timer = millis();
// approximately every 2 seconds or so, print out the current stats
if (millis() - timer > 2000) {
timer = millis(); // reset the timer
Serial.print("\nTime: ");
Serial.print(GPS.hour, DEC); Serial.print(':');
Serial.print(GPS.minute, DEC); Serial.print(':');
Serial.print(GPS.seconds, DEC); Serial.print('.');
Serial.println(GPS.milliseconds);
Serial.print("Date: ");
Serial.print(GPS.day, DEC); Serial.print('/');
Serial.print(GPS.month, DEC); Serial.print("/20");
Serial.println(GPS.year, DEC);
Serial.print("Fix: "); Serial.print((int)GPS.fix);
Serial.print(" quality: "); Serial.println((int)GPS.fixquality);
if (GPS.fix) {
Serial.print("Location: ");
Serial.print(GPS.latitude, 4); Serial.print(GPS.lat);
Serial.print(", ");
Serial.print(GPS.longitude, 4); Serial.println(GPS.lon);
Serial.print("Location (in degrees, works with Google Maps): ");
Serial.print(GPS.latitudeDegrees, 4);
Serial.print(", ");
Serial.println(GPS.longitudeDegrees, 4);
Serial.print("Speed (knots): "); Serial.println(GPS.speed);
Serial.print("Angle: "); Serial.println(GPS.angle);
Serial.print("Altitude: "); Serial.println(GPS.altitude);
Serial.print("Satellites: "); Serial.println((int)GPS.satellites);
}
}
}
Time: 0:0:0.0
Date: 0/0/200
Fix: 0 quality: 0
€€xøxxx€xxxx€x€xø€€€x€€ø€€xø€x€€øxxøxxxx€€€x€ø€€ø€€€x€€x€€€xø€€øø€ø€€€€x€€€€ø€ø€€ø€x€€xx€x€€€€€€€€€xxx€x€x€x€€xø€€x€x€xx€€€øxx€€øx€øx€xxx€€€€€€€x€€€xxx€ø€€x€ø€øx€x€€ø€øx€øxøx€€€€x€€€€€€xxx€€x€€xøxxx€xxxx€x€xø€€€x€€ø€€xø€x€€øxxøxxxx€€€x€ø€€ø€€€€€€€x€€€xø€€øø€ø€€€€x€€€€ø€ø€€ø€x€€xx€€ø€ø€€øxøxxx€€€€€€x€xxxx€€x€x€xx€øøx€x€€x€€€€€€xxøøø€€€€€€€x€€€€€x€€€€xxx€x€€x€x€€x€ø€ø€øxxøxx€
Time: 0:0:0.0
Date: 0/0/200
Fix: 0 quality: 0
€€xøxxx€xxxx€x€xø€€€x€€ø€€xø€x€€øxxøxxxx€€€x€ø€€ø€€€ø€€€x€€€xø€€øø€ø€€€€x€€€€ø€ø€€ø€x€€xx€€ø€øxøøø€øxxx€€x€xxx€€€ø€x€xx€øø€x€€x€€€€€€x€€xxøøø€€€ø€x€€€€€€€€€€xxx€x€€x€x€€x€ø€ø€øxxxxxøxx€€€xøxxx€xxxx€x€xø€€€x€€ø€€xø€x€€øxxøxxxx€€€x€ø€€ø€€€ø€€x€€€xø€€øø€ø€€€€x€€€€ø€ø€€ø€x€€xx€€ø€ø€€øxøxxx€€€€€€x€xxxx€€x€x€xx€ø€x€x€€x€€€€€xxøøø€€€€€€€x€€€€€x€€€€xxx€x€€x€x€€x€ø€ø€øxxxø€ø€
Time: 0:0:0.0
Date: 0/0/200
Fix: 0 quality: 0
€€xøxxx€xxxx€x€xø€€€x€€ø€€xø€x€€øxxøxxxx€€€x€ø€€ø€€€xø€€x€€€xø€€øø€ø€€€€x€€€€ø€ø€€ø€x€€xx€€ø€øxøøø€xxxxx€€x€xxx€€€ø€x€xx€€€€x€€x€€€€€øx€€€xxxøøø€€€ø€x€€€€€€€€€€xxx€x€€x€x€€x€ø€ø€øxxxxxøø€€€xøxxx€xxxx€x€xø€€€x€€ø€€xø€x€€øxxøxxxx€€€x€ø€€ø€€€€ø€€x€€€xø€€øø€ø€€€€x€€€€ø€ø€€ø€x€€xxx€€€€€€€€€øxx€x€x€x€€xø€€x€x€xx€øxøxxx€€x€øx€xxx€€€€€€€€€€xxx€€€€x€ø€øx€x€€ø€øxøøø€øx€€xx€€€€xx€€x
Time: 0:0:0.0
Date: 0/0/200
Fix: 0 quality: 0
€€xøxxx€xxxx€x€xø€€€x€€ø€€xø€x€€øxxøxxxx€€€x€ø€€ø€€€øø€€x€€€xø€€øø€ø€€€€x€€€€ø€ø€€ø€x€€xx€€€€€€€€€€xxx€x€x€x€€xø€€x€x€xx€øxøxx€€x€øx€xxx€€€€€€€€€€xxx€ø€€x€ø€øx€x€€ø€øxøøøxøx€€x€€€€€€xx€€x€€xøxxx€xxxx€x€xø€€€x€€ø€€xø€x€€øxxøxxxx€€€x€ø€€ø€€€€€x€€€xø€€øø€ø€€€€x€€€€ø€ø€€ø€x€€xx€x€€€øxøøø€xxx€x€x€x€€xø€€xxxx€€€øxx€€€x€€xxxxxx€€€€€€x€€€xxx€ø€€x€ø€øx€xxø€€€øxøx€€€€€€x€€€€€øxxxxxø€x
Time: 0:0:0.0
Date: 0/0/200
Fix: 0 quality: 0
€€xøxxx€xxxx€x€xø€€€x€€ø€€xø€x€€øxxøxxxx€€€x€ø€€ø€€€x€€x€€€xø€€øø€ø€€€€x€€€€ø€ø€€ø€x€€xx€xø€€€€€€€øxx€€x€x€€xø€€x€x€xx€øxøx€xxxø€ø€øx€xx€xøøx€€€€xxø€€€€x€€€øx€x€€ø€øxøøø€xxx€x€€xxxxxx€€€€€€xøxxx€xxxx€x€xø€€€x€€ø€€xø€x€€øxxøxxxx€€€x€ø€€ø€€x€€€x€€€xø€€øø€ø€€€€x€€€€ø€ø€€ø€x€€xx€x€ø€øxøøø€xxx€x€€xxx€€€ø€xxx€€€€xx€x€€€€€€x€€€xxxøøø€€€ø€xxø€€€€€€€€øx€x€€x€x€€x€ø€ø€øxxxxxøøx
Re: GPS Ultimate Breakout default Baud Rate
// Test code for Adafruit GPS modules using MTK3329/MTK3339 driver
//
// This code shows how to listen to the GPS module in an interrupt
// which allows the program to have more 'freedom' - just parse
// when a new NMEA sentence is available! Then access data when
// desired.
//
// 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
#include <Adafruit_GPS.h>
#include <SoftwareSerial.h>
// If you're using a GPS module:
// 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 3
// Connect the GPS RX (receive) pin to Digital 2
// If using hardware serial (e.g. Arduino Mega):
// Connect the GPS TX (transmit) pin to Arduino RX1, RX2 or RX3
// Connect the GPS RX (receive) pin to matching TX1, TX2 or TX3
// If you're using the Adafruit GPS shield, change
// SoftwareSerial mySerial(3, 2); -> SoftwareSerial mySerial(8, 7);
// and make sure the switch is set to SoftSerial
// If using software serial, keep this line enabled
// (you can change the pin numbers to match your wiring):
//SoftwareSerial mySerial(3, 2);
// If using hardware serial (e.g. Arduino Mega), comment out the
// above SoftwareSerial line, and enable this line instead
// (you can change the Serial number to match your wiring):
#define mySerial Serial1
Adafruit_GPS GPS(&mySerial);
// Set GPSECHO to 'false' to turn off echoing the GPS data to the Serial console
// Set to 'true' if you want to debug and listen to the raw GPS sentences.
#define GPSECHO true
// this keeps track of whether we're using the interrupt
// off by default!
boolean usingInterrupt = false;
void useInterrupt(boolean); // Func prototype keeps Arduino 0023 happy
void setup()
{
// connect at 115200 so we can read the GPS fast enough and echo without dropping chars
// also spit it out
Serial.begin(115200);
Serial.println("Adafruit GPS library basic test!");
// 9600 NMEA is the default baud rate for Adafruit MTK GPS's- some use 4800
GPS.begin(9600);
// GPS.sendCommand("$PMTK251,57600*2C"); //set baud rate to 57600
GPS.sendCommand("$PMTK251,38400*27"); //set baud rate to 38400
// GPS.sendCommand("$PMTK251,19200*22"); //set baud rate to 19200
// GPS.sendCommand("$PMTK251,9600*17"); //set baud rate to 9600
mySerial.end();
GPS.begin(38400);
// uncomment this line to turn on RMC (recommended minimum) and GGA (fix data) including altitude
GPS.sendCommand(PMTK_SET_NMEA_OUTPUT_RMCGGA);
// uncomment this line to turn on only the "minimum recommended" data
//GPS.sendCommand(PMTK_SET_NMEA_OUTPUT_RMCONLY);
// For parsing data, we don't suggest using anything but either RMC only or RMC+GGA since
// the parser doesn't care about other sentences at this time
// Set the update rate
GPS.sendCommand(PMTK_SET_NMEA_UPDATE_1HZ); // 1 Hz update rate
// For the parsing code to work nicely and have time to sort thru the data, and
// print it out we don't suggest using anything higher than 1 Hz
// Request updates on antenna status, comment out to keep quiet
GPS.sendCommand(PGCMD_ANTENNA);
// the nice thing about this code is you can have a timer0 interrupt go off
// every 1 millisecond, and read data from the GPS for you. that makes the
// loop code a heck of a lot easier!
useInterrupt(false);
delay(1000);
// Ask for firmware version
mySerial.println(PMTK_Q_RELEASE);
}
// Interrupt is called once a millisecond, looks for any new GPS data, and stores it
SIGNAL(TIMER0_COMPA_vect) {
char c = GPS.read();
// if you want to debug, this is a good time to do it!
#ifdef UDR0
if (GPSECHO)
if (c) UDR0 = c;
// writing direct to UDR0 is much much faster than Serial.print
// but only one character can be written at a time.
#endif
}
void useInterrupt(boolean v) {
if (v) {
// Timer0 is already used for millis() - we'll just interrupt somewhere
// in the middle and call the "Compare A" function above
OCR0A = 0xAF;
TIMSK0 |= _BV(OCIE0A);
usingInterrupt = true;
} else {
// do not call the interrupt function COMPA anymore
TIMSK0 &= ~_BV(OCIE0A);
usingInterrupt = false;
}
}
uint32_t timer = millis();
void loop() // run over and over again
{
// in case you are not using the interrupt above, you'll
// need to 'hand query' the GPS, not suggested :(
if (! usingInterrupt) {
while (mySerial.available())
{
// read data from the GPS in the 'main loop'
char c = GPS.read();
// if you want to debug, this is a good time to do it!
if (GPSECHO)
if (c) Serial.print(c);
}
}
// if a sentence is received, we can check the checksum, parse it...
if (GPS.newNMEAreceived()) {
// a tricky thing here is if we print the NMEA sentence, or data
// we end up not listening and catching other sentences!
// so be very wary if using OUTPUT_ALLDATA and trytng to print out data
//Serial.println(GPS.lastNMEA()); // this also sets the newNMEAreceived() flag to false
if (!GPS.parse(GPS.lastNMEA())) // this also sets the newNMEAreceived() flag to false
return; // we can fail to parse a sentence in which case we should just wait for another
}
// if millis() or timer wraps around, we'll just reset it
if (timer > millis()) timer = millis();
// approximately every 2 seconds or so, print out the current stats
if (millis() - timer > 2000) {
timer = millis(); // reset the timer
Serial.print("\nTime: ");
Serial.print(GPS.hour, DEC); Serial.print(':');
Serial.print(GPS.minute, DEC); Serial.print(':');
Serial.print(GPS.seconds, DEC); Serial.print('.');
Serial.println(GPS.milliseconds);
Serial.print("Date: ");
Serial.print(GPS.day, DEC); Serial.print('/');
Serial.print(GPS.month, DEC); Serial.print("/20");
Serial.println(GPS.year, DEC);
Serial.print("Fix: "); Serial.print((int)GPS.fix);
Serial.print(" quality: "); Serial.println((int)GPS.fixquality);
if (GPS.fix) {
Serial.print("Location: ");
Serial.print(GPS.latitude, 4); Serial.print(GPS.lat);
Serial.print(", ");
Serial.print(GPS.longitude, 4); Serial.println(GPS.lon);
Serial.print("Location (in degrees, works with Google Maps): ");
Serial.print(GPS.latitudeDegrees, 4);
Serial.print(", ");
Serial.println(GPS.longitudeDegrees, 4);
Serial.print("Speed (knots): "); Serial.println(GPS.speed);
Serial.print("Angle: "); Serial.println(GPS.angle);
Serial.print("Altitude: "); Serial.println(GPS.altitude);
Serial.print("Satellites: "); Serial.println((int)GPS.satellites);
}
}
}
Re: GPS Ultimate Breakout default Baud Rate
// 9600 NMEA is the default baud rate for Adafruit MTK GPS's- some use 4800
GPS.begin(9600);
//GPS.sendCommand("$PMTK251,57600*2C"); //set baud rate to 57600
GPS.sendCommand("$PMTK251,38400*27"); //set baud rate to 38400
//GPS.sendCommand("$PMTK251,19200*22"); //set baud rate to 19200
//GPS.sendCommand("$PMTK251,9600*17"); //set baud rate to 9600
mySerial.end();
delay(1000);
GPS.begin(38400);
Re: GPS Ultimate Breakout default Baud Rate
Re: GPS Ultimate Breakout default Baud Rate
Re: GPS Ultimate Breakout default Baud Rate
Re: GPS Ultimate Breakout default Baud Rate
$PMTK605*31
//switch the GPS baud rate to 38400
Serial1.write("$PMTK251,38400*27\r\n");
//change baud rate of serial port to 38400
Serial1.flush();
delay(10);
Serial1.end();
Serial1.begin(38400);
$PMTK220,100*2F\r\n
Re: GPS Ultimate Breakout default Baud Rate
Re: GPS Ultimate Breakout default Baud Rate
adafruit_support_rick wrote:There's code to change the baud rate earlier in this thread. Have you tried that?
Arduino: 1.6.3 (Windows 7), Board: "Arduino Uno"
Baudchangegps.ino:1:1: error: 'SoftwareSerial' does not name a type
Baudchangegps.ino:2:1: error: 'Adafruit_GPS' does not name a type
Baudchangegps.ino: In function 'void setup()':
Baudchangegps.ino:7:3: error: 'GPS' was not declared in this scope
Baudchangegps.ino:12:3: error: 'mySerial' was not declared in this scope
Error compiling.
$PMTK705,AXN_2.10_3339_2012072601,5223,PA6H,1.0*6A
Re: GPS Ultimate Breakout default Baud Rate