Heltec V3 with GT-U7 GPS Module Connections/Setup

I am trying to get the GT-U7 GPS module to work with the Heltec V3.
Does everything look okay here?



You’re trying to set it in the wrong spot. Go to Settings > Radio Configuration > Position. There’s a redefine GPS_rx/tx_Pin option. That’s where you will set the PIN number.

Okay thanks - I will try it again and let you know if i get it working.

mmm. still seeing No GPS on the Heltec.
So TX on the GPS to RX on the app.
And the RX on the GPS is not required I believe.
Maybe I should try another GPS

Redefine GPS. TX pin should be empty, found out that if connected and set gps would not work.
Also found the 2.2.16 and up flaky with the gps .
Try erase and flash 2.2.15, then set gps settings. If that works, flash 2.2.17 and do not touch gps settings anymore. worked for me.

Late to the party but… I’ve been bashing my head trying to figure this out too. In my app, when I redefine the RX pin, it ISNT the GPIO pin… it’s the pin numbers stencilled on the bottom of the circuit board… in your case GPIO pin 48 is actually pin 46 printed on the board. Hours of frustration to figure that out. I hope you got it working.

1 Like

I’m not sure this is the case? in the app i can only select up to 45 as a gpio anyway. so if i set the rx pin as 6 (printed on the pcb) and also connect the gps tx to this pin, the heltec says “no gps lock”, but displays time correctly. I’ve also tried a couple of different brands of gps, same results. Can you share your gps pinouts and settings please?

Apparently, I didnt have my glasses on when I wrote about GPIO48 and the screen print being 46… I checked the diagram in Heltec’s site and it’s clearly marked GPIO46… and on the screenprint on the back of the board its also 46…

So I used gpio46, 46 printed on the back side of the board.

Settings > Radio Configuration > Position scroll to Redefine GPS_RX_Pin and I entered 46 in there. Manually typed it in.
Powering up, it says no gps, no gps module but after about 30 secs to 1minute it says no sats, no gps lock, then it locks if there are sattelites in reach.

Came here to chat about this… I’m so confused. (and a little frustrated)
This forum post talks about using pins 36/37, whereas this post talks about pins 2/3. Then there’s a picture in this listing by TonyG (who designed and sold a case) referencing 47/48, which happens to be the one I followed. Now @HughV3 is talking about pin 46?

I understand quite a bit about electronics, and that we can use lots of different pins because it’s GPIO (General Purpose Input Output). Though it’s quite confusing as a noob to Meshtastic to know which pins to use as there’s lots of conflicting information.

Also, as an additional note, the Apple/iOS app pin settings only go up to 45. The only way that I’ve been able to set the pin(s) to 47/48 is via the CLI.

Currently I’ve got the the following connected:

  • ESP-47 → GPS-RX → GPS_RX_PIN: 48
  • ESP-48 → GPS-TX → GPS_TX_PIN: 47

When the device boots up, connected to the computer with running meshtastic --noproto I get the following output:

DEBUG | ??:??:?? 1 [GPS] Probing for GPS at 9600
INFO  | ??:??:?? 2 [GPS] Found a UBlox Module using baudrate 9600
DEBUG | ??:??:?? 2 [GPS] Module Info :
DEBUG | ??:??:?? 2 [GPS] Soft version: 1.00 (59842)
DEBUG | ??:??:?? 2 [GPS] Hard version: 00070000
DEBUG | ??:??:?? 2 [GPS] Extensions:2
DEBUG | ??:??:?? 2 [GPS]   PROTVER 14.00
DEBUG | ??:??:?? 2 [GPS]   GPS;SBAS;GLO;QZSS
DEBUG | ??:??:?? 2 [GPS] Protocol Version:14.00
DEBUG | ??:??:?? 2 [GPS] ProtVer=14
DEBUG | ??:??:?? 2 [GPS] Setting GPS+SBAS
INFO  | ??:??:?? 2 [GPS] GNSS configured for GPS+SBAS. Pause for 0.75s before sending next command.
INFO  | ??:??:?? 4 [GPS] GNSS module configuration saved!
DEBUG | ??:??:?? 4 [GPS] WANT GPS=0
DEBUG | ??:??:?? 4 [GPS] GPS Lock took 2, average 0
DEBUG | ??:??:?? 4 [GPS] publishing pos@0:2, hasVal=0, Sats=0, GPSlock=0
DEBUG | ??:??:?? 4 [GPS] onGPSChanged() pos@0, time=0, lat=0, lon=0, alt=0
INFO  | ??:??:?? 4 [GPS] updatePosition LOCAL pos@0, time=0, latI=0, lonI=0, alt=0
DEBUG | ??:??:?? 4 [GPS] Setting local position: latitude=0, longitude=0, time=0
DEBUG | ??:??:?? 4 [GPS] Node status update: 4 online, 4 total

The screen always says NO GPS, and as far as I can tell, it never gets a lock, even when powered up outside with a clear view of the sky in an open space.

@RickZ you mention TX pin should be empty, or gps would not work, is this a firmware bug? I understand that the ESP shouldn’t be telling the gps module anything, it should just be receiving location data. If that’s the case than why is TX even defined in the firmware at all?

I’d just like to get these GPS modules working, contentiously, hopefully without having to re-solder (as they’re already in an enclosure). So how should these be connected & configured?

You really don’t need to set alternate pins, there is a default for most devices, the iOS app has been updated to do pins up to 48

So what are the default pins to use for Heltec V3 devices with GPS? I haven’t been able to find conclusive answer anywhere. Thanks for the update on the app, just updated.

There is a variant file for each hardware device in the firmware repo.

So I should be digging through the source code to find a default pin(s) to use for a GPS module? I’m comfortable doing this, but a lot of noobs wouldn’t be.

Also, the heltec_v3 variant.h file doesn’t reference a gps pin at all.

Here’s exactly what I did to my latest heltec v3:

Flashed meshtastic via the Web at https:// flasher dot meshtastic dot org (2.2.17 )
Connected a “Gooouuu Tech GT-U7” I was not given this by the company and I’m not endorsing this brand, it’s all probably made in the same place anyway. I got this module from amazon paid for it by myself.

Connected GPS module. GND to GND (PIN 1of header J3) VCC to 3.3v (PIN 2 of header J3) TX to GPIO 46 (PIN 5 of header J3, screen printed on the board reverse is “46”) That’s it, only 3 connections.

In the Meshtastic app (android) I connected the V3 via bluetooth and set the region to US… because Canada does not exist :slight_smile:

Settings > Radio Configuration > Position, then scroll downto Redefine GPS_RX_Pin and I entered 46 in there.
Sent the settings to the V3… after a reboot 1- 30 seconds “No GPS” turned to “NoSats” and then after about 2 mins, it displayed GPS lock and time/position.

I did not change ANY other settings or have to alter any code. I hope this helps.

Note: I chose GPIO46 (pin 5 on header J3) because according to the Heltec pinout graphic, it isnt assigned any other function. As you mentioned, others use 47/48 GPIO for the exact same reason. Those pins are 13/14 on header J2. I chose 46 because it’s closer to the GND and 3.3v power and my 3 wires are close together.

I believe, when you redifine the RX pin in the app, it is altering the firmware on the fly. No need to change code in the IDE.
V3GPS

Thanks so much @HughV3 that’s really helpful! I’ll wire mine the same, and hopefully have the same result. I appreciate you writing this up, it helps to clarify things. Honestly, thank you. Been pulling my hair out for days…

Hopping in here following your instructions (thank you so much for these) and I’m getting no gps lock even in clear sky. I have them wired up the same way and I have set it up with the same settings. Including re flashing the v3 Not sure what I’m doing wrong or if maybe I got bad units?

If you are getting no gps lock instead of no gps module then the gps module it’s talking to the V3 correctly.
If the module is getting a lock, the red led blinks, so you should be able to tell if it’s genuinely not getting a lock. Make sure your gps antenna is facing up too.

Okay I came up to a nearby hill with really clear open sky to try again. I am still getting no gps lock even though I have flashing red on the module. Noob question here. Is the part of the antenna where the connector is attached to the top, or is it the other side? Either way it doesn’t seem to make a huge difference for me. Still getting no lock. Are there different versions of this board for different geographic areas?

FWIW I decided to ditch the stable release 2.2.17 and flashed 2.2.18 and it immediately got 10 sattelites inside my house. Your mileage may vary of course but it did the trick for me. @Strex maybe this works for you as well! @HughV3 thanks again for the write up and advice!

1 Like

I had the same issue. I’m using the GoouuuTech GT-U7 GPS module. I didn’t flash anything onto it and I simply pulled it straight out of the packaging.

I was able to get it to work just fine. I don’t know if any or all of what I did helped. I used a bit of everyone’s advice on this thread until it worked. I’m using the 2.2.17.dbac2b1 Beta version on the web flasher.

I soldered the GPS module’s TXD pin to GPIO48 on the Heltec v3. I then soldered the GPS’s VCC pin to the 3V3 on the Heltec v3(not the one next to GND but the next one over). I then soldered the GPS GND to the GND on the Heltec v3, on the same side as the 3V. Once I double checked that I didnt have any of the solder points bridging. I plugged the USB C to USB A onto my PC for power. I then paired the Heltec V3 to my Meshtastic app and simply adjusted the following setting as pictured in the attachments.

Like I said before, I dont know if any or all of these few settings did anything but the GPS was not working when I plugged it in. It only started working after I made the adjustments in the position and the remote hardware. Just wanted to share as detailed as I could.