U-Blox Neo-6M-0-001 & Neo-7M-0-001 do not work/do not spit out any data

Hi everyone,

we (my friend and I) have been working on a project in the last couple of weeks and are somewhat newcomers to Arduino. We are basically trying to build a little self-driving boat. We managed to connect a BLE (Bluetooth Low Energy) module, three ultrasonic sensors (HC-SR04) and a couple of motors (with the L293D motor driver). Now we wanted to take the project to the next level by connecting a GPS module, so we ordered a GPS module on Amazon. By mistake we ordered the Neo-7M-0-001. After hours of trying to get it to work we gave up and thought the issue to be that it was the 7M and not a 6M, as all the tutorials on YouTube and most blogs/post use the 6M. So then we ordered a 6M and now were stuck with that one.
All the wiring and the modules are attached below with pictures.
For the 7M we only tried 3.3 V from the Arduino. (Accidentally,) we once tried 5V on the 6M.

According to the data sheets the baud rate of both GPSs is 9600 (and of course we used that in the code). The Serial connection (Serial.begin) is at 115200.

For the Neo-7M-0-001:

DeviceExample code:

#include <TinyGPS++.h>
#include <SoftwareSerial.h>
/*
   This sample sketch demonstrates the normal use of a TinyGPS++ (TinyGPSPlus) 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).
*/
static const int RXPin = 4, TXPin = 3;
static const uint32_t GPSBaud = 9600;
// The TinyGPS++ object
TinyGPSPlus gps;
// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);
void setup()
{
  Serial.begin(115200);
  ss.begin(GPSBaud);
  Serial.println(F("DeviceExample.ino"));
  Serial.println(F("A simple demonstration of TinyGPS++ with an attached GPS module"));
  Serial.print(F("Testing TinyGPS++ library v. ")); Serial.println(TinyGPSPlus::libraryVersion());
  Serial.println(F("by Mikal Hart"));
  Serial.println();
}
void loop()
{
  // This sketch displays information every time a new sentence is correctly encoded.
  while (ss.available() > 0)
    if (gps.encode(ss.read()))
      displayInfo();
  if (millis() > 5000 && gps.charsProcessed() < 10)
  {
    Serial.println(F("No GPS detected: check wiring."));
    while(true);
  }
}
void displayInfo()
{
  Serial.print(F("Location: ")); 
  if (gps.location.isValid())
  {
    Serial.print(gps.location.lat(), 6);
    Serial.print(F(","));
    Serial.print(gps.location.lng(), 6);
  }
  else
  {
    Serial.print(F("INVALID"));
  }
  Serial.print(F("  Date/Time: "));
  if (gps.date.isValid())
  {
    Serial.print(gps.date.month());
    Serial.print(F("/"));
    Serial.print(gps.date.day());
    Serial.print(F("/"));
    Serial.print(gps.date.year());
  }
  else
  {
    Serial.print(F("INVALID"));
  }
  Serial.print(F(" "));
  if (gps.time.isValid())
  {
    if (gps.time.hour() < 10) Serial.print(F("0"));
    Serial.print(gps.time.hour());
    Serial.print(F(":"));
    if (gps.time.minute() < 10) Serial.print(F("0"));
    Serial.print(gps.time.minute());
    Serial.print(F(":"));
    if (gps.time.second() < 10) Serial.print(F("0"));
    Serial.print(gps.time.second());
    Serial.print(F("."));
    if (gps.time.centisecond() < 10) Serial.print(F("0"));
    Serial.print(gps.time.centisecond());
  }
  else
  {
    Serial.print(F("INVALID"));
  }
  Serial.println();
}

with tinyGPS+-0.95 DeviceExample we get the following data in the Serial Monitor:
"No GPS detected: check wiring" (once)
Also, the GPS modules LED blinks Blue, the RX on the Arduino does not light up at all, the TX blinks about one time a second.

I will have to attach the FullExample code in a separate post, as I would exceed the limit of 9000 characters.

with tinyGPS+-0.95 FullExample we get this data in the Serial Monitor:
In the table we get "*" from "Sats" to (including) "card" and under "chars RX", "Sentences RX" and "Checksum Fail" we get "0". After a couple of those lines, it changes to "No GPS data received: Check wiring". From then one those lines switch back and forth.
The GPS modules LED blinks again, the RX on the Arduino does not light up at all, the TX blinks again one time in one second.

For these two sketches we waited up to 10 minutes, each time getting the same answer.

We also tried another sketch from the internet, but due to the limit of characters I will have to attached that sketch in another post...

All we get is "GPS Start". Thats it (We waited for about 5 minutes). (We of course changed the pins in the code and baud rate in the serial monitor)

With that one, the LED on the 7M does not blink, but stays light up. The TX on the Arduino blinks again with the same rate, the RX does not light up at all once again.

Now we tried the exact same code from above with another two setups: the 7M with the Antenna module from the 6M and the 6M (with Antenna).

For the 7M + Antenna with the DeviceExample code we get the following:
In the Serial Monitor we get "No GPS detected: check wiring" (once) and then nothing.
The RX and the TX on the Arduino do not light up, the 7M does blink though.

For the 7M +Antenna with the FullExample code we get this:
In the table we get "*" from "Sats" to (including) "card" and under "chars RX", "Sentences RX" and "Checksum Fail" we get "0". After a couple of those lines, it changes to "No GPS data received: Check wiring". From then one those lines switch back and forth.
The GPS modules LED blinks again, the RX on the Arduino does not light up at all, the TX blinks again one time in one second (after about five seconds of constant on).

For the 7M + Antenna with the code from the Internet we get this:
"GPS Start". The LEDs (RX and TX) on the Arduino do not light up. The GPS modules LED blinks after about 5 seconds.

For the 6M + Antenna with the DeviceExample code we get the following:
In the Serial Monitor we get "No GPS detected: check wiring" (once) and then nothing.
The RX and the TX on the Arduino do not light up, the (green) LED on the 6M does blink every time I move the module.

For the 6M +Antenna with the FullExample code we get this:
In the table we get "" from "Sats" to (including) "card" and under "chars RX", "Sentences RX" and "Checksum Fail" we get "0". After a couple of those lines, it changes to "No GPS data received: Check wiring". From then one those lines switch back and forth.
After 30 seconds or something though, it changes: Everything is again "
", but the "Chars RX" changes to some value (from 4, to 6, to 9, to 10, to 11). We suspect that this occurred because we may have been moving the connectors a little.
The GPS modules LED blinks every now and then after I move the module, the RX on the Arduino does not light up at all, the TX blinks again one time in one second.

For the 6M + Antenna with the code from the Internet we get this:
"GPS Start". The RX and TX LEDs on the Arduino stay off. The modules LED blinks every now and then after moving the module.

All this sounds very confusing to us. The 6M seems to be weird with its led turning on and off, but we even tried all of this after we soldered the connectors on the modules, so it can't be a bad connection.

On the pics, it looks like we are inside; we just took the pictures inside, we tested outside.

(I can post the exact lines that appear on the Serial Monitor, if needed. Feel like its just too much though.)

Help is very appreciated!
Thank you.

The two sketches:
FullExample:

#include <TinyGPS++.h>
#include <SoftwareSerial.h>
/*
   This sample code demonstrates the normal use of a TinyGPS++ (TinyGPSPlus) 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).
*/
static const int RXPin = 4, TXPin = 3;
static const uint32_t GPSBaud = 9600;
// The TinyGPS++ object
TinyGPSPlus gps;
// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);
void setup()
{
  Serial.begin(115200);
  ss.begin(GPSBaud);
  Serial.println(F("FullExample.ino"));
  Serial.println(F("An extensive example of many interesting TinyGPS++ features"));
  Serial.print(F("Testing TinyGPS++ library v. ")); Serial.println(TinyGPSPlus::libraryVersion());
  Serial.println(F("by Mikal Hart"));
  Serial.println();
  Serial.println(F("Sats HDOP Latitude   Longitude   Fix  Date       Time     Date Alt    Course Speed Card  Distance Course Card  Chars Sentences Checksum"));
  Serial.println(F("          (deg)      (deg)       Age                      Age  (m)    --- from GPS ----  ---- to London  ----  RX    RX        Fail"));
  Serial.println(F("---------------------------------------------------------------------------------------------------------------------------------------"));
}
void loop()
{
  static const double LONDON_LAT = 51.508131, LONDON_LON = -0.128002;
  printInt(gps.satellites.value(), gps.satellites.isValid(), 5);
  printInt(gps.hdop.value(), gps.hdop.isValid(), 5);
  printFloat(gps.location.lat(), gps.location.isValid(), 11, 6);
  printFloat(gps.location.lng(), gps.location.isValid(), 12, 6);
  printInt(gps.location.age(), gps.location.isValid(), 5);
  printDateTime(gps.date, gps.time);
  printFloat(gps.altitude.meters(), gps.altitude.isValid(), 7, 2);
  printFloat(gps.course.deg(), gps.course.isValid(), 7, 2);
  printFloat(gps.speed.kmph(), gps.speed.isValid(), 6, 2);
  printStr(gps.course.isValid() ? TinyGPSPlus::cardinal(gps.course.value()) : "*** ", 6);
  unsigned long distanceKmToLondon =
    (unsigned long)TinyGPSPlus::distanceBetween(
      gps.location.lat(),
      gps.location.lng(),
      LONDON_LAT, 
      LONDON_LON) / 1000;
  printInt(distanceKmToLondon, gps.location.isValid(), 9);
  double courseToLondon =
    TinyGPSPlus::courseTo(
      gps.location.lat(),
      gps.location.lng(),
      LONDON_LAT, 
      LONDON_LON);
  printFloat(courseToLondon, gps.location.isValid(), 7, 2);
  const char *cardinalToLondon = TinyGPSPlus::cardinal(courseToLondon);
  printStr(gps.location.isValid() ? cardinalToLondon : "*** ", 6);
  printInt(gps.charsProcessed(), true, 6);
  printInt(gps.sentencesWithFix(), true, 10);
  printInt(gps.failedChecksum(), true, 9);
  Serial.println();
  
  smartDelay(1000);
  if (millis() > 5000 && gps.charsProcessed() < 10)
    Serial.println(F("No GPS data received: check wiring"));
}
// This custom version of delay() ensures that the gps object
// is being "fed".
static void smartDelay(unsigned long ms)
{
  unsigned long start = millis();
  do 
  {
    while (ss.available())
      gps.encode(ss.read());
  } while (millis() - start < ms);
}
static void printFloat(float val, bool valid, int len, int prec)
{
  if (!valid)
  {
    while (len-- > 1)
      Serial.print('*');
    Serial.print(' ');
  }
  else
  {
    Serial.print(val, prec);
    int vi = abs((int)val);
    int flen = prec + (val < 0.0 ? 2 : 1); // . and -
    flen += vi >= 1000 ? 4 : vi >= 100 ? 3 : vi >= 10 ? 2 : 1;
    for (int i=flen; i<len; ++i)
      Serial.print(' ');
  }
  smartDelay(0);
}
static void printInt(unsigned long val, bool valid, int len)
{
  char sz[32] = "*****************";
  if (valid)
    sprintf(sz, "%ld", val);
  sz[len] = 0;
  for (int i=strlen(sz); i<len; ++i)
    sz[i] = ' ';
  if (len > 0) 
    sz[len-1] = ' ';
  Serial.print(sz);
  smartDelay(0);
}
static void printDateTime(TinyGPSDate &d, TinyGPSTime &t)
{
  if (!d.isValid())
  {
    Serial.print(F("********** "));
  }
  else
  {
    char sz[32];
    sprintf(sz, "%02d/%02d/%02d ", d.month(), d.day(), d.year());
    Serial.print(sz);
  }
  
  if (!t.isValid())
  {
    Serial.print(F("******** "));
  }
  else
  {
    char sz[32];
    sprintf(sz, "%02d:%02d:%02d ", t.hour(), t.minute(), t.second());
    Serial.print(sz);
  }
  printInt(d.age(), d.isValid(), 5);
  smartDelay(0);
}
static void printStr(const char *str, int len)
{
  int slen = strlen(str);
  for (int i=0; i<len; ++i)
    Serial.print(i<slen ? str[i] : ' ');
  smartDelay(0);
}

and the one from the net:

#include "TinyGPS++.h"
#include "SoftwareSerial.h"

SoftwareSerial serial_connection(10, 11); //RX=pin 10, TX=pin 11
TinyGPSPlus gps;//This is the GPS object that will pretty much do all the grunt work with the NMEA data
void setup()
{
  Serial.begin(9600);//This opens up communications to the Serial monitor in the Arduino IDE
  serial_connection.begin(9600);//This opens up communications to the GPS
  Serial.println("GPS Start");//Just show to the monitor that the sketch has started
}

void loop()
{
  while(serial_connection.available())//While there are characters to come from the GPS
  {
    gps.encode(serial_connection.read());//This feeds the serial NMEA data into the library one char at a time
  }
  if(gps.location.isUpdated())//This will pretty much be fired all the time anyway but will at least reduce it to only after a package of NMEA data comes in
  {
    //Get the latest info from the gps object which it derived from the data sent by the GPS unit
    Serial.println("Satellite Count:");
    Serial.println(gps.satellites.value());
    Serial.println("Latitude:");
    Serial.println(gps.location.lat(), 6);
    Serial.println("Longitude:");
    Serial.println(gps.location.lng(), 6);
    Serial.println("Speed MPH:");
    Serial.println(gps.speed.mph());
    Serial.println("Altitude Feet:");
    Serial.println(gps.altitude.feet());
    Serial.println("");
  }
}

/*
 * $GPRMC,183729,A,3907.356,N,12102.482,W,000.0,360.0,080301,015.5,E*6F
$GPRMB,A,,,,,,,,,,,,V*71
$GPGGA,183730,3907.356,N,12102.482,W,1,05,1.6,646.4,M,-24.1,M,,*75
$GPGSA,A,3,02,,,07,,09,24,26,,,,,1.6,1.6,1.0*3D
$GPGSV,2,1,08,02,43,088,38,04,42,145,00,05,11,291,00,07,60,043,35*71
$GPGSV,2,2,08,08,02,145,00,09,46,303,47,24,16,178,32,26,18,231,43*77
$PGRME,22.0,M,52.9,M,51.0,M*14
$GPGLL,3907.360,N,12102.481,W,183730,A*33
$PGRMZ,2062,f,3*2D
$PGRMM,WGS 84*06
$GPBOD,,T,,M,,*47
$GPRTE,1,1,c,0*07
$GPRMC,183731,A,3907.482,N,12102.436,W,000.0,360.0,080301,015.5,E*67
$GPRMB,A,,,,,,,,,,,,V*71
*/

Thanks.

Images embedded for our convenience:

Technique described here

I'm glad to see that you did not connect the Arduino transmit pin directly to the GPS receive pin. Using a resistor divider is correct.

Connecting the GPS transmit pin directly to the Arduino receive pin usually works, but the GPS signal is a little too low for the Arduino. Sometimes you have to use a diode and resistor (or level shifting modules) to pull the signal up a little (read this). This could be the main problem.

Picking which pins to use for a serial connection is important, so be sure to read this. It would be easy to try AltSoftSerial on pin 8 & 9... and much more efficient and relibable than SoftwareSerial.

Next, both of these modules require 5V, not 3.3V. They have an on-board voltage regulator that requires 3.6V-5V to output 3.3V to the GPS chip. BTW, the GPS device in images 1 & 2 does not look like a NEO-6M module. If it from the banggood retailer, it actually contains an MTK chip. :frowning: Regardless...

You might try the simple echo test:

void loop()
{
  if (ss.available())
    Serial.write( ss.read() );
}

You should see the raw NMEA data being transmitted by the GPS device. If not, there is some connection problem.

You could also try a diagnostic example program that comes with NeoGPS. It's smaller, faster, more reliable and more accurate than all other libraries. NeoGPS is available from the Arduino IDE Library Manager, under the menu Sketch -> Include Library -> Manage Libraries. There are lots of tips on the Troubleshooting Page.

Cheers,
/dev

1 Like

First of all, thanks for your reply!

Yes, the first two pictures are the Neo-7M-0-001 module, the last one is the 6M. As I mentioned in the first post, I accidentally ordered the 7M first. After we could not get it to work, we thought it was because most of the posts and tutorials we read were about the 6M.

So I tried your example sketch (I used the RX and TX pin on the Arduino instead of the Digital pins) with the Neo-6M and I am not receiving anything at all in the serial monitor. I have to say though, I am inside a room.

When connecting the 7M my Serial monitor goes crazy and spits out stuff like this:

$GPTXT,01,01,02,u-blox ag - www.u-blox.com50
$GPTXT,01,01,02,HW ⸮⸮⸮U=.2⸮3:52
59
$GPTXT,01,01,02,PROTVER 14.001E
$GPTXT,01,01,02,ANTSUPERV=AC SD PDoS ⸮⸮TSUPERV=AC SD PDoS SR
20
$GPTXT,01,01,02,ANTSTATUS=DONTKNOW33
$GPTXT,01,01,02,LLC FFFFFFFF-FFFFFFFD-FFFFFFFF-FFFFFFFF-FFFFFFFD
2E
$GPRMC,,V,,,,,,,,,,N53
$GPVTG,,,,,,,,,N
30
$GPGGA,,,,,,0,00,99.99,,,,,,48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99
30
$GPGLL,,,,,,V,N64
$GPTXT,01,01,02,ANTSTATUS=INIT
25
$GPRMC,,V,,,,,,,,,,N53
$GPVTG,,,,,,,,,N
30
$GPGGA,,,,,,0,00,99.99,,,,,,48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99
30

(Please tell me this is the RAW NMEA stuff that makes sense)

After a while the pattern changes though to something like this:

$GPTXT,01,01,01,NMEA unknown msg58
$GPTXT,01,01,01,NMEA unknown msg
58
$GPTXT,01,01,01,NMEA unknown msg58
$GPTXT,01,01,01,NMEA unknown msg
58
$GPTXT,01,01,01,NMEA unknown msg58
$GPTXT,01,01,01,NMEA unknown msg
58
$GPRMC,,V,,,,,,,,,,N53
$GPVTG,,,,,,,,,N
30
$GPGGA,,,,,,0,00,99.99,,,,,,48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99
30
$GPGSV,1,1,02,15,,,13,16,,,0872
$GPGLL,,,,,,V,N
64
$GPTXT,01,01,01,NMEA unknown msg58
$GPTXT,01,01,01,NMEA unknown msg
58
$GPTXT,01,01,01,NMEA unknown msg58
$GPTXT,01,01,01,NMEA unknown msg
58
$GPTXT,01,01,01,NMEA unknown msg58
$GPTXT,01,01,01,NMEA unknown msg
58
$GPTXT,01,01,01,NMEA unknown msg*58

EDIT:

I tried the NeoGPS library and ran the NMEA code. Nothing. The diagnostics says that it does not receive any data on all baud rates...?
Also I tried the first sketch that you suggested to get everything the GPS transmits again. Nothing.

So what do you suggest does that mean?

We really appreciate any help!
Thank you!

Okay... So now we tried your trick with using a diode and another resistor and we are speechless. Nothing at all happens. With the simple code I do not get anything at all. The other ones say there is no GPS connected/We shouldd check the connections.

We are really stuck here. No idea what else we could try, we searched through many forums and all their solutions do not work.

It seems rather unlikely though that both the modules are damaged. We never used more than 5V. They were new from Amazon...

If anyone has any other idea, we would really appreciate that.
Thank You.

EDIT:

After disconnecting the Diode and resistor and trying the first setup I got kind of the same stuff in the serial monitor, as in the post above with the simple code.
The other codes don't change anything.

So I tried your example sketch (I used the RX and TX pin on the Arduino instead of the Digital pins)

I didn't say to do that. The echo test copies the data received on pin 4 to the Arduino TX pin 1. Then the Serial Monitor displays that data.

Please tell me this is the RAW NMEA stuff that makes sense

Yes, that is what the GPS device should be sending. It also tells me that you are not receiving from any satellites.

After a while the pattern changes though to something like this:

$GPTXT,01,01,01,NMEA unknown msg*58

Because you connected the GPS device to pins 0 & 1, the echo test (if it is reading from Serial) is sending all the received data back to the GPS device (and the Serial Monitor). It is complaining about receiving a GPTXT message from the Arduino. No big deal.

we tried your trick with using a diode and another resistor... Nothing at all happens.

What diode and what resistor? Are you sure the diode is oriented the correct way?

the NeoGPS diagnostic [and the echo test] says that it does not receive any data on all baud rates...?

Then it is not sending anything. :frowning:

Maybe the NEO-6M is mis-configured. Try using the NeoGPS ubloxrate.ino sketch. Upload it to the Arduino and enter an 'e' command in the Serial Monitor and press "Send". That will enable echoing the GPS data (just like the echo test). Then enter a '1' . That will send commands to the GPS device to enable several NMEA sentences.

If you still don't see anything, you could connect the GPS device directly to the PC and use the ublox Windows application, u-center. Do you have a 3.3V TTL Serial-to-USB adapter module (aka FTDI)? The Windows application will display lots of information about the GPS device, and you can re-configure it if it has a weird setup. That would also confirm that your 3.3V to 5V level shifting is correct.

First of all, thank you for your reply.

I can't believe how stupid I was, not realising that I was using the Serial TX and RX pin while connected to USB. I am very happy though, that it at some point spits out data.

So the 7M (which is sending that data to the Serial Monitor) has a weird setup: There is an IPX pin, which I can plug the Antenna module from the 6M in. However, the back of the 7M looks like an Antenna that is just not connected?!

So with the Diode I am not completely sure, I have never before worked with that. There is some text on it: BZZ 85C 3V9
No idea what that is or means.
However when connecting to a multimeter (turned to the Diode symbol) I get in the one direction "1" and in the other on something like "850". I assumed that "1" is like the OL and "850" like "0.850"?!
If this is actually a good diode, what would happen if I accidentally put it in the wrong way. Or could I switch without destroying anything.
The resistor is a 10K one.

-dev:
Try using the NeoGPS ubloxrate.ino sketch.

When trying to upload/compile the code, it gives an error, because I do not have the NeoTeeStream.h. After a quick google search though, I could not find it online or in my Arduino.IDE.

-dev:
If you still don't see anything, you could connect the GPS device directly to the PC and use the ublox Windows application, u-center. Do you have a 3.3V TTL Serial-to-USB adapter module (aka FTDI)? The Windows application will display lots of information about the GPS device, and you can re-configure it if it has a weird setup. That would also confirm that your 3.3V to 5V level shifting is correct.

I would try that, I do not have such a device though. Do you mean this https://www.amazon.de/kwmobile-Konverter-Modul-Chipsatz-PL2303HX/dp/B06XHJH6ZX/ref=sr_1_6?rps=1&ie=UTF8&qid=1502355052&sr=8-6&keywords=3.3V+TTL+Serial-to-USB+adapter+module for example?

One more thing:

I downloaded the AltSoftSerial library and tried the echo test. After connecting the RX and TX to Pin 8 and 9, all I get in the Serial Monitor is "AltSoftSerial Test Begin". Nothing else.

the back of the 7M looks like an Antenna that is just not connected?!

The big ceramic block is the antenna. It is soldered onto the top of the board, and a PCB trace under it must connect it to the NEO-7M chip. I don't know why there is another antenna connector on the bottom. Maybe there is a way to disable the on-board antenna so you can use an external antenna.

There is some text on it: BZZ 85C 3V9 No idea what that is or means.

It's probably a 3.9V Zener diode.

what would happen if I accidentally put it in the wrong way.

You won't get any data, just like you saw. Google "diode marking" to compare the striped end with the symbol orientation.

Or could I switch without destroying anything.

Yes, with a 10K resistor you can just switch it around. That's something you probably should have asked before connecting it.

I do not have the NeoTeeStream.h. After a quick google search though, I could not find it online or in my Arduino.IDE.

Really? My google finds it. Here's the whole library: NeoTee.

Do you mean this?

Yes. It does not need level shifting, because this module expects the same 3.3V signals that the GPS device provides.

After connecting the RX and TX to Pin 8 and 9, all I get in the Serial Monitor is "AltSoftSerial Test Begin".

The GPS TX pin goes to the AltSoftSerial receive pin: Arduino pin 8. You should get the same results as when you used pins 3 and 4.

Hi,

thank you for your help. I finally got both of the modules to work. After running the ubloxrate, I managed to go step by step and get both of them running. It seems like I do not need the level shifting, they work fine (also for like more than just a minute or so).

Your (You wrote it, right?!) NeoGPS library is indeed great. Thanks for your effort.

Larry_2:
Hi,

thank you for your help. I finally got both of the modules to work. After running the ubloxrate, I managed to go step by step and get both of them running. It seems like I do not need the level shifting, they work fine (also for like more than just a minute or so).

Your (You wrote it, right?!) NeoGPS library is indeed great. Thanks for your effort.

How did your project go? I am working on something similar with the same gps unit, the 6m. Just figured I'd chime in and see how it was working for you?