Skip to main content

GPS Module (NEO-6M/7M)

Wiring

GPS PinESP32 Pin
VCC3.3V
GNDGND
TXGPIO16 (RX2)
RXGPIO17 (TX2)

Code

Install TinyGPS++ library.

#include <TinyGPS++.h>
TinyGPSPlus gps;
void setup() { Serial.begin(115200); Serial2.begin(9600); }
void loop() {
while (Serial2.available()) {
if (gps.encode(Serial2.read())) {
if (gps.location.isValid()) {
Serial.print(gps.location.lat(), 6);
Serial.print(",");
Serial.println(gps.location.lng(), 6);
}
}
}
}

Specifications

  • NEO-6M: GPS only, 2.5m accuracy
  • NEO-7M: GPS + GLONASS, faster fix
  • NEO-8M: GPS + GLONASS + Galileo + BeiDou

Troubleshooting

  • No fix — First fix takes 5-15 min outdoors. Indoor = no signal.
  • No serial data — Check baud rate (default 9600). Check TX/RX not swapped.
  • ESP32 GPS not working — See GPS No Fix Guide