Doesn't get any reading from NEO-6M GPS Module GY-NEO6MV2

Hi, I am trying to use GPS module for my project.

This is the link to the module

GY-NEO6MV2 NEO-6M GPS Module NEO6MV2

I've tried using the code from this website

Here's the code

#include 

#include

SoftwareSerial mySerial(10, 11);
TinyGPS gps;

void gpsdump(TinyGPS &gps);
void printFloat(double f, int digits = 2);

void setup() 
{
  // Oploen serial communications and wait for port to open:
  Serial.begin(9600);
  // set the data rate for the SoftwareSerial port
  mySerial.begin(9600);
  delay(1000);
  Serial.println("uBlox Neo 6M");
  Serial.print("Testing TinyGPS library v. "); Serial.println(TinyGPS::library_version());
  Serial.println("by Mikal Hart");
  Serial.println();
  Serial.print("Sizeof(gpsobject) = ");
  Serial.println(sizeof(TinyGPS));
  Serial.println();
}

void loop() // run over and over
{
  bool newdata = false;
  unsigned long start = millis();
  // Every 5 seconds we print an update
  while (millis() - start < 5000)
  {
    if (mySerial.available())
   
    {
      char c = mySerial.read();
      //Serial.print(c);  // uncomment to see raw GPS data
      if (gps.encode(c))
      {
        newdata = true;
        break;  // uncomment to print new data immediately!
      }
    }
  }
 
  if (newdata)
  {
    Serial.println("Acquired Data");
    Serial.println("-------------");
    gpsdump(gps);
    Serial.println("-------------");
    Serial.println();
  }
 
}

void gpsdump(TinyGPS &gps)
{
  long lat, lon;
  float flat, flon;
  unsigned long age, date, time, chars;
  int year;
  byte month, day, hour, minute, second, hundredths;
  unsigned short sentences, failed;

gps.get_position(&lat, &lon, &age);
  Serial.print("Lat/Long(10^-5 deg): "); Serial.print(lat); Serial.print(", "); Serial.print(lon);
  Serial.print(" Fix age: "); Serial.print(age); Serial.println("ms.");
 
  // On Arduino, GPS characters may be lost during lengthy Serial.print()
  // On Teensy, Serial prints to USB, which has large output buffering and
  //  runs very fast, so it's not necessary to worry about missing 4800
  //  baud GPS characters.

gps.f_get_position(&flat, &flon, &age);
  Serial.print("Lat/Long(float): "); printFloat(flat, 5); Serial.print(", "); printFloat(flon, 5);
    Serial.print(" Fix age: "); Serial.print(age); Serial.println("ms.");

gps.get_datetime(&date, &time, &age);
  Serial.print("Date(ddmmyy): "); Serial.print(date); Serial.print(" Time(hhmmsscc): ");
    Serial.print(time);
  Serial.print(" Fix age: "); Serial.print(age); Serial.println("ms.");

gps.crack_datetime(&year, &month, &day, &hour, &minute, &second, &hundredths, &age);
  Serial.print("Date: "); Serial.print(static_cast(month)); Serial.print("/");
    Serial.print(static_cast(day)); Serial.print("/"); Serial.print(year);
  Serial.print("  Time: "); Serial.print(static_cast(hour+7));  Serial.print(":"); //Serial.print("UTC +08:00 Malaysia");
    Serial.print(static_cast(minute)); Serial.print(":"); Serial.print(static_cast(second));
    Serial.print("."); Serial.print(static_cast(hundredths)); Serial.print(" UTC +08:00 Malaysia");
  Serial.print("  Fix age: ");  Serial.print(age); Serial.println("ms.");

Serial.print("Alt(cm): "); Serial.print(gps.altitude()); Serial.print(" Course(10^-2 deg): ");
    Serial.print(gps.course()); Serial.print(" Speed(10^-2 knots): "); Serial.println(gps.speed());
  Serial.print("Alt(float): "); printFloat(gps.f_altitude()); Serial.print(" Course(float): ");
    printFloat(gps.f_course()); Serial.println();
  Serial.print("Speed(knots): "); printFloat(gps.f_speed_knots()); Serial.print(" (mph): ");
    printFloat(gps.f_speed_mph());
  Serial.print(" (mps): "); printFloat(gps.f_speed_mps()); Serial.print(" (kmph): ");
    printFloat(gps.f_speed_kmph()); Serial.println();

gps.stats(&chars, &sentences, &failed);
  Serial.print("Stats: characters: "); Serial.print(chars); Serial.print(" sentences: ");
    Serial.print(sentences); Serial.print(" failed checksum: "); Serial.println(failed);
}

void printFloat(double number, int digits)
{
  // Handle negative numbers
  if (number < 0.0)
  {
    Serial.print('-');
    number = -number;
  }

// Round correctly so that print(1.999, 2) prints as "2.00"
  double rounding = 0.5;
  for (uint8_t i=0; i 0)
    Serial.print(".");

// Extract digits from the remainder one at a time
  while (digits-- > 0)
  {
    remainder *= 10.0;
    int toPrint = int(remainder);
    Serial.print(toPrint);
    remainder -= toPrint;
  }
}

The code compiled with no problems, but this is what I get from the serial monitor

uBlox Neo 6M
Testing TinyGPS library v. 13
by Mikal Hart

Sizeof(gpsobject) = 115

The serial monitor just freezes there somehow. Doesn't show any latitude or longitude.

I also tried this code from this website

/*

#include

// The serial connection to the GPS module
SoftwareSerial ss(4, 3);

void setup(){
  Serial.begin(9600);
  ss.begin(9600);
}

void loop(){
  while (ss.available() > 0){
    // get the byte data from the GPS
    byte gpsData = ss.read();
    Serial.write(gpsData);
  }
}

Compiled with no problems too, but here's what I got from the serial monitor

$GPVTG,,,,,,,,,N30
$GPGGA,,,,,,0,00,99.99,,,,,,48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99
30
$GPGSV,1,1,00
79
$GPGLL,,,,,,V,N64
$GPRMC,,V,,,,,,,,,,N
53

This repeatedly shows in my serial monitor

I am using 5V from arduino uno as VCC to the module. I only connected the arduino to this GPS without any other module. I've tried using the antenna that comes from the module, and also using the IPX to SMA connector with Folding Rubber Rod Antenna

This is the link to the IPX-SMA connector and the folding rubber antenna

Does the GPS is broken somehow?

I also wanted to try again with this module with blue color PCB
Ublox NEO 6M GPS Module

As many tutorials use that module, because this red one doesn't really have any proper documentation on the web.

Quote

$GPVTG,,,,,,,,,N30
$GPGGA,,,,,,0,00,99.99,,,,,,48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99
30
$GPGSV,1,1,00
79
$GPGLL,,,,,,V,N64
$GPRMC,,V,,,,,,,,,,N
53

Does the GPS is broken somehow?

So the GPS is clearly working, but not receiving any satellites and consequently not getting a fix.

You are testing this outside with the GPS having a good view of the Sky ?

This is the link to the IPX-SMA connector and the folding rubber antenna
https://www.tokopedia.com/microvolta/ipx-to-sma-female-connector-15cm-coaxial-cable
https://www.tokopedia.com/microvolta/433mhz-folding-rubber-rod-antenna-1

Attaching random anttenas to a GPS is probably not going to work, even though that rubber antenna is most likely not a 433Mhz antenna, a 433mHz antenna is not for a GPS.

srnet:
So the GPS is clearly working, but not receiving any satellites and consequently not getting a fix.

You are testing this outside with the GPS having a good view of the Sky ?

Thank you for your reply. It's in my small garden but surrounded by walls and a thin plastic roof. I'll try for more open space.

srnet:
Attaching random anttenas to a GPS is probably not going to work, even though that rubber antenna is most likely not a 433Mhz antenna, a 433mHz antenna is not for a GPS.

Thank you, I am new to this kind of a GPS project, any suggestion about what antenna should I use?

faitoz59:
any suggestion about what antenna should I use?

See the picture you linked to earlier, it shows a small ceramic patch, try that.

There are bigger ceramic patch antennas, they would give better signal reception.