TinyCircuits Forum
TinyCircuits Products => TinyDuino Processors & TinyShields => Topic started by: peejster on May 26, 2014, 05:36:55 PM
-
Unable to get a reading from the GPS TinyShield. I've read the documentation for the GPS TinyShield as well as the notes from the TinyGPSPlus library. I have the TinyDuino board at the bottom, then the GPS TinyShield on top of the processor, and then the TinyShield USB & ICP board on top of the GPS.
I ran the Blink sketch successfully to ensure that everything was working properly. (From the IDE, the board I have selected is Arduino Pro or Pro Mini (3.3V, 8MHz) with ATmega328.)
To test the GPS, I used the setup from the example provided in the Tiny-Circuits site and then I used a simplified loop just to get some readings. However, I always seem to get the "No GPS detected" message. I also wasn't sure exactly which pin A0 or A1 is the RX pin on the GPS TinyShield - the example code has RX as A1 but the text above th example code on the Tiny-Circuits GPS tutorial states that RX is A0. I tried it both ways - same result.
I can't figure out why I am not getting any readings.
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
/*
This sample code demonstrates the normal use of a TinyGPS++ (TinyGPSPlus) object.
*/
static const int GPS_ONOFFPin = A3;
static const int GPS_SYSONPin = A2;
static const int GPS_RXPin = A0;
static const int GPS_TXPin = A1;
static const int GPSBaud = 9600;
// The TinyGPS++ object
TinyGPSPlus gps;
// The serial connection to the GPS device
SoftwareSerial ss(GPS_RXPin, GPS_TXPin);
void setup()
{
Serial.begin(115200);
// Init the GPS Module to wake mode
pinMode(GPS_SYSONPin, INPUT);
pinMode(GPS_ONOFFPin, OUTPUT);
digitalWrite( GPS_ONOFFPin, LOW );
delay(5);
if( digitalRead( GPS_SYSONPin ) == LOW )
{
// Need to wake the module
digitalWrite( GPS_ONOFFPin, HIGH );
delay(5);
digitalWrite( GPS_ONOFFPin, LOW );
}
ss.begin(GPSBaud);
}
void loop()
{
while (ss.available())
if (gps.encode(ss.read()))
{
Serial.print(F("Location: "));
Serial.print(gps.location.lat(), 6);
Serial.print(F(","));
Serial.print(gps.location.lng(), 6);
}
if (millis() > 5000 && gps.charsProcessed() < 10)
{
Serial.println(F("No GPS detected: check wiring."));
while(true);
}
}
-
I am having the same issue
TinyGPS+++
Thank you for the well documented tutorial- I appreciate your time and help with all the examples but I can’t seem to get this working as expected - I am using the TinyShield GPS with TinyDuino
DeviceExample.ino
A simple demonstration of TinyGPS++ with an attached GPS module
Testing TinyGPS++ library v. 0.92
by Mikal Hart
No GPS detected: check wiring.
An extensive example of many interesting TinyGPS++ features
Testing TinyGPS++ library v. 0.92
by Mikal Hart
Sats HDOP Latitude Longitude Fix Date Time Date Alt Course Speed Card Distance Course Card Chars Sentences Checksum
(deg) (deg) Age Age (m) --- from GPS ---- ---- to London ---- RX RX Fail
---------------------------------------------------------------------------------------------------------------------------------------
**** **** ********** *********** **** ********** ******** **** ****** ****** ***** *** ******** ****** *** 0 0 0
**** **** ********** *********** **** ********** ******** **** ****** ****** ***** *** ******** ****** *** 15 0 0
0 0 ********** *********** **** 05/26/2014 14:04:12 381 ****** ****** ***** *** ******** ****** *** 339 0 0
0 0 ********** *********** **** 05/26/2014 14:04:13 391 ****** ****** ***** *** ******** ****** *** 643 0 0
0 0 ********** *********** **** 05/26/2014 14:04:14 404 ****** ****** ***** *** ******** ****** *** 947 0 0
0 0 ********** *********** **** 05/26/2014 14:04:15 418 ****** ****** ***** *** ******** ****** *** 1251 0 0
0 0 ********** *********** **** 05/26/2014 14:04:16 428 ****** ****** ***** *** ******** ****** *** 1555 0 0
0 0 ********** *********** **** 05/26/2014 14:04:17 387 ****** ****** ***** *** ******** ****** *** 1883 0 0
0 0 ********** *********** **** 05/26/2014 14:04:18 399 ****** ****** ***** *** ******** ****** *** 2211 0 0
0 0 ********** *********** **** 05/26/2014 14:04:19 397 ****** ****** ***** *** ******** ****** *** 2539 0 0
0 0 ********** *********** **** 05/26/2014 14:04:20 418 ****** ****** ***** *** ******** ****** *** 2867 0 0
0 0 ********** *********** **** 05/26/2014 14:04:21 436 ****** ****** ***** *** ******** ****** *** 3193 0 0
0 0 ********** *********** **** 05/26/2014 14:04:22 448 ****** ****** ***** *** ******** ****** *** 3519 0 0
itializing SD card...card initialized.
$PSRF150,1*3E
$GPGGA,,,,,,0,00,,,M,0.0,M,,0000*48
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,3,1,12,01,00,000,,02,00,000,,03,00,000,,04,00,000,*7C
$GPGSV,3,2,12,05,00,000,,06,00,000,,07,00,000,,08,00,000,*77
$GPGSV,3,3,12,09,00,0,,,,N*53
$GPGGA,,,,,,0,00,,,M,0.0,M,,0000*48
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,3,1,12,01,00,000,,02,00,000,,03,00,000,,04,00,000,*7C
$GPGSV,3,2,12,05,00,000,,06,00,000,,07,00,000,,08,00,000,*77
0,*71
$GPRMC,,V,,,,,,,,,,N*53
-
I gotbthis to work - patience is the key...
0 410 40.754219 -73.997261 1349 05/28/2014 02:19:04 209 34.20 343.78 6.48 S 5568 51.24 NE 10807 162 0
0 410 40.754219 -73.997261 1359 05/28/2014 02:19:05 225 34.20 343.78 6.48 S 5568 51.24 NE 10837 162 0
0 410 40.754219 -73.997261 1369 05/28/2014 02:19:06 246 34.20 343.78 6.48 S 5568 51.24 NE 10868 162 0
0 410 40.754219 -73.997261 1379 05/28/2014 02:19:07 267 34.20 343.78 6.48 S 5568 51.24 NE 10898 162 0
0 410 40.754219 -73.997261 1390 05/28/2014 02:19:08 285 34.20 343.78 6.48 S 5568 51.24 NE 10929 162 0
0 410 40.754219 -73.997261 1400 05/28/2014 02:19:09 308 34.20 343.78 6.48 S 5568 51.24 NE 10960 162 0
0 410 40.754219 -73.997261 1410 05/28/2014 02:19:10 327 34.20 343.78 6.48 S 5568 51.24 NE 10990 162 0
0 410 40.754219 -73.997261 1420 05/28/2014 02:19:11 350 34.20 343.78 6.48 S 5568 51.24 NE 11021 162 0
0 410 40.754219 -73.997261 1430 05/28/2014 02:19:12 370 34.20 343.78 6.48 S 5568 51.24 NE 11051 162 0
0 410 40.754219 -73.997261 1441 05/28/2014 02:19:13 393 34.20 343.78 6.48 S 5568 51.24 NE 11082 162 0
0 410 40.754219 -73.997261 1451 05/28/2014 02:19:14 410 34.20 343.78 6.48 S 5568 51.24 NE 11113 162 0
0 410 40.754219 -73.997261 1461 05/28/2014 02:19:15 430 34.20 343.78 6.48 S 5568 51.24 NE 11143 162 0
0 410 40.754219 -73.997261 1471 05/28/2014 02:19:16 449 34.20 343.78 6.48 S 5568 51.24 NE 11174 162 0
0 410 40.754219 -73.997261 1481 05/28/2014 02:19:17 469 34.20 343.78 6.48 S 5568 51.24 NE 11204 162 0
0 410 40.754219 -73.997261 1491 05/28/2014 02:19:18 490 34.20 343.78 6.48 S 5568 51.24 NE 11235 162 0
0 410 40.754219 -73.997261 1502 05/28/2014 02:19:19 512 34.20 343.78 6.48 S 5568 51.24 NE 11266 162 0
0 410 40.754219 -73.997261 1512 05/28/2014 02:19:20 532 34.20 343.78 6.48 S 5568 51.24 NE 11296 162 0
0 410 40.754219 -73.997261 1522 05/28/2014 02:19:21 555 34.20 343.78 6.48 S 5568 51.24 NE 11327 162 0
0 410 40.754219 -73.997261 1532 05/28/2014 02:19:22 573 34.20 343.78 6.48 S 5568 51.24 NE 11357 162 0
0 410 40.754219 -73.997261 1542 05/28/2014 02:19:23 594 34.20 343.78 6.48 S 5568 51.24 NE 11388 162 0
0 410 40.754219 -73.997261 1553 05/28/2014 02:19:24 613 34.20 343.78 6.48 S 5568 51.24 NE 11419 162 0
0 410 40.754219 -73.997261 1563 05/28/2014 02:19:25 633 34.20 343.78 6.48 S 5568 51.24 NE 11449 162 0
0 410 40.754219 -73.997261 1573 05/28/2014 02:19:26 688 34.20 343.78 6.48 S 5568 51.24 NE 11494 162 0
0 410 40.754219 -73.997261 1585 05/28/2014 02:19:28 905 34.20 343.78 6.48 S 5568 51.24 NE 11541 162 0
0 410 40.754219 -73.997261 1597 05/28/2014 02:19:29 12 34.20 343.78 6.48 S 5568 51.24 NE 11572 162 0
0 410 40.754219 -73.997261 1607 05/28/2014 02:19:30 31 34.20 343.78 6.48 S 5568 51.24 NE 11602 162 0
0 410 40.754219 -73.997261 1617 05/28/2014 02:19:31 54 34.20 343.78 6.48 S 5568 51.24 NE 11633 162 0
-
Patience is the key, but what was the solution? Was it a loose connection, code error, etc.?
-
Hi
Looks like it was the environment- I moved outside and had a clear view of the sky- that was last night - and today it's back to square one-
not getting a fix on a satellite - getting date/time/stamp - but even that takes a few minutes
back to the drawing board- I'll post my progress
-
one observation:
I did notice that you have transposed A1 and A0
-
So, then this is the correct pin layout?
static const int GPS_RXPin = A1;
static const int GPS_TXPin = A0;
-
This unit is taking about 90 to 120 seconds to lock for me, and I had to go outdoors. Testing indoors wasn't locking.
Hope this helps
-
This unit is taking about 90 to 120 seconds to lock for me, and I had to go outdoors. Testing indoors wasn't locking.
Fun Games (https://fun-games.io)
Hope this helps
I feel this waiting time is too long. Can't it be shortened?
-
Unable to get a reading from the GPS TinyShield. I've read the documentation for the GPS TinyShield as well as the notes from the TinyGPSPlus library. I have the TinyDuino board at the bottom, then the GPS TinyShield on top of the processor, and then the TinyShield USB & ICP board on top of the GPS.
I ran the Blink sketch successfully to ensure that everything was working properly. (From the IDE, the board I have selected is Arduino Pro or Pro Mini (3.3V, 8MHz) with ATmega328.)
To test the GPS, I used the setup from the example provided in the Tiny-Circuits site and then I used a simplified loop just to get some readings. However, I always seem to get the "No GPS detected" message. I also wasn't sure exactly which pin A0 or A1 is the RX pin on the GPS TinyShield - the example code has RX as A1 but the text above th example code on the Tiny-Circuits GPS tutorial states that RX is A0. I tried it both ways - same result.
I can't figure out why I am not getting any readings.
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
/*
This sample code demonstrates the normal use of a TinyGPS++ (TinyGPSPlus) object.
*/
static const int GPS_ONOFFPin = A3;
static const int GPS_SYSONPin = A2;
static const int GPS_RXPin = A0;
static const int GPS_TXPin = A1;
static const int GPSBaud = 9600;
// The TinyGPS++ object
TinyGPSPlus gps;
// The serial connection to the GPS device
SoftwareSerial ss(GPS_RXPin, GPS_TXPin);
void setup()
{
Serial.begin(115200);
// Init the GPS Module to wake mode
pinMode(GPS_SYSONPin, INPUT);
pinMode(GPS_ONOFFPin, OUTPUT);
digitalWrite( GPS_ONOFFPin, LOW );
delay(5);
if( digitalRead( GPS_SYSONPin ) == LOW )
{
// Need to wake the module
digitalWrite( GPS_ONOFFPin, HIGH );
delay(5);
digitalWrite( GPS_ONOFFPin, LOW );
}
ss.begin(GPSBaud);
}
void loop()
{
while (ss.available())
if (gps.encode(ss.read()))
{
Serial.print(F("Location: "));
Serial.print(gps.location.lat(), 6);
Serial.print(F(","));
Serial.print(gps.location.lng(), 6);
}
if (millis() > 5000 && gps.charsProcessed() < 10)
{
Serial.println(F("No GPS detected: check wiring."));
while(true);
}
}
It sounds like you've put a lot of effort into troubleshooting the issue with your GPS TinyShield. Since you've checked the hardware setup and reviewed the code, here are a few additional suggestions: Double-check the wiring connections to ensure they're secure and accurate, confirm the power supply to the GPS TinyShield is stable, and make sure the antenna has a clear view of the sky for satellite signals. Additionally, try using serial debugging tools to check for any errors or data reception from the GPS module. If the problem persists, consider reaching out to Tiny-Circuits support for further assistance. Keep testing in different environments to rule out external factors, and hopefully, you'll have the GPS module working soon. Kitchens Parramatta (https://www.kitchenrenovationsparramatta.com/)