Not receiving data from GPS (GPS Tinyshield) with Arduino Zero

I’m totally new to this, but I know how to program. I never worked with Arduinos before and I am so stuck right now.

I have a TinyScreen+ (Arduino Zero) and GPS TinyShield (Telit JF2 GPS)

I am trying to get the GPS to print ANYTHING to the serial monitor.

I’m using SerialUSB for printing and I am seeing all my debug statements come in.
I’m using Serial1 to talk to the GPS, and I am able to change from hibernate to active state and check that it worked.

However I am not receiving any data from the GPS. I read that the GPS can’t position itself if you’re indoors, which I am. However, shouldn’t I at least receive empty messages every second? I am literally not receiving a byte. (I am going to try this outdoors tomorrow but just wanted to post and see if that is the problem).

For detecting bytes, I am literally just looping on available()

while (Serial1().available() <= 0);

But it never exits that loop.

I tried it with both baud rates 4800 and 9600

While that device calls itself a shield, it does not appear to be what the Arduino calls a shield, in that it doesn't appear to plug into the Arduino.

So, how IS it connected to the Arduino?

shouldn't I at least receive empty messages every second?

Yes. Be sure the GPS TX is connected to the Arduino RX pin, and the GPS RX is connected to the Arduino TX pin.

Other Troubleshooting tips from my NeoGPS library.

Thank you for your replies.

PaulS:
While that device calls itself a shield, it does not appear to be what the Arduino calls a shield, in that it doesn't appear to plug into the Arduino.

So, how IS it connected to the Arduino?

The TinyCircuit components all have this bar for the pins where you can stack components and all he pins line up vertically.

It's stacked like this: https://tinycircuits.com/blogs/learn/tinyduino-gps-tracker-data-logger-tutorial
However my arduino zero chip is larger so they're not the same size as in the photo

-dev:
Yes. Be sure the GPS TX is connected to the Arduino RX pin, and the GPS RX is connected to the Arduino TX pin.

Other Troubleshooting tips from my NeoGPS library.

The pin info on the GPS shield is:

A0 - GPS_RX:  Software UART Transmit from the TinyDuino to the GPS Module.
A1 - GPS_TX:  Software UART Receive to the TinyDuino from the GPS Module.
A2 - SYS_ON:  This signal is an output the GPS module to indicate if the module is in an active mode (the signal is a logic-high) or in hibernate mode (the signal is a logic-low). By Default this signal is connected between the GPS module and the A2 signal using R7, which is a 0 ohm resistor. This resistor can be removed if this signal is not needed to free up A2 for other uses.
A3 - ON_OFF: This signal is an input into the GPS module, and is used to transition between hibernate and active modes. Transitions between states are made with a low to high pulse on this signal (minimum time of 100uS).

0 Rx and 1 Tx maps to the hardware serial for Serial1 (0 Rx and 1 Tx) so it should be connected.

Wait... IS THAT THE PROBLEM? I'm connecting receiver to receiver? :frowning: But because of the way the tiny circuits boards are I can't actually redirect pins physically.

And because I'm using Arduino Zero, I can't use the SoftwareSerial library...

Am I screwed?

Another question, why is the Rx and Tx pins on the GPS emphasized as "software UART"? Is that different from "hardware UART" if that's a thing?

However my arduino zero chip is larger so they're not the same size as in the photo

That does NOT explain how your GPS "shield" is connected to your Arduino.

Am I screwed?

You have options. Like a different GPS "shield" that CAN be connected more intelligently.

Another question, why is the Rx and Tx pins on the GPS emphasized as "software UART"? Is that different from "hardware UART" if that's a thing?

I'm just guessing that it is because the GPS doesn't have a dedicated UART chip, so it's handled in software. ALL Serial communication, in the end, is handled in software.

PaulS:
That does NOT explain how your GPS "shield" is connected to your Arduino.
You have options. Like a different GPS "shield" that CAN be connected more intelligently.
I'm just guessing that it is because the GPS doesn't have a dedicated UART chip, so it's handled in software. ALL Serial communication, in the end, is handled in software.

Thanks for your reply.

Is a "shield" separate from the GPS itself? The GPS's 4 pins is connected to the Arduino via the bar of pins when stacking it.

My Arduino is a TinyCircuit and the only GPS TinyCircuit is the GPS TinyShield, so I would have to get those 2 components working. I need to keep this small because my cat will be wearing it.

I solved my issue by using the SoftwareSerial version that works with Arduino M0 PRO in Arduino Zero - SoftwareSerial library - Arduino Zero - Arduino Forum

With it I was able to create a serial to the A0 and A1 pins that the GPS uses. Now I'm getting data!

Hi Meowple,

Can you confim if you can actually send data or only receive data from the tinyshield GPS.
Indeed, I tried the same and indeed am receiving data from the GPS but seems that I can't send command (like $PSRF103...) to the GPS ? Can you confirm if the A1 pin is truly working in your case ?
Thks