Source: https://mokxi.com/parts/neo6m
Updated: 2026-11-10

Part

# GPS module, NEO-6M

NMEA at 9600 baud, once a second, from wherever you set it. Click it to lose the fix.

See every part

- 4 pins
- 9 settings
- In 3 projects
- In 2 lessons

Drawn live by the editor's own code, at the size you see it.

At a glance

## The GPS module, NEO-6M in brief

What it is, and every setting the properties panel gives it.

The NEO-6M is the u-blox GPS receiver on the GY-NEO6MV2 breakout, with a ceramic patch antenna on a lead and a green LED that blinks each second with a fix. Its pins are VCC, RX, TX and GND; it takes 3 to 5 V through its own regulator, and TX swings to 3.3 V, which a 5 V Uno reads as high. To a sketch it is a serial port talking NMEA at 9600 baud: on an Uno, TX into pin 4 with SoftwareSerial; on an ESP32 DevKit, TX into GPIO 16 with Serial2.begin(9600, SERIAL_8N1, 16, 17). Mokxi sends the factory sentences every second, RMC, VTG, GGA, GSA, one to three GSV and GLL, about 450 bytes with checksums. The position is the lat and lon properties, speed and course move it along a heading, and clicking the module drops or restores the fix, after which the sentences go empty as they do indoors. TinyGPS++ reads it. The classic mistake is printing at 9600 baud while the GPS talks, so SoftwareSerial’s 64-byte buffer overflows and the GGA sentence goes missing. Satellites, the time to first fix, a wandering fix and commands on RX are not modeled.

Family

Clocks and links

Pins

4

lat

38.88947

lon

-77.03523

altitude

18

speed

0

course

0

satellites

8

fix

true

start

2026-09-23 12:00:00

baud

9600

A circuit built around it, running and explained: the GPS module simulator.

Pins

## 4 pins

Named as the editor names them, so a wire lands where you expect it.

Pin

Role

What it does

VCC

Input or output

Supply, 3 to 5 V. The breakout has its own 3.3 V regulator.

RX

Input

Into the module. Accepted and ignored: see below.

TX

Output

Out of the module: NMEA at baud, 8N1, swinging to 3.3 V.

GND

Input or output

Ground.

How to use it

## How to use the NEO-6M GPS module with an Arduino

The module talks NMEA at 9600 baud and the Uno’s one hardware port belongs to the serial monitor, so the GPS goes on SoftwareSerial: its TX into pin 4, its RX from pin 3, VCC to 5 V and GND to GND. Feed every character to TinyGPS++ with gps.encode() and read gps.location.lat(), gps.location.lng(), gps.satellites.value() and gps.altitude.meters() when they update.

There is no sky in the simulator: the position is the part’s lat and lon, and clicking the module takes the fix away, so the sentences go empty and this sketch prints that it is waiting for satellites. Keep the serial monitor at 115200. At 9600 a printed line takes as long as 70 bytes from the GPS, SoftwareSerial’s 64-byte buffer overflows, and the GGA sentence with the altitude is the one that goes missing.

Part pin

Board pin

TX

Pin 4

RX

Pin 3

VCC

5 V

GND

GND

On an ESP32 DevKit, use a hardware port instead: TX into GPIO 16 and Serial2.begin(9600, SERIAL_8N1, 16, 17).

Hold the button

This is the simulator itself, running here. Click anything to open it in the editor.

Open this project in the editor Read the full tutorial

Reading the module, from the GPS position sketch

How it is modeled

## What is true about the GPS module, NEO-6M, here

In its help article’s own words: what the simulation gets right, and where it stops.

### Not modeled

The radio and everything that comes from it: acquiring satellites, the half
minute a cold start really takes (here the fix is there at the first second), a
stationary fix wandering by a few meters, multipath, the backup battery. Commands
on RX (UBX or $PUBX) change nothing, so the rate cannot be changed from a
sketch. The geoid separation is always 0.0.

From NEO-6M GPS module, in full.

Projects

## See the GPS module, NEO-6M in a project

3 built-in projects use it. Each opens in the editor, already wired.

Lessons

## Where it turns up in a lesson

2 lessons place it in their own circuits.

### Learn articles

2 lessons

- Arduino SD Card Module: A GPS Data Logger
- Arduino NEO-6M GPS: Wiring, TinyGPS++ and Code

Boards

## The boards it is shown on

Each of these 2 boards has a built-in project with the GPS module, NEO-6M in it.

- Arduino Uno R3
- Arduino Mega 2560

Libraries

## Arduino libraries for the GPS module, NEO-6M

Built in, so the sketch compiles with nothing to install. Each page has the calls, the wiring and an example to run.

- SoftwareSerial
- TinyGPSPlus
- TinyGPS
- Adafruit GPS Library
- AltSoftSerial

More parts

## The rest of the bench

Every one of these is drawn and simulated the same way.

Full-size breadboard

A real 0.1 inch grid with the rails and the center channel, 63 columns wide.

Jumper wires

Drag from any pin or hole to any other. Corners snap, and you can drag them.

Power

A supply rail at the voltage you choose.

Ground

The other end of every circuit.

LED

Lights when current flows. Five colors, and the brightness is what your eye would see.

Filament lamp

A tungsten bulb in a holder: an inrush when it is switched on cold, tens of milliseconds to warm up, and dim on half its voltage.

Resistor

Any value you like, with the color bands drawn to match.

ESP32-C3-DevKitM-1

A RISC-V board that runs your firmware at 160 MHz on the real memory map.

Pushbutton

A 12 mm tactile switch. Hold it while the simulation runs.

Raspberry Pi Pico

The RP2040 board on our own Cortex-M0+ core. Pick a program and press Run.

Raspberry Pi Pico W

Raspberry Pi Pico W (RP2040). The same board and the same pinout as a Pico, with the CYW43439 on it. The WiFi is simulated (no radio; real internet through the Cloud panel’s switch), and the on-board LED, which hangs off that chip rather than off GP25, is driven through the same path. Everything else is the Pico.

Raspberry Pi 4 Model B

Raspberry Pi 4 Model B: the 40-pin header, driven by main.py with RPi.GPIO or gpiozero.

See every part

## Wire up the GPS module, NEO-6M

Open the editor and push it into the breadboard. It is free, and it runs on your own machine.

Start building free Open the editor
