The NEO-8M is a high-precision GNSS GPS receiver by u-blox, capable of receiving data from:
GPS (USA)
GLONASS (Russia)
Galileo (EU)
BeiDou (China)
It outputs serial (UART) data in NMEA sentences, giving real-time:
Latitude
Longitude
Altitude
Speed
Time & Date
Number of satellites
Fix quality
ESP32 (DevKit v1)
NEO-8M GPS Module (with or without ceramic antenna)
Jumper wires
Optional: OLED display or SD card module
| GPS Pin | Function | Connect to ESP32 |
|---|---|---|
| VCC | 3.3V / 5V | 3.3V or 5V (check module specs) |
| GND | Ground | GND |
| TX | Transmit (output) | GPIO16 (RX) |
| RX | Receive (input) | GPIO17 (TX) |
π Use SoftwareSerial if you want to keep default Serial for debugging.
Go to Arduino IDE:
Library Manager → Install TinyGPSPlus by Mikal Hart
The NEO-8M listens to satellite signals.
It calculates the location and time using trilateration.
Sends data to ESP32 as NMEA sentences like $GPRMC, $GPGGA, etc.
TinyGPSPlus parses this and gives readable info.
Live Location Tracker
GPS Logger to SD Card
IoT Asset Tracking
Vehicle Tracking System
Geofencing
Outdoor Robotics / Drones
Cold start may take 15–60 seconds to get a GPS fix.
Use ceramic patch antenna or GPS module with active antenna for better signal.
Needs clear sky view for fast location lock.
Avoid indoor testing—it may not get GPS fix.
HOW TO OPERATE