TinyGPS can't lock location

I try Neo6mv2 for GPS. I linked it to Arduino for testing. I notice that the GPS red led not blinking. My first assumption is my code's broken. My codes look like this:

#include <TinyGPS++.h>
#include <SoftwareSerial.h>

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(9600);
  ss.begin(GPSBaud);
}

void loop(){
  // This sketch displays information every time a new sentence is correctly encoded.
  while (ss.available() > 0){
    gps.encode(ss.read());
    if (gps.location.isUpdated()){
      Serial.print("Latitude= "); 
      Serial.print(gps.location.lat(), 6);
      Serial.print(" Longitude= "); 
      Serial.println(gps.location.lng(), 6);
    }
  }
}

I try another code online and it still the same. There are no reading from the module. The Tx LED from Arduino is blinking but not with Rx. My second assumption is my Neo6 module broken.
So I try using my voltmeter to check the Rx and Tx pin from Neo6. I found a constant 5V at Rx and 0-3v from the Tx. Seems like the Neo6m is working just fine. I try to wait for awhile but nothing changed

Anyone know why this is happen or can anyone give insight about it?

Are you doing this inside? If so, try taking everything outside someplace with a clear view of the sky and wait several minutes. The GPS will need to update its almanac and that can take a while the first time the unit is powered on. (And if the battery on the GPS board isn't maintaining a charge, each time you power it on can be "a first time".)

thx for the info, I will try

I get the Date and Time now, but still don't get the location. Is that mean the module itself is working but the problem is with my position?

If you're getting a date and time, the module is at least seeing the satellites, and that's more than half the battle. No location means it hasn't got a lock yet. It could take quite some time to get the initial almanac. When it does, the module's onboard LED will start to blink.

If the GPS is working OK, and is outside with a good view of the sky and horizon, then it should get a fix within about 45 seconds. If the GPS is taking longer than that to get a fix in such a location, thats a very strong indication of a poor GPS antenna or a faulty GPS giving very weak signals.

Run this program with the GPS in a good position, the output on the Serial monitor will indicate how good the satellite signals are;

#define RXpin 4              //this is the pin that the Arduino will use to receive data from the GPS
#define TXpin 3              //this is the pin that the Arduino can use to send data (commands) to the GPS - not used

#include <SoftwareSerial.h>
SoftwareSerial GPS(RXpin, TXpin);

void loop()
{
  while (GPS.available())
  {
    Serial.write(GPS.read());
  }
}

void setup()
{
  GPS.begin(9600);
  Serial.begin(115200);
  Serial.println("GPS_Echo Starting");
}

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.