Overview

The NEO-6M is a standalone GPS (Global Positioning System) receiver module developed by u-blox. Built around the 50-channel u-blox 6 positioning engine, it outputs standard NMEA 0183 sentences over a serial UART interface at a default baud rate of 9600 bps.

Breakout modules typically integrate a 3.3V low-dropout (LDO) regulator, an onboard EEPROM (for saving configuration settings permanently), a rechargeable MS621FE coin battery (for hot-start epoch memory retention), an IPEX (U.FL) antenna connector, and a external ceramic patch antenna.

Quick reference

Operating voltage (VCC)2.7 V – 3.6 V (Breakouts include 3.3V LDO for 3.0 V – 5.0 V input)
Logic level (RX/TX)3.3 V LVTTL (TX pin is 5V logic readable; RX needs divider from 5V MCU)
InterfaceUART Serial (NMEA 0183 & binary UBX protocol)
Default baud rate9600 bps (configurable up to 115,200 bps)
Update rate1 Hz default (up to 5 Hz configurable)
Position accuracy2.5 m CEP (Autonomous) / 2.0 m (SBAS / EGNOS / WAAS)
Time-To-First-Fix (TTFF)Cold Start: 27 s / Warm Start: 27 s / Hot Start: 1 s

Pinout

Standard 4-Pin / 5-Pin Breakout Header

PinNameTypeDescription
1VCCPowerSupply voltage (3.0 V to 5.0 V DC)
2RXDigital InputSerial Data Input (3.3 V logic level; receives UBX/NMEA commands)
3TXDigital OutputSerial Data Output (3.3 V logic level; transmits NMEA sentence stream)
4GNDPowerGround (0 V)
5PPS / TPDigital OutputTime Pulse (Outputs 1 Hz pulse synchronized to GPS time when fix achieved)

Specifications

ParameterSymbolMinTypMaxUnitConditions
Core Supply VoltageVDDV_{DD}2.73.03.6VIC raw supply
Breakout Supply VoltageVCCV_{CC}3.05.05.5VOnboard LDO input
Tracking CurrentICCI_{CC}4767mAContinuous tracking @ 3.0V
Tracking SensitivityStrackS_{track}-161dBmContinuous tracking
Navigation Update RatefNAVf_{NAV}15HzConfigurable via UBX
Max Velocityvmaxv_{max}500m/s1800 km/h
Max Altitudehmaxh_{max}50,000mHigh altitude mode

NMEA 0183 output protocol

The module continuously transmits standard ASCII NMEA sentences over UART:

NMEA SentenceDescriptionKey Information Extracted
$GPRMCRecommended Minimum Specific GPS DataUTC Time, Status (A=Valid/V=Invalid), Latitude, Longitude, Speed (knots), Date
$GPGGAGlobal Positioning System Fix DataTime, Latitude, Longitude, Fix Quality (0=Invalid, 1=GPS fix), Satellite Count, Altitude
$GPGSAGPS DOP and Active SatellitesOperating mode, Satellite PRNs used in fix, PDOP, HDOP, VDOP
$GPGSVSatellites in ViewTotal satellites in view, PRN, Elevation, Azimuth, Signal-to-Noise Ratio (SNR)

$GPRMC Example Sentence Parsing

text
$GPRMC,123519.00,A,4807.038,N,01131.000,E,022.4,084.4,230326,003.1,W*6A
  • 123519.00: UTC Time (12:35:19.00)
  • A: Status (A = Active / Valid Fix, V = Void / Invalid)
  • 4807.038,N: Latitude 4807.03848^\circ 07.038' North
  • 01131.000,E: Longitude 1131.00011^\circ 31.000' East
  • 022.4: Speed over ground (22.4 knots)
  • 230326: Date (23rd March 2026)

Wiring

NEO-6M PinMicrocontroller (Arduino Uno / ESP32)Notes
VCC5V or 3.3VSupply power to onboard LDO
GNDGNDGround
TXSoftwareSerial RX (e.g. Pin 4 / ESP32 GPIO16)Module TX \to MCU RX
RXSoftwareSerial TX (e.g. Pin 3 / ESP32 GPIO17)Module RX \leftarrow MCU TX (Use 1k/2k resistor divider from 5V MCU)
Info

The PPS (Pulse Per Second) pin outputs a 100 ms duration pulse once per second, but only after the module establishes a valid 3D position fix. The onboard LED is tied to PPS and blinks once per second when a fix is locked.

Common mistakes

  • Testing indoors: GPS signals (1575.42 MHz) cannot penetrate concrete walls or metal roofs. Testing indoors will result in Status = V (Void fix) and zero satellites in view. Always test outdoors under open sky.
  • Connecting RX directly to 5V MCU pins: The NEO-6M IO pins operate at 3.3V LVTTL. Connecting a 5V MCU TX line directly to NEO-6M RX without a voltage divider can damage the u-blox chip over time.
  • Confusing RX and TX wiring: Serial connections are crossed: NEO-6M TX connects to MCU RX, and NEO-6M RX connects to MCU TX.

Notes

  • Cold Start vs. Hot Start: After power-up without battery backup, a cold start takes ~27–60 seconds to download the satellite ephemeris data (Almanac). If the backup battery has charged, a hot start takes ~1 second.

Assets & downloads