L80R data are always zero!

Hi, Im using an Arduino Pro Mini to get latitude and longitude BUT the receiving data is always ZERO!!

I read somewhere: For the first time, it might take 2-3 minutes to retrieve data. Next time onwards it retrieves location very quickly. In the Serial Monitor, you will be able to see the Latitude, Longitude, Altitude, Speed, Time , and Date .
But I have been waiting for hours and nothing has changed!
I had worked with this module before and received the correct data, but now it doesn’t work!

The code:

#include <TinyGPSPlus.h>
#include <SoftwareSerial.h>
/*
   This sample code demonstrates the normal use of a TinyGPSPlus (TinyGPSPlus) object.
   It requires the use of SoftwareSerial, and assumes that you have a
   4800-baud serial GPS device hooked up on pins 4(rx) and 3(tx).
 */
static const int RXPin = 5, TXPin = 6;
static const uint32_t GPSBaud = 9600;

// The TinyGPSPlus object
TinyGPSPlus gps;

// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);

void setup() {
	Serial.begin(115200);
	ss.begin(GPSBaud);

	Serial.println(F("FullExample.ino"));
	Serial.println(F("An extensive example of many interesting TinyGPSPlus features"));
	Serial.print(F("Testing TinyGPSPlus library v. ")); Serial.println(TinyGPSPlus::libraryVersion());
	Serial.println(F("by Mikal Hart"));
	Serial.println();
	Serial.println(F("Sats HDOP  Latitude   Longitude   Fix  Date       Time     Date Alt    Course Speed Card  Distance Course Card  Chars Sentences Checksum"));
	Serial.println(F("           (deg)      (deg)       Age                      Age  (m)    --- from GPS ----  ---- to London  ----  RX    RX        Fail"));
	Serial.println(F("----------------------------------------------------------------------------------------------------------------------------------------"));
}

void loop() {
	static const double LONDON_LAT = 51.508131, LONDON_LON = -0.128002;

	printInt(gps.satellites.value(), gps.satellites.isValid(), 5);
	printFloat(gps.hdop.hdop(), gps.hdop.isValid(), 6, 1);
	printFloat(gps.location.lat(), gps.location.isValid(), 11, 6);
	printFloat(gps.location.lng(), gps.location.isValid(), 12, 6);
	printInt(gps.location.age(), gps.location.isValid(), 5);
	printDateTime(gps.date, gps.time);
	printFloat(gps.altitude.meters(), gps.altitude.isValid(), 7, 2);
	printFloat(gps.course.deg(), gps.course.isValid(), 7, 2);
	printFloat(gps.speed.kmph(), gps.speed.isValid(), 6, 2);
	printStr(gps.course.isValid() ? TinyGPSPlus::cardinal(gps.course.deg()) : "*** ", 6);

	unsigned long distanceKmToLondon =
		(unsigned long)TinyGPSPlus::distanceBetween(
				gps.location.lat(),
				gps.location.lng(),
				LONDON_LAT, 
				LONDON_LON) / 1000;
	printInt(distanceKmToLondon, gps.location.isValid(), 9);

	double courseToLondon =
		TinyGPSPlus::courseTo(
				gps.location.lat(),
				gps.location.lng(),
				LONDON_LAT, 
				LONDON_LON);

	printFloat(courseToLondon, gps.location.isValid(), 7, 2);

	const char *cardinalToLondon = TinyGPSPlus::cardinal(courseToLondon);

	printStr(gps.location.isValid() ? cardinalToLondon : "*** ", 6);

	printInt(gps.charsProcessed(), true, 6);
	printInt(gps.sentencesWithFix(), true, 10);
	printInt(gps.failedChecksum(), true, 9);
	Serial.println();

	smartDelay(1000);

	if (millis() > 5000 && gps.charsProcessed() < 10) {
		Serial.println(F("No GPS data received: check wiring"));
	}
}

// This custom version of delay() ensures that the gps object
// is being "fed".
static void smartDelay(unsigned long ms) {
	unsigned long start = millis();
	do {
		while (ss.available()) {
			gps.encode(ss.read());
		}
	} while (millis() - start < ms);
}

static void printFloat(float val, bool valid, int len, int prec) {
	if (!valid) {
		while (len-- > 1) {
			Serial.print('*');
		}
		Serial.print(' ');
	} else {
		Serial.print(val, prec);
		int vi = abs((int)val);
		int flen = prec + (val < 0.0 ? 2 : 1); // . and -
		flen += vi >= 1000 ? 4 : vi >= 100 ? 3 : vi >= 10 ? 2 : 1;
		for (int i=flen; i<len; ++i) {
			Serial.print(' ');
		}
	}
	smartDelay(0);
}

static void printInt(unsigned long val, bool valid, int len) {
	char sz[32] = "*****************";
	if (valid) {
		sprintf(sz, "%ld", val);
	}
	sz[len] = 0;
	for (int i=strlen(sz); i<len; ++i) {
		sz[i] = ' ';
	}
	if (len > 0) {
		sz[len-1] = ' ';
	}
	Serial.print(sz);
	smartDelay(0);
}

static void printDateTime(TinyGPSDate &d, TinyGPSTime &t) {
	if (!d.isValid()) {
		Serial.print(F("********** "));
	} else {
		char sz[32];
		sprintf(sz, "%02d/%02d/%02d ", d.month(), d.day(), d.year());
		Serial.print(sz);
	}

	if (!t.isValid()) {
		Serial.print(F("******** "));
	} else {
		char sz[32];
		sprintf(sz, "%02d:%02d:%02d ", t.hour(), t.minute(), t.second());
		Serial.print(sz);
	}

	printInt(d.age(), d.isValid(), 5);
	smartDelay(0);
}

static void printStr(const char *str, int len) {
	int slen = strlen(str);
	for (int i=0; i<len; ++i) {
		Serial.print(i<slen ? str[i] : ' ');
	}
	smartDelay(0);
}

serial monitor screenshot:

Hi @Ali_Norouzi_Ziveh

  1. What is your current test environment like? Is it an open environment? What antenna are you using?
  2. If it is directly connected to the computer serial port via the TX/RX serial port, can the module output positioning information?
  3. Can you take a clear photo of the module, the connection diagram and the test environment for me?