GT u7 GPS module not getting a fix

I'm following this example here to get my GPS module to work: How to use the GT U7 GPS module - YouTube

I'm using an arduino nano and the GT u7 module. The board connection is pretty straight forward, where the Rx is connected to pin 10, and Tx to pin 11. This is the code I'm using

#include "TinyGPS++.h"
#include "SoftwareSerial.h"

SoftwareSerial serial_connection(10, 11); //RX=pin 10, TX=pin 11
TinyGPSPlus gps;//This is the GPS object that will pretty much do all the grunt work with the NMEA data
void setup()
{
  Serial.begin(115200);//This opens up communications to the Serial monitor in the Arduino IDE
  serial_connection.begin(115200);//This opens up communications to the GPS
  Serial.println("GPS Start");//Just show to the monitor that the sketch has started
}

void loop()
{
  while(serial_connection.available())//While there are characters to come from the GPS
  { Serial.println("connected");
    gps.encode(serial_connection.read());//This feeds the serial NMEA data into the library one char at a time
  }
  if(gps.location.isUpdated())//This will pretty much be fired all the time anyway but will at least reduce it to only after a package of NMEA data comes in
  {
    //Get the latest info from the gps object which it derived from the data sent by the GPS unit
    Serial.println("Satellite Count:");
    Serial.println(gps.satellites.value());
    Serial.println("Latitude:");
    Serial.println(gps.location.lat(), 6);
    Serial.println("Longitude:");
    Serial.println(gps.location.lng(), 6);
    Serial.println("Speed MPH:");
    Serial.println(gps.speed.mph());
    Serial.println("Altitude Feet:");
    Serial.println(gps.altitude.feet());
    Serial.println("");
  }
}

The only output I'm getting is the print statement in the setup function (GPS start), but I can't get any other output.

I've tested outside and waited for about 10-15 mins and still nothing.

Would appreciate any direction to look into.

The best place to look is the GPS NMEA output. Run this GPS echo program, while outside with a clear view of the sky, and post some of the output. It can take up to 15 minutes for a factory fresh GPS unit to obtain a cold start fix.

#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); //(RX, TX) check correct pin assignments.

void setup() {
  mySerial.begin(9600);
  Serial.begin(9600);
  Serial.println("GPS start");
}

void loop() {
  while (mySerial.available()) {
    Serial.write(mySerial.read());
  }
}

I tried this code in multiple places outdoor (front/back yard, on top of a parking lot roof) and still it wont go past "starting GPS" I'm not getting anything else

Could this be a hardware issue? The LED on all components are blinking but I'm not sure

Triple check your wiring. Did you connect the grounds? RX/TX the right way around?

Post a link to the product page or data sheet of your GPS module, not to a video. All GPS units are 3.3V and connecting TX on a 5V Arduino to RX on the GPS, without using a logic level shifter, can destroy the GPS, the Arduino, or both, instantly.

Read the definitions of the TX & RX pins in the Arduino reference for software serial.

After doing that, what's your thinking?

I decided to buy a new GPS module to confirm whether it's a hardware issue. Once I connected the new one and ran the code you provided, I get the below output

09:41:06.915 -> GPS start
09:41:06.915 -> ⸮⸮5
09:41:06.915 -> $GPGLL,,,,,134107.00,V,N*4A
09:41:07.910 -> $GPRMC,134106.00,V,,,,,,,091022,,,N*74
09:41:07.946 -> $GPVTG,,,,,,,,,N*30
09:41:07.946 -> $GPGGA,134106.00,,,,,0,00,99.99,,,,,,*67
09:41:08.012 -> $GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
09:41:08.045 -> $GPGSV,1,1,03,13,,,29,15,,,20,29,,,28*74
09:41:08.079 -> $GPGLL,,,,,134106.00,V,N*4B
09:41:08.762 -> $GPRMC,134107.00,V,,,,,,,091022,,,N*75
09:41:08.762 -> $GPVTG,,,,,,,,,N*30
09:41:08.762 -> $GPGGA,134107.00,,,,,0,00,99.99,,,,,,*66
09:41:08.831 -> $GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
09:41:08.864 -> $GPGSV,1,1,04,13,,,31,15,,,18,17,,,25,29,,,29*71
09:41:08.932 -> $GPGLL,,,,,134107.00,V,N*4A
09:41:09.749 -> $GPRMC,134108.00,V,,,,,,,091022,,,N*7A
09:41:09.783 -> $GPVTG,,,,,,,,,N*30
09:41:09.783 -> $GPGGA,134108.00,,,,,0,00,99.99,,,,,,*69
09:41:09.851 -> $GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
09:41:09.885 -> $GPGSV,1,1,02,13,,,31,29,,,29*7B
09:41:09.885 -> $GPGLL,,,,,134108.00,V,N*45
09:41:10.733 -> $GPRMC,134109.00,V,,,,,,,091022,,,N*7B
09:41:10.768 -> $GPVTG,,,,,,,,,N*30
09:41:10.768 -> $GPGGA,134109.00,,,,,0,00,99.99,,,,,,*68
09:41:10.836 -> $GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
09:41:10.870 -> $GPGSV,1,1,02,13,,,33,29,,,31*70
09:41:10.904 -> $GPGLL,,,,,134109.00,V,N*44
09:41:11.722 -> $GPRMC,134110.00,V,,,,,,,091022,,,N*73

The GPS module is working fine, but it does not see any satellites.

Isn't it seeing two sats? The GSV sentences says it is seeing "02" sats & they are nos. "13" & "29". The date & time are being decoded: "091022" & "134108.00" which occurs when just one sat is being received.

Fine, if you are happy with just the time and date.

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