Documentation
Onboarding
Getting Started
Power & Battery
Hardware & Components
Build & Assembly
Radio & RF Design
Frequencies & Regulations
Firmware & Software
USB & Connectivity
GPS & Navigation
Morse & Communication
Modes & Operation
Field Operations & Rescue
Building Effectively
Build Variants
Project & Reference
Docs Hardware & Components GPS Module Variants

GPS Module Variants

Edit on GitHub

NEO-6M, NEO-7M, NEO-8M and M8N: what changes and what stays the same for the firmware

GPS Module Variants

Overview

The firmware is written against the NEO-6M over a 9600 baud UART, but the code talks to any GPS that emits standard NMEA sentences. Newer u-blox modules are drop-in alternatives with one caveat: default baud rate.

The u-blox Family

ModuleKey differenceDefault baud
NEO-6MBaseline, oldest9600
NEO-7MFaster acquisition9600
NEO-8MBetter sensitivity9600 (most boards)
M8NMulti-constellation (GPS+GLONASS)9600 (most boards)

What Stays the Same

  • NMEA protocol over UART.
  • 3.3 V logic on the TX/RX lines.
  • Firmware parses with TinyGPS++ - no driver change needed.
  • Patch antenna mounting guidance.

The Baud Caveat

Some M8N breakout boards ship configured for 38400 baud. If the module is silent at 9600:

  1. Check the seller’s documentation for the configured baud.
  2. Reconfigure the module with u-center to 9600 baud.
  3. Or confirm the board has an auto-baud feature.

Wiring

All of these use the same two pins:

GPS pinESP32 GPIO
TXGPIO 22 (Serial2 RX)
RXN/C (Serial2 TX unused; firmware never sends to the GPS)