Fix NEO-6M “No GPS detected” or no satellite fix
No data means wiring or baud rate; data but no fix means the antenna cannot see the sky. A cold start outdoors can take 1–5 minutes.
Community draft — report a mistake
What you see
No GPS detected: check wiring.
--- or, with data but no fix ---
$GPRMC,,V,,,,,,,,,,N*53
$GPGGA,,,,,,0,00,99.99,,,,,,*48No GPS detected: check wiring. --- or, with data but no fix --- $GPRMC,,V,,,,,,,,,,N*53 $GPGGA,,,,,,0,00,99.99,,,,,,*48
Two different problems share this page. “No GPS detected” means the board receives no NMEA sentences — a wiring or baud issue. Sentences with empty fields mean the module works but has no fix yet — an antenna and sky-view issue.
Quick fix — try in order
- 1
Cross TX and RX
GPS TX → board RX pin, GPS RX → board TX pin. On Uno use SoftwareSerial on two pins (e.g. 4 and 3), not D0/D1.
- 2
Use 9600 baud
The NEO-6M defaults to 9600 baud. A wrong baud rate shows garbage or nothing.
- 3
Go outdoors or near a window
GPS needs a clear sky view. Indoors, especially under concrete roofs, it may never get a fix.
- 4
Wait for the first fix
A cold start takes about 30 s to several minutes. The module LED blinks once per second when it has a fix.
- 5
Check the antenna connector
The small U.FL connector pops off easily; press it back on.
Why it happens
“V” in $GPRMC
V means “void” — data arrives but there is no valid position yet. A means a fix.
Backup battery
Modules with a dead backup cell lose almanac data and always cold-start slowly.
ESP32 pins
Use a hardware UART: Serial2 on GPIO16 (RX2) / GPIO17 (TX2) on an ESP32 DevKit V1.
Board-specific notes
Parts: NEO-6M GPS — pinout, voltage and library notes.
Did this fix it?
Thanks — that helps us keep this page right.