Go Down

Topic: Arduino GPS Shield (Read 34933 times) previous topic - next topic

Johnny D

We've been running it in this configuration for 2 years with no problems.  The levels may be 3.3V but they're certainly compatible with the Arduino digital pins.


Hello world :)
Last week I buy dexter industries GPS shield. I tyied to run it with arduino mega adk. I can't read GPS data over serial communication. I read that on arduino mega I must change jumper from 3 to some high pin (10,11,12) but with no success. I also tryed all examples over internet but also with no result.
please help.



Hello world again :)
after one week testing I figure this out. I put the jumper on my dexter GPS shield to 10 and change in dGPS.cpp file ports like :

#define SoftrxPin 10
#define SofttxPin 4

and everything works fine :D

Johnny D

Glad you found the change in the software.  Did you really spend a week, it looks like you just posted the first request for help an hour or two ago. 

What kind of project are you using this for?


i make a quadcopter. I want to control the QC over the internet. On board I have arduino mega adk + GPS shield and android phone.
I write android program that control the motors over usb, send back gps data to the server and receive command from web.
I can see QC position on my laptop and can send commands like "goto <latitude, longtitude> etc. :D  (sorry for my bad english)

Johnny D

Your English is fine, no worries.

Do you have a project page or something we could share?


Does anyone knows why am i getting always the same latitude and longitude?


Does anyone knows why am i getting always the same latitude and longitude?

Could it be that you're not providing enough detail for a sensible answer, or that you lead a sedentary lifestyle?
"Pete, it's a fool (who) looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.
I speak for myself, not Arduino.


Dec 22, 2013, 01:27 am Last Edit: Dec 23, 2013, 04:29 pm by meno Reason: 1
Sorry, i just got a Dexter Industries GPS Shield but when i run the sketch i get the same latitude and longitude at different places.
this is my script:

Code: [Select]
#include <string.h>
#include <ctype.h>
#include <SoftwareSerial.h>
#define SoftrxPin 3
#define SofttxPin 4
// Initiate the software serial connection
SoftwareSerial gpsSerial = SoftwareSerial(SoftrxPin, SofttxPin);
int ledPin = 13;                  // LED test pin
int rxPin = 0;                    // RX PIN
int txPin = 1;                    // TX TX
int byteGPS=-1;
char linea[300] = "";
char comandoGPR[7] = "$GPRMC";
int cont=0;
int bien=0;
int conta=0;
int indices[13];
void setup() {
  pinMode(ledPin, OUTPUT);       // Initialize LED pin
  pinMode(rxPin, INPUT);
  pinMode(txPin, OUTPUT);
  for (int i=0;i<300;i++){       // Initialize a buffer for received data
    linea[i]=' ';
void loop() {
  digitalWrite(ledPin, HIGH);
  byteGPS=gpsSerial.read();         // Read a byte of the serial port
  if (byteGPS == -1) {           // See if the port is empty yet
  } else {
    // note: there is a potential buffer overflow here!
    linea[conta]=byteGPS;        // If there is serial port data, it is put in the buffer
    if (byteGPS==13){            // If the received byte is = to 13, end of transmission
      // note: the actual end of transmission is <CR><LF> (i.e. 0x13 0x10)
      digitalWrite(ledPin, LOW);
      // The following for loop starts at 1, because this code is clowny and the first byte is the <LF> (0x10) from the previous transmission.
      for (int i=1;i<7;i++){     // Verifies if the received command starts with $GPR
        if (linea[i]==comandoGPR[i-1]){
      if(bien==6){               // If yes, continue and process the data
        for (int i=0;i<300;i++){
          if (linea[i]==','){    // check for the position of the  "," separator
            // note: again, there is a potential buffer overflow here!
          if (linea[i]=='*'){    // ... and the "*"
        Serial.println("");      // ... and write to the serial port
        for (int i=0;i<12;i++){
            case 0 :Serial.print("Time in UTC (HhMmSs): ");break;
            case 1 :Serial.print("Status (A=OK,V=KO): ");break;
            case 2 :Serial.print("Latitude: ");break;
            case 3 :Serial.print("Direction (N/S): ");break;
            case 4 :Serial.print("Longitude: ");break;
            case 5 :Serial.print("Direction (E/W): ");break;
            case 6 :Serial.print("Velocity in knots: ");break;
            case 7 :Serial.print("Heading in degrees: ");break;
            case 8 :Serial.print("Date UTC (DdMmAa): ");break;
            case 9 :Serial.print("Magnetic degrees: ");break;
            case 10 :Serial.print("(E/W): ");break;
            case 11 :Serial.print("Mode: ");break;
            case 12 :Serial.print("Checksum: ");break;
          for (int j=indices[i];j<(indices[i+1]-1);j++){
      conta=0;                    // Reset the buffer
      for (int i=0;i<300;i++){    //  
        linea[i]=' ';            


Now go back to your last post, click on "modify", highlight the code, then click on the # icon on the editor's toolbar.
Then click on "save".
Then we won't have any of the italics, and your code may make some sense.

You've got a lot of big buffers and strings there; maybe you're running short of RAM.
Move the constant strings into PROGMEM.
"Pete, it's a fool (who) looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.
I speak for myself, not Arduino.


Thanks man, i moved the constant string and works just fine.


Hi everyone!

Here is another Arduino GPS Shield from ITEAD Studio: http://imall.iteadstudio.com/im120417017.html



Yes I just buy your product last time.. The problem is .. default jumper on the products is on 1 (RX) and 0 (TX), when i compile sample code from tinyGPS and softwareserial set to RX 1 and TX 0.. I can't upload on Arduino.  I try to change jumper to pin 4 (RX) and pin 3 (TX) and i configure again softwareserial to (4,3). yessss.. I can upload the code !!! but.. I can't get Received anything data from GPS. I read guide from other and it should that the RX PIN 4 connect to TX ( pin 18 ) on arduino Mega 2560 and TX PIN 3 connected to RX (PIN 19) on arduino Mega 2560.  I reupload the code and I still can get Received Data.... something wrong with my PIN CONFIGURATION ??? . I will very appreciate if you could give me setup PIN ited connected to arduino Mega with PICT ..thanks


Why don't you contact itead directly instead of hoping they'll see your post on here?

And if you get resolution, please follow up your post?
Beginners guide to using the Seeedstudio SIM900 GPRS/GSM Shield

Go Up