Neo-7n GPS module not sending serial data through rx tx pins

I am using an UNO with the Arduino IDE running on a Raspberry Pi.

I have connected the GPS module directly to the Pi (without the UNO) using the Neo-7n onboard USB and successfully received NMEA statements in the Arduino IDE serial monitor.

I have used a basic sketch that displays serial data from Arduino pins using SoftwareSerial, to attempt to receive raw serial data from the GPS module (please see pictures and code.)

Using the same sketch I was able to receive serial data from a BLE device to ensure the sketch and serial transmission was not the issue on the Arduino. The BLE serial data displayed as expected.

My trouble is that connecting the GPS module to the UNO with the RX TX pins yields no data whatsoever.

I have attempted to reverse the RX TX wires to ensure I did not mismatch the two.

Am I missing a step/ process to have the GPS module transmit data to the RX Tx pins?

The sketch I used was:

 #include <SoftwareSerial.h>

SoftwareSerial mySerial(7, 8); // RX, TX  
// Connect GPS      Arduino Uno
//     Pin 1/TXD          Pin 7
//     Pin 2/RXD          Pin 8

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

void loop() {  
  char c;
  if (Serial.available()) {
    c = Serial.read();
    mySerial.print(c);
  }
  if (mySerial.available()) {
    c = mySerial.read();
    Serial.print(c);    
  }
}

Pics of the module:

Image embedded for our convenience:

Technique described here.

First, the NEO-7N is a 3.3V device, and the UNO is a 5V device. This means that the NEO-7N TX pin is slightly under the specified voltage for the UNO. Sometimes it works, sometimes it doesn't.

Similarly, the Arduino transmit pin voltage is above the maximum specified voltage for the NEO-7N RX pin. This is more serious, because you can damage the GPS device or cause it to over heat. In battery-operated systems, it will also reduce the battery life.

You should add level-shifting components when connecting to the UNO. Here's one way to do it.

Once you can safely connect the NEO-7N to the UNO, you should choose a serial port. SoftwareSerial on pins 7 & 8 is not a good choice. Here are some alternatives, from BEST to WORST. Be sure to connect the Arduino receive pin to the GPS transmit pin, and vice versa.

There are other tips on the Troubleshooting page for NeoGPS, the smallest, fastest, most reliable and most accurate GPS library out there.

If you want to try them, NeoGPS, AltSoftSerial and NeoSWSerial are all available from the Arduino IDE Library Manager, under the menu Sketch -> Include Library -> Manage Libraries.

Cheers,
/dev