GPS Module (NEO-6M/7M)
Wiring
| GPS Pin | ESP32 Pin |
|---|---|
| VCC | 3.3V |
| GND | GND |
| TX | GPIO16 (RX2) |
| RX | GPIO17 (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