Dear all,
I bough a gps module from ebay (ref: https://bit.ly/2JBhcfm) and connected to an Esp32 nodemcu board. The board is fully compatible with arduino IDE.
I think that the hardware & software is ok, since the gps is powered and I can print the GPS NMEA messages.
My problem is that I never get a fix, even waiting for 10-15 minutes.
The messages that I get are:
18:09:05.552 $GPGGA,,,,,,0,00,99.99,,,,,,*48
18:09:05.554 $GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
18:09:05.618 $GPGSV,1,1,01,08,,,14*75
18:09:05.619 $GPGLL,,,,,,V,N*64
18:09:06.539 $GPRMC,,V,,,,,,,,,,N*53
18:09:06.539 $GPVTG,,,,,,,,,N*30
-- cut --
18:15:14.686 $GPGGA,,,,,,0,00,99.99,,,,,,*48
18:15:14.687 $GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
18:15:14.798 $GPGSV,2,1,06,13,,,22,14,,,21,15,,,21,17,,,20*7B
18:15:14.801 $GPGSV,2,2,06,18,,,22,20,,,19*7C
18:15:14.805 $GPGLL,,,,,,V,N*64
18:15:15.693 $GPRMC,,V,,,,,,,,,,N*53
18:15:15.693 $GPVTG,,,,,,,,,N*30
-- cut --
18:27:30.684 $GPGGA,,,,,,0,00,99.99,,,,,,*48
18:27:30.686 $GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
18:27:30.795 $GPGSV,2,1,08,02,,,22,08,,,22,09,,,21,15,,,22*76
18:27:30.798 $GPGSV,2,2,08,16,,,22,20,,,21,23,,,21,27,,,22*70
18:27:30.803 $GPGLL,,,,,,V,N*64
18:27:31.661 $GPRMC,,V,,,,,,,,,,N*53
18:27:31.662 $GPVTG,,,,,,,,,N*30
Please ignore the timestamp at the beginning as it is printed by the console terminal.
If I am right, the GPGSV message reports that a set of satellites is in view. The number of satellites varies, sometimes get to 8, sometimes drop to 5, and so on.
The sketch is pretty simple:
#include <HardwareSerial.h>
#include "BluetoothSerial.h"
BluetoothSerial SerialBT;
HardwareSerial MySerial(1);
void setup() {
Serial.begin(115600);
Serial.println(">>>>>>>>>>>>>>>>>> SETUP");
MySerial.begin(9600, SERIAL_8N1, 16, 17);
if(!SerialBT.begin("ESP32")){
Serial.println("An error occurred initializing Bluetooth");
}else{
Serial.println("Bluetooth initialized");
}
}
void loop() {
while (MySerial.available() > 0) {
uint8_t byteFromSerial = MySerial.read();
Serial.write(byteFromSerial);
// Do something
char charFromSerial = (char)byteFromSerial;
SerialBT.print(charFromSerial);
}
}
The gps module is connected to the 3.3v pin (but using the 5v pin does not change the fix result).
The board is powered by a power bank. Powering the board with my laptop.. again, no luck.
This is the board pinout: https://cdn.instructables.com/FOL/YWLI/JEOILQ5U/FOLYWLIJEOILQ5U.LARGE.jpg
I am using pin 16-17 to get the serial output from the gps module. Nodemcu and gps module are connected to a breadboard and to some jumper wires (10cm or less).
The provided antenna is quite small but the gps module is outside. On the same exact position, my phone get more than 10 satellites and a 3d fix in no time.
I kept the sketch as simple as possible to avoid any other possible problem or side effect.
Can you, please, help me?
Do you think is it possible that this problem is library-related? Should I use a gps library or, at the end of the day, those libraries are just NMEA messages parsers?
Do you have any other suggestion that can help me get a fix?
Are these king of modules able to fix without connecting to a arduino board? Mine has a red led that is steady when powered (I don't know what will happen with the led once the fix is got).
Thanks in advance for any idea!