Adafruit Ultimate GPS v3

Post here about your Arduino projects, get help - for Adafruit customers!

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
lee-k
 
Posts: 7
Joined: Sun Dec 29, 2013 9:41 pm

Adafruit Ultimate GPS v3

Post by lee-k »

Hi
I'n struggling with the Ultimate GPS

I can't seem to turn off the $PGTOP output

I've tried:

GPS.sendCommand(NOANTENNA) where NOANTENNA = #define NOANTENNA "$PGCMD,33,0*6D"

And

gpsSerial.println("$PGCMD,33,0*6D");

The few things I've found on the web seem to suggest this is the right command

What am I missing?

Thanks

Lee

User avatar
adafruit_support_rick
 
Posts: 35092
Joined: Tue Mar 15, 2011 11:42 am

Re: Adafruit Ultimate GPS v3

Post by adafruit_support_rick »

Can you post your code?

User avatar
lee-k
 
Posts: 7
Joined: Sun Dec 29, 2013 9:41 pm

Re: Adafruit Ultimate GPS v3

Post by lee-k »

Hi

Here's my code. All it does is push the date out the serial port. I'm just testing that I can get the data on windows and play with it there

The #defines are basically cut straight from the Adafruit GPS library. I changed the checksum on the NOANTENNA after I checked it on the checksum calculator recommended in the tutorial

Also

I have tried to stop the Antenna data using the full Adafruit GPS library and that doesn't work either

Code: Select all

#include <SoftwareSerial.h>

// different commands to set the update rate from once a second (1 Hz) to 10 times a second (10Hz)
#define NORMAL  "$PMTK220,1000*1F"	// PMTK_SET_NMEA_UPDATE_1HZ
#define FASTER  "$PMTK220,200*2C"	// PMTK_SET_NMEA_UPDATE_5HZ
#define FASTEST "$PMTK220,100*2F"	// PMTK_SET_NMEA_UPDATE_10HZ

#define RMCGGA "$PMTK314,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*28"	// PMTK_SET_NMEA_OUTPUT_RMCGGA

// ask for the release and version
#define VERSION "$PMTK605*31"	// PMTK_Q_RELEASE

// request for updates on antenna status 
#define ANTENNA "$PGCMD,33,1*6C" // PGCMD_ANTENNA
#define NOANTENNA "$PGCMD,33,0*6D" //  PGCMD_NOANTENNA

SoftwareSerial gpsSerial(8, 7);

void setup() {
  // Start hardware serial with 115200 baud rate. 
    Serial.begin(115200);
    delay(2000);
  
  // Start the GPS software serial with 9600 baud rate 
    gpsSerial.begin(9600);
    
    gpsSerial.println(NOANTENNA);

    gpsSerial.println(RMCGGA);    
   // Get RMC (recommended minimum coordinates) and GGA (fix data and altitude) 
  
    gpsSerial.println(NORMAL);
    // Set the update rate     //NORMAL = 1 update per second. 
                               // FASTER = 5 updates per second
                               // FASTEST = 10 updates per second  
}

void loop() {
    
  if(gpsSerial.available())  {
     Serial.write(gpsSerial.read()); 
  }
}
Here's what I see on the Windows side.

Data From Serial:
$PGTOP,11,2*6E
$GPGGA,151842.092,,,,,0,0,,,M,,M,,*48
$GPRMC,151842.092,V,,,,,0.00,0.00,010114,,,N*48

I'm wondering if GTOP have changed the command?

Thanks

Lee
Last edited by adafruit_support_rick on Wed Jan 01, 2014 1:53 pm, edited 1 time in total.
Reason: please use Code tags when posting code

User avatar
adafruit_support_rick
 
Posts: 35092
Joined: Tue Mar 15, 2011 11:42 am

Re: Adafruit Ultimate GPS v3

Post by adafruit_support_rick »

Hmm.. Don't know what to tell you. I just ran your code here, and both the ANTENNA and the NOANTENNA commands have the expected effects.
Furthermore, NOANTENNA is the default when you power-up the GPS. You should not be getting PGTOP at all on a cold start.

Perhaps you somehow got some sort of funny firmware version - all our units should be the same, but stuff happens, I guess.

If you like, you can email [email protected] with a link to this thread for a replacement.

User avatar
lee-k
 
Posts: 7
Joined: Sun Dec 29, 2013 9:41 pm

Re: Adafruit Ultimate GPS v3

Post by lee-k »

Hi

I've tried running just the version command on its own and all I get back is:

$PMTK001,220,3*30

This happens after a bout 4 or 5 PGTOP responses

I've tried just running the just the NOANTENNA on its own and all i get is:

$PGACK,001,-1*73

Again this happens after about 4 or 5 PGTOP responses but its not consistent, sometimes see it, sometimes not

When i say on its own I mean i have turned off all GPS data

I don't know if either of these is related to the actual commands I'm trying to run

It's really odd because it responds to the normal NMEA output commands

Also I ran the leo_echo sketch from the Adafruit GPS library and that doesn't printout a version at all

I'm running a Leonardo by the way. Would that have any baring?

You mentioned getting a replacement from support. I got this in the UK just before Christmas would I qualify for a replacement from you guys?

If so, that'd be great. What information would you need? The only thing I can see that looks like a serial is P6HP12470189

Thanks for your help on this

Lee

User avatar
adafruit_support_rick
 
Posts: 35092
Joined: Tue Mar 15, 2011 11:42 am

Re: Adafruit Ultimate GPS v3

Post by adafruit_support_rick »

Leonardo shouldn't matter.
Run this - it prints the version number every 2 seconds. See if you get anything reasonable back from it:

Code: Select all

#include <SoftwareSerial.h>

// different commands to set the update rate from once a second (1 Hz) to 10 times a second (10Hz)
#define NORMAL  "$PMTK220,1000*1F"   // PMTK_SET_NMEA_UPDATE_1HZ
#define FASTER  "$PMTK220,200*2C"   // PMTK_SET_NMEA_UPDATE_5HZ
#define FASTEST "$PMTK220,100*2F"   // PMTK_SET_NMEA_UPDATE_10HZ

#define RMCGGA "$PMTK314,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*28"   // PMTK_SET_NMEA_OUTPUT_RMCGGA

// ask for the release and version
#define VERSION "$PMTK605*31"   // PMTK_Q_RELEASE

// request for updates on antenna status 
#define ANTENNA "$PGCMD,33,1*6C" // PGCMD_ANTENNA
#define NOANTENNA "$PGCMD,33,0*6D" //  PGCMD_NOANTENNA

SoftwareSerial gpsSerial(8, 7);

void setup() {
  // Start hardware serial with 115200 baud rate. 
    Serial.begin(115200);
    delay(2000);
  
  // Start the GPS software serial with 9600 baud rate 
    gpsSerial.begin(9600);
    
    gpsSerial.println(NOANTENNA);

    gpsSerial.println(RMCGGA);    
   // Get RMC (recommended minimum coordinates) and GGA (fix data and altitude) 
  
    gpsSerial.println(NORMAL);
    // Set the update rate     //NORMAL = 1 update per second. 
                               // FASTER = 5 updates per second
                               // FASTEST = 10 updates per second  
}
uint32_t timer = millis();
void loop() {
    
  if(gpsSerial.available())  {
     Serial.write(gpsSerial.read()); 
  }
    // 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
    gpsSerial.println("$PMTK605*31");
  }
}

User avatar
lee-k
 
Posts: 7
Joined: Sun Dec 29, 2013 9:41 pm

Re: Adafruit Ultimate GPS v3

Post by lee-k »

Hi

The vendor I purchase the Ultimate GPS from agreed to replace the unit

I did try a much simpler version of the code you suggested. It just ran the version command
and then a 1 second delay but I didn't get anything back that looks like the examples I've
seen online.

I'm pretty new to this and i haven't done any C/C++ for about 12 years so I did spend some time
convinced it must be me. I got on to you when I'd run out of ideas.

One thing I did notice is that the #define PGCMD_NOANTENNA "$PGCMD,33,0*6C" statement
in the Adafruit GPS library is wrong. i ran it through the recommended checksum calculator and it came back with "$PGCMD,33,0*6D"

I did a search on the forum and I noticed this has been reported before ( in a not very nice way)
I don't know if this is the right place to raise a bug but if somebody else decides to play with the antenna commands they aren't going to be able to turn the antenna off

Anyway hopefully the new unit will solve the problem

Thanks for all your help on this

Lee

User avatar
adafruit_support_rick
 
Posts: 35092
Joined: Tue Mar 15, 2011 11:42 am

Re: Adafruit Ultimate GPS v3

Post by adafruit_support_rick »

Actually, I noticed the NO_ANTENNA checksum last week, and updated the library.

User avatar
lee-k
 
Posts: 7
Joined: Sun Dec 29, 2013 9:41 pm

Re: Adafruit Ultimate GPS v3

Post by lee-k »

Hi

Me again.

I got a replacement module but it still won't let me turn off the Antenna advisor

This one does give me a reply to the version command

Get version!
$PMTK705,AXN_2.10_3339_2012060701,5153,,1.0*03

Does this look right to you?

If not, is there anyway I can update the firmware myself?

Thanks

Lee

1chicagodave
 
Posts: 564
Joined: Wed Jun 19, 2013 3:35 am

Re: Adafruit Ultimate GPS v3

Post by 1chicagodave »

It took me a minute to figure this one out... :lol:

It's not telling you to 'get' that version of firmware. The "Get version!" is the module echoing back what you told it to do.

By sending the version command you said to the GPS module, "Get version!"
To which it replied, "$PMTK705,AXN_2.10_3339_2012060701,5153,,1.0*03", an NMEA sentence containing the current firmware version.

Look up packet type 705 in this document -
http://www.adafruit.com/datasheets/PMTK ... 39-A01.pdf

User avatar
lee-k
 
Posts: 7
Joined: Sun Dec 29, 2013 9:41 pm

Re: Adafruit Ultimate GPS v3

Post by lee-k »

Hi

Thanks for the reply

Yeah, I get that the "Get Version!" part of the output is not really part of the response
and that the $PMTK705 string is the actual response.

My problem with the module is that I can't get the Antenna Advisor string to turn off.

From googling around it seems that the earlier versions of the firmware for this chip didn't
include a way to turn off the Antenna Advisor

I really just wanted to know if the firmware version in the $PMTK705 was correct

Also, I get this ack string back ( inconsistently ) $PGACK,001,-1*73
after I send the command to turn of the Antenna Advisor
I can't find anything on this but the -1 makes me think it must be reporting an error

Any help you could offer would be welcome

Thank

Lee

User avatar
adafruit_support_rick
 
Posts: 35092
Joined: Tue Mar 15, 2011 11:42 am

Re: Adafruit Ultimate GPS v3

Post by adafruit_support_rick »

This is wacky. I got my unit so long ago I don't remember when it was, but I've got a newer version of the firmware.

I'll have to check into this.

Here's my version string:
$PMTK705,AXN_2.10_3339_2012072601,5223,PA6H,1.0*6A

There's no way to update the firmware yourself.

User avatar
lee-k
 
Posts: 7
Joined: Sun Dec 29, 2013 9:41 pm

Re: Adafruit Ultimate GPS v3

Post by lee-k »

Hi

I have borrowed an UNO and I'm going to try the module on that.

Also I haven't tried to run this module on Serial1 on the Leonardo

I have no real reason for thinking that it could be the board other than this has happened with 2
modules. All the regular request for NMEA string work fine

I have an Adafruit 10-DOF card as well and I've been running that through the Leonardo. On a couple of occasions
the board has stopped responding and I've unplug the board and restart with the module unplugged and then restart again
with the module wired in. I've been putting this down to my coding though.

Anyway it'll be good to rule it out

Thanks

Lee

1chicagodave
 
Posts: 564
Joined: Wed Jun 19, 2013 3:35 am

Re: Adafruit Ultimate GPS v3

Post by 1chicagodave »

Sorry, Lee. I thought about checking my firmware to compare....but didn't. :oops:

Which vendor did you purchase from?

Can you post photo of your GPS please?


PGACK...?

Not very helpful, but this is all I got. At least it is an antenna-related response.
image.jpg
image.jpg (127.08 KiB) Viewed 1643 times
I'm thinking Adafruit may need to contact G-Top to figure this out.
....and then that vendor.

adafruit
 
Posts: 12151
Joined: Thu Apr 06, 2006 4:21 pm

Re: Adafruit Ultimate GPS v3

Post by adafruit »

Hi there - we've been shipping AXN_2.10_3339_2012072601 for quite a while and not sure how we could have some old ones slipped in. we checked our inventory and all looks good right now. Please email support@adafruit again, "Attention, Phil", and request the "Ladyada verified" GPS breakout. This one for sure is AXN_2.10_3339_2012072601 :)

Locked
Please be positive and constructive with your questions and comments.

Return to “Arduino”