Preview build — page text is a draft awaiting human review. Code badges come from real compiles. The flasher is real but not yet hardware-tested; the Playground is still a preview.
Module · GPS

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.

Arduino UnoESP32Arduino NanoUpdated 31 Oct 2026

Community draft — report a mistake

What you see

OutputOutput
No 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. 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. 2

    Use 9600 baud

    The NEO-6M defaults to 9600 baud. A wrong baud rate shows garbage or nothing.

  3. 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. 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. 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.

↑↓ to move · Enter to open