Image embedded for our convenience:
Technique described here.
In the picture attached you can see the signal on the oscilloscope at power on...
In the signal from GPS, I read in the oscilloscope:
$GPGSV,3,2,10,20,41,.....
Excellent! I'm so glad you can scope this out. This confirms that :
-
The sketch is sending the PMTK configuration command to turn on the GSV sentences.
-
The GPS device receives it correctly on the GPS RX pin.
-
The GPS device is sending GSV sentences.
-
The GPS device can see 10 satellites (3rd field in the GSV sentence).
This eliminates the most common problems. Next:
Now I'm reading:
3 dtsat:4/0
3 dtsat:4/0
near the window.
This shows:
-
the status (3, a good fix),
-
date/time are valid (from RMC and GGA sentences),
-
4 satellites were used to calculate the current fix (according to the GGA sentence), and
-
0 satellites were tracked in the
gps.satellites[]array.
The first 3 are good. The last one, 0 satellites in the array, is bad.
Since you know the GPS device is sending the GSV sentences, either:
-
the 328 is not receiving anything from the GPS device, or
-
the 328 is receiving GPS characters, but it is not parsing the GSV sentences correctly.
It must be the latter. Are you sure that this line is uncommented?
#define NMEAGPS_PARSE_GSV
NeoGPS will ignore $GPGSV sentences unless this #define is uncommented.
Make sure there are no NeoGPS files in your sketch directory. Having a NeoGPS config file in the sketch directory can make bad things happen. You must modify the config files in the Libraries/NeoGPS/src directory.
Cheers,
/dev
