Zum Hauptinhalt springen

ESP32 GPS — No Fix / Slow Fix

Quick Diagnosis

GPS showing 0 satellites?
├── Indoor? → Move outdoors
├── First power-on? → Wait 5–15 min for cold start
├── Antenna connected? → Check SMA/u.FL
├── Correct baud rate? → Most modules default 9600
└── Power issue? → Check VCC (3.3V or 5V)

Cold Start vs Hot Start

TypeTimeConditions
Cold start2–15 minutesFirst power-on, or battery removed > 2 hours
Warm start30–90 secondsPowered off < 2 hours, location < 100 km moved
Hot start1–5 secondsBrief signal loss, same location

GPS modules need to download almanac + ephemeris data from satellites, which takes 12.5 minutes for a full download. This is why first fix is slow — it is not a hardware problem.

Common Module-Specific Issues

u-blox M10 (found on T-Beam)

  • Default baud: 38400 (not 9600 like older modules)
  • Enable Galileo + BeiDou for faster fix in EU/Asia
  • u-center software can configure baud rate and constellations

ATGM336H (found on some Heltec boards)

  • Default baud: 9600
  • Needs clear sky — sensitive to obstructions
  • Weak antenna — upgrade to active antenna (3–5V) for better performance

Quectel L76K (found on LILYGO T-Echo)

  • Default baud: 9600
  • Has internal flash for assisted GPS (A-GPS)
  • If A-GPS data is expired, falls back to cold start

Antenna Tips

  1. Active vs passive: Active antennas (3–5V powered) have LNA built-in — much better sensitivity. Most GPS modules have a pin for active antenna power.
  2. Ground plane: GPS antennas work better with a metal ground plane underneath (≥ 50×50 mm). The device PCB itself often acts as the ground plane.
  3. Placement: GPS antenna must face the sky. Do not mount it under a metal roof, solar panel, or inside a metal enclosure.

Meshtastic GPS Settings

SettingValueEffect
position.gps_rx_pin34 (T-Beam default)Must match hardware
position.gps_tx_pin12 (T-Beam default)Must match hardware
position.gps_enabledtrueEnable GPS
position.fixed_positionfalse for mobileUse true for stationary nodes
position.position_broadcast_secs90015 min intervals saves battery