Heltec v3 + neom6v2 = no sats

Hi I recently got a few heltec v3’s. They work fine but when y try to activate GPS they just say “no sats “.

I have tried:
Walking out side for 30mins
Reset device
Flip pins between 45 and 46
Shorting the battery pins in gps module.
Flashing latest alpha 2.3.10

I followed this guide: How To Add GPS To Your Meshtastic Node

It’s this module: https://a.aliexpress.com/_EwZXKQb
(Soldered pin for rx and tx are 45+ 46)

Any ideas?

Take care now

Hello ImplicadoBravo_4874,

almost the exact setup is running here like a charm. Heltec V3 with Neo M6 GNSS board. But mine has a much bigger patch antenna, almost 1 by 1 inch.
Anyway, time to first fix without any track datas of any satellite took me half an hour at blue sky, with the antenna sitting outside at the edge of the window board, only seeing half of the sky. But it worked. Later on it’s way faster.

Here is my setup

The TX pin of the GNSS module is connected to pin 45, RX corresponding to pin 46, GND to GND and powered via 3V3.

Fingers crossed, take care.

What is really helpful is to be able to see the characters the GPS is producing, the NMEA sentences a GPS puts out by default will normally tell you if there are any issues such as weak satellite signals.

As a troubleshooting step I normally load a simple Arduino program to a device to copy all the GPS characters to the Serial programming port.

A working GPS should when outdoors with a good view of the Sky get a location fix in about 45 seconds.

Good tip! You wouldn’t have a sketch ready to flash? @StuartsProjects

Best regards

Thanks!

I tried a full erase and flash now with latest stable. Now the unit is in the window, hopefully it will find satellites in a while.

Regards

i connected my heltec to serial monitor and saw these GPS errors.
DEBUG | ??:??:?? 32 [GPS] Probing for GPS at 4800
DEBUG | ??:??:?? 32 [GPS] Setting Baud to 4800
WARN | ??:??:?? 34 [GPS] Failed to find UBlox & MTK GNSS Module using baudrate 4800
DEBUG | ??:??:?? 36 [GPS] Probing for GPS at 38400
DEBUG | ??:??:?? 36 [GPS] Setting Baud to 38400
WARN | ??:??:?? 39 [GPS] Failed to find UBlox & MTK GNSS Module using baudrate 38400
DEBUG | ??:??:?? 41 [GPS] Probing for GPS at 57600
DEBUG | ??:??:?? 41 [GPS] Setting Baud to 57600
WARN | ??:??:?? 43 [GPS] Failed to find UBlox & MTK GNSS Module using baudrate 57600
DEBUG | ??:??:?? 43 [Power] Battery: usbPower=0, isCharging=0, batMv=3758, batPct=54
DEBUG | ??:??:?? 45 [GPS] Probing for GPS at 115200
DEBUG | ??:??:?? 45 [GPS] Setting Baud to 115200
WARN | ??:??:?? 47 [GPS] Failed to find UBlox & MTK GNSS Module using baudrate 115200
WARN | ??:??:?? 52 [GPS] Failed to find UBlox & MTK GNSS Module using baudrate 9600
WARN | ??:??:?? 52 [GPS] Giving up on GPS probe and setting to 9600.

any ideas?

Your log indicates that the heltec device is unable to communicate with your gnss/gps module. The most likely cause is that the wires are connected to the wrong pins, or that the gps pin definitions in meshtastic does not correspond with your physical connections.
See How To Add GPS To Your Meshtastic Node and verify. If you can not find a physical problem, I would suspect a defective module

When I start working on a board I do write a series of simple Arduino test programs for the main functions, LED flash, LoRa TX and RX, GPS read etc.

Here is my test program for a T-Beam, you will need to adjust the GPSRX and GPSTX pins to match your board, GPS baud rate normally defaults to 9600;

//For T-BEAM-AXP2101-V1.2

#define GPSRX 34
#define GPSTX 12

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

void setup()
{
  Serial2.begin(9600, SERIAL_8N1, GPSRX, GPSTX);
  Serial.begin(115200);
  Serial.println();
  Serial.println("14_GPS_Echo Starting");
}

Here is an explanation of the test process, its the $GPGSV sentence that tells you how well the GPS is doing;

https://stuartsprojects.github.io/2018/10/01/My-GPS-does-not-work.html

1 Like

My noob experience: I built 3 RAK eval units and added a 12500 gps module to each. after a couple of weeks testing I still had no working gps. I asked in the discord and my 2nd try they asked for a picture of my build and immediately replied the obvious … My gps antennas were mounted upside down. The simplest things can be quite humbling.

Since then and after much experimenting with settings I found one of three had a bad antenna and I have noticed some weirdness in the precision settings. Best to you sir.

Thanks for the reply,

Seems like it might be the gps modules i ordered, either if they are fake/not compatible with neom6 driver in meshtastic or some thing. This is the third module i try, this time on a Lilygo t3s3, same problems unfortunately.

Thanks alot! Will use it in the future :slight_smile:

thanks alot! Looks like i will have to order another module, perhaps try M8 or something.

some luck!

Tried a fourth gps-module.

It seems to find the module at least.
DEBUG | ??:??:?? 1 [GPS] Probing for GPS at 9600
INFO | ??:??:?? 3 [GPS] Found a UBlox Module using baudrate 9600
DEBUG | ??:??:?? 3 [GPS] Module Info :
DEBUG | ??:??:?? 3 [GPS] Soft version: 7.03 (45969)
DEBUG | ??:??:?? 3 [GPS] Hard version: 00040007
DEBUG | ??:??:?? 3 [GPS] Extensions:0
INFO | ??:??:?? 5 [GPS] GNSS module configuration saved!
DEBUG | ??:??:?? 5 [GPS] publishing pos@0:2, hasVal=0, Sats=0, GPSlock=0
DEBUG | ??:??:?? 5 [GPS] No GPS lock
DEBUG | ??:??:?? 5 [GPS] onGPSChanged() pos@0, time=0, lat=0, lon=0, alt=0
INFO | ??:??:?? 5 [GPS] updatePosition LOCAL pos@0, time=0, latI=0, lonI=0, alt=0
DEBUG | ??:??:?? 5 [GPS] Setting local position: latitude=0, longitude=0, time=0, timestamp=0
DEBUG | ??:??:?? 5 [GPS] Node status update: 2 online, 2 total

Im waiting, but no lock yet. Lets hope!

That looks a lot more promising :slightly_smiling_face:
I once had to wait twelve hours for the first lock, so don’t give up. In some locations the small antenna bkocks have a hard time getting a lock

1 Like

i see haha, ill try to setup a usb-connected device in the window and run over night.

On another module i managed to connect it to u-center with a CH341A programmer.

but all i get inte the text log repeating is:

??:??:??  $GPGGA,,,,,,0,00,99.99,,,,,,*48
??:??:??  $GPRMC,,V,,,,,,,,,,N*53
??:??:??  $GPGGA,,,,,,0,00,99.99,,,,,,*48
??:??:??  $GPRMC,,V,,,,,,,,,,N*53
??:??:??  $GPGGA,,,,,,0,00,99.99,,,,,,*48
??:??:??  $GPRMC,,V,,,,,,,,,,N*53

Maybe i just have to wait and see?

Those are nmea gps sentences with no valid position. See GPS Sentences | NMEA Sentences | GPGGA GPGLL GPVTG GPRMC for samples of a message with position data .

I see, maybe I just got really bad counterfeits.
Even when rebooting the gps module these messages above are the only ones displaying. No boot message or anything.

I also tried to short the battery pins.

Im letting another device run for a day or two, if that doesn’t work I think I’m gonna order a few other modules.

Tanks alot for your help! :blush:

Unfortunatly the GPS has been configured to not send out the key NMEA sentence, the $GPGSV. That sentence is so very helpful in debugging issues with GPSs, tells you the number of satellites in view and their signal strengths, vital info if there are GPS issues.

Where did you get the GPS ?

Whilst the $GPGGA and $GPRMC are the two sentences you need for the navigation information, its unusual in my experience to see one thats been programmmed, and the configuration stored, to only put out $GPGGA and $GPRMC.

As for wait and see, if the GPS is outdoors with a good view of the sky then you should see the time displayed in the NMEA within 15 seconds or so, than a GPS location fix in about 45 seconds.

Some of the NeoM6s have an EEPROM where the settings can be saved, the GPS automatically checks for the EEPROM being there at power up and if it is it uses the stored settings.

However, you can fairly easily turn the $GPGSV back on again, try this;

//For T-BEAM-AXP2101-V1.2

#define GPSRX 34
#define GPSTX 12

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

void setup()
{
Serial2.begin(9600, SERIAL_8N1, GPSRX, GPSTX);
delay(1000);
//Serial2.print(“$PUBX,40,GSV,0,0,0,059\r\n"); //$GPGSV off
Serial2.print("$PUBX,40,GSV,1,1,1,0
58\r\n”); //$GPGSV on

Serial.begin(115200);
Serial.println();
Serial.println(“14_GPS_Echo Starting”);
}

Thanks alot!

I tried your code but got error that serial2 was not defined.

So i tried this one, looks to do the same? (its on a arduino pro micro)
(from your blog i think?)

//Simple_SoftwareSerial_GPS_Echo

//Reads characters from a GPS using Software Serial and echoes them to the Arduino Serial Monitor at 115200 baud.   

//Important Note
//--------------
//Make sure the #defines below for the GPS TX and GPS RX pin numbers below match what you have connected and that the GPS
//baud rate used by the GPS is correct, its often 9600 baud but not always. 
    
#define GPSTX 15 //pin number for GPS TX output - data from Arduino into GPS
#define GPSRX 14 //pin number for GPS RX input - to Arduino from GPS
#define GPSBaud 9600 //GPS Baud rate
#define Serial_Monitor_Baud 115200   //this is baud rate used for the Arduino IDE Serial Monitor

#include <Arduino.h>
#include <SoftwareSerial.h> 
SoftwareSerial GPSserial(GPSRX, GPSTX);  
    
void loop()
{
  while (GPSserial.available() > 0)
  Serial.write(GPSserial.read());
}
    
void setup()
{
 Serial.begin(Serial_Monitor_Baud);   //start Serial console ouput
 GPSserial.begin(GPSBaud);//start softserial for GPS at defined baud rate
 GPSserial.print("$PUBX,40,GSV,1,1,1,058\r\n");
}

Now it prints this, repeating:

$GPGSV,1,1,00*79
$GPRMC,,V,,,,,,,,,,N*53
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSV,1,1,00*79
$GPRMC,,V,,,,,,,,,,N*53
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSV,1,1,00*79
$GPRMC,,V,,,,,,,,,,N*53
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSV,1,1,00*79

looks like im out of luck? :slightly_frowning_face: