Arduino UNO reading GPS NEO-6M-0-001 data but Mega 2560 doesn't

#include <SoftwareSerial.h>

#include <TinyGPS.h>

/* This sample code demonstrates the normal use of a TinyGPS 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).
*/

TinyGPS gps;
SoftwareSerial ss(4, 3);

void setup()
{
  Serial.begin(9600);  
  ss.begin(9600);
  
  Serial.print("Simple TinyGPS library v. "); Serial.println(TinyGPS::library_version());
  Serial.println("by Mikal Hart");
  Serial.println();
}

void loop()
{
  bool newData = false;
  unsigned long chars;
  unsigned short sentences, failed;

  // For one second we parse GPS data and report some key values
  for (unsigned long start = millis(); millis() - start < 1000;)
  {
    while (ss.available())
    {
      char c = ss.read();
      // Serial.write(c); // uncomment this line if you want to see the GPS data flowing
      if (gps.encode(c)) // Did a new valid sentence come in?
        newData = true;
    }
  }

  if (newData)
  {
    float flat, flon;
    unsigned long age;
    gps.f_get_position(&flat, &flon, &age);
    Serial.print("LAT=");
    Serial.print(flat == TinyGPS::GPS_INVALID_F_ANGLE ? 0.0 : flat, 6);
    Serial.print(" LON=");
    Serial.print(flon == TinyGPS::GPS_INVALID_F_ANGLE ? 0.0 : flon, 6);
    Serial.print(" SAT=");
    Serial.print(gps.satellites() == TinyGPS::GPS_INVALID_SATELLITES ? 0 : gps.satellites());
    Serial.print(" PREC=");
    Serial.print(gps.hdop() == TinyGPS::GPS_INVALID_HDOP ? 0 : gps.hdop());
  }
  
  gps.stats(&chars, &sentences, &failed);
  Serial.print(" CHARS=");
  Serial.print(chars);
  Serial.print(" SENTENCES=");
  Serial.print(sentences);
  Serial.print(" CSUM ERR=");
  Serial.println(failed);
  if (chars == 0)
    Serial.println("** No characters received from GPS: check wiring **");
}

Arduino Uno has pins 3,4 as tx,rx and when I upload this code and connect my GPS to the board it works perfectly. The problem is that I am working on a bigger project and want to use Mega 2560.

Mega 2560 has pins 18,19 as tx,rx and when I connect them and run the code it doesn’t work. I did change the board type and pins in the code and everything that’s needed but it seems that it won’t read the GPS data currently.

Serial Log spits the following

** No characters received from GPS: check wiring **
CHARS=0 SENTENCES=0 CSUM ERR=0
** No characters received from GPS: check wiring **
CHARS=0 SENTENCES=0 CSUM ERR=0
** No characters received from GPS: check wiring **
CHARS=0 SENTENCES=0 CSUM ERR=0
** No characters received from GPS: check wiring **

Is anyone familiar with board difference know what’s going on?

If you are using softwareserial on a Mega, it wont work on pins 18 and 19, see the Arduino reference for details.

Although why you would want to use softwareserial on the Serial1 hardware port (pins 18 and 19) makes no sense to me.