Mega 2560 + GPS NEO-6m = No GPS detected: check wiring

I set up a GPS NEO-6M board with a Nano and things worked well. I have a strong GPS signal in my location with many satellites visible and positional accurate of a few yards (a bit of ‘jitter’ but all within the back garden). Unfortunately, I ran out of memory space so upgraded to a Mega 2560.

Nothing has worked since so I have stripped down to the basic two boards with four wires; +ve Red, Rx White, Tx Blue, Gnd Black (see image).

I’ve also abandoned my sketch and have used the [file][examples][TinyGPS++][DeviceExample] sketch unaltered.

Red to Mega 5v
White (GPS Rx) to Mega pin 4
Blue (GPS Tx) to Mega pin 3
Gnd to Mega Gnd

I’ve also tried swapping the White and Blue wires to pins 3 and 4 as some sketches suggest that. NB I have also tried pins 14/15 16/17 18/19 and 20/21 (in both configurations) altering the sketch accordingly. Finally, I have two Mega boards and two GPS boards. I have tried them in all possible combinations.

In all cases, the GPS unit is flashing its LED at about 1-second intervals (which was satellite acquired on the Nano board) BUT I get the following;

13:58:44.353 -> DeviceExample.ino
13:58:44.353 -> A simple demonstration of TinyGPS++ with an attached GPS module
13:58:44.353 -> Testing TinyGPS++ library v. 1.0.2
13:58:44.353 -> by Mikal Hart
13:58:44.353 -> 
13:58:49.367 -> No GPS detected: check wiring.

This is the same issue as any other sketch I try - it hangs at “no signal received” when I know the GPS unit IS getting a good signal.

There are only two wires of significance (White and Blue) and I cannot see how they could be wrong so I am missing something but I cannot get past this very early stage.

I need some guidance on what to try next before I hurl the boards into the mid-distance in frustration!

The "No GPS detected" message means that 5 seconds have passed and less than 10 valid characters have arrived at the GPS serial port. Could be a baud rate mismatch.

Are you sure your GPS is set to 4800 baud? What baud rate was the Nano using?

I know the TinyGPS++ sketches default to 4800 baud, but UBLOX GPSs are normally at 9600baud.

A Mega has three additional serial ports; might make sense to use them instead of SoftwareSerial.

try this on your mega:

void setup()
  Serial.begin(9600); Serial.println("GPS Serial Test" );
  while (Serial3.available())                           // look for data from GPS module
     char c =;                           // read in all available chars   

void loop() 
  // put your main code here, to run repeatedly:

GPS RX to 14, TX to 15

Sorry all, I thought I'd get an email when someone responded, but no.

Johnwasser; Should have put in my initial post; have tried both. Nano works on 9600 which made me try both.

srnet; Thanks, see above.

sterretje; Happy to try that (I'll try anything!!). Can you give a sketch portion to show what you mean?

Emeritus; I added the GPS set-up before your code and Serial.println("GPS Test ends" ); after it. The start and end prints were within the same 1/hundredths of a second with no print from the Serial.print(c); line. The GPS unit is happily flashing at about 1 second but neither Mega seem able to read the data.

PS Have now found how to set 'emails for updates', sorry again about that.

See code in reply #4.

But while-loop needs to go into loop().