My Arduino UNO doesn't recognise my NEO M8N module.

Hey,

I was trying to connect my NEO M8N module to my Arduino UNO, but despite the module turning on I don't get any response from it.

I use this code. I changed the ports to 9 and 10. But when I check the serial moniter I doesn't work(see attached picture).

Does anyone know what it could be?

(deleted)

Instead of using that example from the library, try fist to make sure that the GPS is actually communicating with the Arduino. You can do that with a simple sketch that sees if the GPS is sending data and the Arduino is receiving data properly.

Here is an example sketch to just verify communication. This works for my NEO6 GPS. There is no need for the GPS to get a lock, it will transmit without a lock. Replace the software serial RX and TX pins with the pin numbers that you want to use and make sure the software serial baud rate matches the GPS and the Serial baud rate matches serial monitor.

//gps test

#include <SoftwareSerial.h>

SoftwareSerial mySerial(4, 7); // RX, TX

void setup()
{
   // Open serial communications
   Serial.begin(115200);
   // set the data rate for the SoftwareSerial port
   mySerial.begin(9600);
}

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

You sholud see something like this:

$GPRMC,163639.00,V,,,,,,,130119,,,N7E
$GPVTG,,,,,,,,,N
30
$GPGGA,163639.00,,,,,0,00,99.99,,,,,,6E
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99
30
$GPGSV,1,1,02,10,,,33,31,,,307B
$GPGLL,,,,,163639.00,V,N
42
$GPRMC,163640.00,V,,,,,,,130119,,,N70
$GPVTG,,,,,,,,,N
30
$GPGGA,163640.00,,,,,0,00,99.99,,,,,,*60

groundFungus:
Instead of using that example from the library, try fist to make sure that the GPS is actually communicating with the Arduino.

+1

A GPS Echo program is always the the first thing I check.

An expalantion of the process is to be found here;

GPS Tutorial

Thank you for your replies.

I am in a clear view of sky.

groundFungus:
Instead of using that example from the library, try fist to make sure that the GPS is actually communicating with the Arduino. You can do that with a simple sketch that sees if the GPS is sending data and the Arduino is receiving data properly.

Here is an example sketch to just verify communication. This works for my NEO6 GPS. There is no need for the GPS to get a lock, it will transmit without a lock. Replace the software serial RX and TX pins with the pin numbers that you want to use and make sure the software serial baud rate matches the GPS and the Serial baud rate matches serial monitor.

//gps test

#include <SoftwareSerial.h>

SoftwareSerial mySerial(4, 7); // RX, TX

void setup()
{
  // Open serial communications
  Serial.begin(115200);
  // set the data rate for the SoftwareSerial port
  mySerial.begin(9600);
}

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




You sholud see something like this:

I don't have any response.

Could it be something with soldering it wrong, cause the last time (before I soldered it) it worked.
I have attached a picture of my soldering work.

Sieftu:
Thank you for your replies.

I am in a clear view of sky.

I don't have any response.

Could it be something with soldering it wrong, cause the last time (before I soldered it) it worked.
I have attached a picture of my soldering work.

If you had said in the first post;

"My GPS used to work but since I soldered it up it no longer works"

It is highly likley that the suggestion would have been;

Check your soldering.

The solder joints do not look very good, sorry to say. I suggest that you find some good soldering tutorials. It takes practice to get good at soldering.

Could you send a picture of a example of good soldering?

Just google "good solder joint".

This Adafruit article may be of interest.

It looks like you have created a short circuit with a solder blob across the rightmost two contacts.

Redo all the solder joints. Sparkfun soldering tutorial.

Okay thank you for the links.

I improved the solder joints a bit. Now I get a response with the script of groundFungus. It is a time(which is correct) and after that there are a lot of question marks. And every second it adds a lot of question marks. I don't get any response with the script I used earlier.

For informed help, please read and follow the directions in the "How to use this forum" post.

Does the serial monitor output look like the sample that I posted?

Do you think posting the output you are seeing (from the serial monitor) might help the forum to diagnose the problem ?

I have looked at a great many outputs from GPSs, but have no idea what you mean by 'a lot of question marks'.

No it looks very different from your output. I've attached a screenshot of my output.

Sieftu:
Could you send a picture of a example of good soldering?

That picture shows you have no "wetting" of the gold on the places you soldered. A clear indication you did not use any flux to aid in wetting.

Paul

Paul_KD7HB:
That picture shows you have no "wetting" of the gold on the places you soldered. A clear indication you did not use any flux to aid in wetting.

Paul

Yeah I looked into soldering a bit more and improved the solder joints.

groundFungus:

That looks like the output of the example program, not the output from the test program that I posted. The output of the test program is what I am interested in.

This is the output of your test program.

Sorry, I accidentally removed that post thinking that it was in the wrong place. That looks like no NMEA data from a GPS that I have seen.

groundFungus:
Instead of using that example from the library, try fist to make sure that the GPS is actually communicating with the Arduino. You can do that with a simple sketch that sees if the GPS is sending data and the Arduino is receiving data properly.

Here is an example sketch to just verify communication. This works for my NEO6 GPS. There is no need for the GPS to get a lock, it will transmit without a lock. Replace the software serial RX and TX pins with the pin numbers that you want to use and make sure the software serial baud rate matches the GPS and the Serial baud rate matches serial monitor.

//gps test

#include <SoftwareSerial.h>

SoftwareSerial mySerial(4, 7); // RX, TX

void setup()
{
  // Open serial communications
  Serial.begin(115200);
  // set the data rate for the SoftwareSerial port
  mySerial.begin(9600);
}

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




You sholud see something like this:

I changed the Serial.begin(115200) to Serial.begin(9600). I got much better results. They look really similiar to what you sent. I would rather not post them online for privacy reasons. But I could send them to you.

I don't need to see the output if it looks like good NMEA data. Does the example still not work? Have you checked that the baud rates match in the example program?