Hello everyone,
I have recently bought a m100 5883 GPS for a project me and my friends are doing. However, when I connect it to the arduino (Uno r3) and try to print out the NMEA sentences so that I can get the latitude, longitude etc., the GPS prints out gibberish (see attached image) when it should print out the NMEA sentences like this.
$GPGGA,123456.00,3751.65,S,14507.36,E,1,08,0.95,545.4,M,46.9,M,,*47
I have tried many things, such as
- changing Baud of the serial monitor and GPS. This has decreased the amount of weird characters, but has yet been able to print correct NMEA sentences.
- Changed and rechecked wiring, but no improvement (see image for wiring)
- Put the GPS outside with a clear sky, no noticable change
One important fact to note is that I have managed to get normal NMEA sentences with the following setup: Wire TX and RX wires to the TX and RX pins on the arduino (pin 0 and 1), however, when I then proceed to run the program, it prints out NMEA sentences but stops after a second and starts printing out "Reading GPS data...". When pressing the reset button on the arduino, it again prints out NMEA sentences, but stops after a second.
I have genuinely no idea what causes the GPS to print out gibberish. I haven't tried it out on a windows computer, as i myself work on a mac. Could that possibly be the issue? Or is there another problem here that I have missed?
The code:
#include <SoftwareSerial.h>
#define RXPin 10 // GPS TX → Arduino RX
#define TXPin 11 // GPS RX → Arduino TX
#define GPSBaud 115200 // Set to 9600 for most modules
SoftwareSerial gpsSerial(RXPin, TXPin);
void setup() {
Serial.begin(115200); // Monitor baud rate
gpsSerial.begin(GPSBaud); // GPS module baud rate
Serial.println("Reading GPS data...");
}
void loop() {
while (gpsSerial.available()) {
char c = gpsSerial.read();
Serial.write(c); // Directly print raw GPS data to Serial Monitor
}
}


