MKR GPS Shield don't work ! ( UART communication)

Hi everyone,

I'm having trouble getting the MKR GPS Shield to work with my Giga R1 WiFi board.
I tried connecting them using UART communication with the following wiring:

TX1 (Giga) → RX (GPS Shield)
RX1 (Giga) → TX (GPS Shield)
5V to 5V
GND to GND

I'm using Serial2 on the Giga R1, with this simple sketch to read GPS data:

void setup() {
  Serial.begin(115200);
  while (!Serial);

  Serial2.begin(9600); 
  Serial.println("Waiting for GPS data...");
}

void loop() {
  while (Serial2.available()) { 
    char c = Serial2.read(); 
    Serial.write(c);
  }
  /* 
  while (Serial2.available())
  {
    Serial.write(Serial2.read());
  }
*/
}

I tested the 2 way, outside under a clear sky for about 15 minutes, but no GPS data appeared on the Serial Monitor.

One thing I noticed: the 5V pin on the Giga outputs only 4.3V.
Could that be the issue, or is there a problem with my wiring? Is it possible the GPS shield is damaged?

( Serial1 is for tx and rx , serial2 tx1 and rx1, serial3 tx2 and rx2, serial4 tx3 and rx3 for the GIGA board)

Thanks in advance for any help!

I dont know the Giga R1 WiFi board, but a GPS will normally put out lots of serial data as soon as its powered, such as this;

$GPTXT,01,01,02,u-blox ag - www.u-blox.com*50
$GPTXT,01,01,02,HW  UBX-G60xx  00040007 FF7FFFFFp*53
$GPTXT,01,01,02,ROM CORE 7.03 (45969) Mar 17 2011 16:18:34*59
$GPTXT,01,01,02,ANTSUPERV=AC SD PDoS SR*20
$GPTXT,01,01,02,ANTSTATUS=DONTKNOW*33
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,1,1,00*79
$GPGLL,,,,,,V,N*64
$GPRMC,,V,,,,,,,,,,N*53

So if you dont see that type of data, there is some issue with the serial comms, and its not because the GPS does not have a location fix.

Gps shield pin 13?

I verified the UART communication by directly connecting the TX and RX pins of the Giga board together.
I typed messages from the keyboard and was able to read them back without any issue, so the UART itself seems to be working fine.

However, when I connect the GPS module, I don’t receive any data frames at all.
I’m planning to check the GPS module’s TX pin output using an oscilloscope to see if there’s any signal. I’ll keep you updated.

tx is pin 14 and the rx pin is 13 . I also read in a forum thread that there might be an issue with the default TX and RX pins, and that it could help to try receiving data on another pin like A1 or A2.
I believe this requires using a library to configure a software serial port, but since I’m not receiving anything at all right now, I’ll try that later.

It’s a shame the GPS module doesn’t have an LED to indicate whether it’s receiving GPS frames or not it would really help with debugging

TX pin is 13, just swap your wiring

I’ll try testing it again outside, since I’m not receiving anything indoors.
Thanks for the reply, I’ll keep you updated!

Read post #2 again.

The GPS should be producing a serial output even if it does not have a location fix.

Just a thought: 9600 is the default baud rate, but this can be changed. We don't know whether the MRK has been previously used. Might it simply have been configured previously to transmit at some other baud-rate? (4800 19200, 38400 or even 57600)

Ok, maybe clutching at straws, but in that case as per post #2.

I doubt that the issue is the pins on the Giga R1, but I guess there is nothing stopping you from trying the other serial ports, Serial 3 or Serial 4.

No, just the pins on GPS shield.

Hi everyone,

I just wanted to share a quick update and thank you all for your support.

The issue with the MKR GPS Shield turned out to be very simple in the end: the onboard 5V-to-3.3V regulator was faulty, so the GPS module was not powered at all. Once I bypassed the regulator and manually provided a clean 3.3V supply, everything came to life.

I connected pin 13 (TX from the GPS shield) to the GIGA R1 WiFi's RX pin, and now I'm successfully receiving NMEA sentences! (See attached image)

Thanks again for your help and advice throughout the troubleshooting.

By the way, do you know how I can determine from these NMEA sentences whether the GPS has acquired a fixed position or not? I’m currently monitoring the raw data but I'm unsure how to interpret that part.
the code that i used is :

void setup() {
  Serial.begin(115200);
  while (!Serial);

  Serial1.begin(9600); 
  Serial.println("Waiting for GPS data...");
}

void loop() {
  while (Serial1.available()) { 
    char c = Serial1.read(); 
    Serial.write(c);
  }

1 Like

Well clearly in the printout there is no latitude and longitude shown ($GPGGA and $GPRMC sentences) so the GPS does not have a fix.

The $GPGSV sentence is the one that reports satellites in view and signal strengths. The sentence shown indicates one satellite in view, but its very weak, so maybe the GPS is indoors or has a faulty antenna ?

Yes, the GPS is indoors, i will test it outside, i will send you the results !

I did the tests with the window open, normally I should have a fixed position.

Position variations are normal.

The GPS is reporting a position, however most all the the GPS satellites in view are reporting weak signals that are close to failure, next to a window is not the same as outdoors with a good view of the sky.

I'll try this another day, the weather is really bad today, thank you very much for your help. I think I'll manage from now on.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.