GPS Track for Flipper Zero

May 29, 2026 · View on GitHub

GPS navigation app for Flipper Zero with breadcrumb trail recording, POI navigation, LED guidance, and area measurement. Built for Unleashed firmware.

Versions

VersionUse case
v1.0First-time setup, NMEA diagnostics, testing new GPS modules
v2.0Daily use with a working GPS module

v1.0 includes the NMEA dump tool — captures raw serial data and diagnoses baud rate issues, malformed output, or missing fix. Start here if you just got a new module.

v2.0 replaces the dump tool with area measurement (Shoelace formula, up to 30 adaptive vertices), cleans up the UI, and fixes several navigation bugs.

→ Download both from the Releases page.


Hardware

Connect any NMEA 0183 GPS module to Flipper Zero GPIO:

GPS pinFlipper Zero
VCCPin 9 (3.3V)
GNDPin 11
TXPin 14 (RX)
RXPin 13 (TX) — optional

Tested modules:

  • Quescan G10A F30 (AG3335M) — GPS/GLONASS/Galileo/BeiDou/QZSS, default 38400 baud
  • GY-NEO6MV2 (u-blox NEO-6M) — GPS only, default 9600 baud

If the module doesn't respond, use v1.0 NMEA dump to check the baud rate and signal quality before switching to v2.0.


Features

Main screen

Latitude, longitude, speed, course, altitude, satellite count, local time (UTC + timezone offset).

LED status indicators:

ColorPatternMeaning
Red1× / secNo GPS signal
Blue2× / secSignal received, no fix yet
Green1× / 3 secFix acquired

Records your path automatically: first point 1 min after fix, then every 10 min, minimum 50 m between points. Follow the trail back with a direction arrow, distance markers, and timestamps.

LED navigation:

ColorMeaning
GreenOn course (< 15° error)
YellowSlight left (15–45°)
CyanSlight right (15–45°)
MagentaFar left (45–90°)
BlueFar right (45–90°)
RedWrong direction (> 90°)
WhiteWaypoint switched

LED is off when stopped, charging, or outside navigation screens.

POI Navigation (NAV)

Save named waypoints, navigate to them with bearing, distance, and ETA. Sorts by distance on entry.

Area Measurement (v2.0)

Settings → Start area calc → walk the perimeter → Settings → OK.

  • Averages GPS coordinates over 5-second windows to reduce jitter
  • Adds a vertex every 5 ticks if moved > 2 m
  • Maintains up to 30 adaptive vertices (discards the least significant point when limit reached)
  • Displays S=XXXX m2 in real time
  • Saves polygon to area.csv on exit or reset

Settings

Speed units, baud rate, deep sleep, timezone offset (UTC±).


Long ← / →    Ring:  NORMAL ↔ NAV ↔ CRUMBS
Back           Return to NORMAL from any screen
ScreenInputAction
NORMALOKSettings
NORMALLong ↑Save HOME POI
NORMALLong ↓Save new POI
CRUMBSLong OKCrumbs menu
CRUMBS↑ / ↓Navigate waypoints
CRUMBSOKToggle total distance
NAVLong ↑Select POI from list
NAVLong ↓Enter coordinates manually
NAVOKToggle speed / ETA
NAV listLong ←Delete POI
NAV listLong →Rename POI

Building from source

pip install ufbt
py -m ufbt update --index-url=https://up.unleashedflip.com/directory.json
git clone https://github.com/xumbax/flipperzero-gps-track
cd flipperzero-gps-track
py -m ufbt

Data files

All stored at /ext/apps_data/gps_track/:

FileFormatDescription
track.csvlat,lon,HH:MMBreadcrumb trail
poi.csvicon,lat,lon,namePoints of interest
state.txtcrumbs_target,poi_targetNavigation state
settings.csvspeed_unit,tz,baud_idx,deepsleepSettings
area.csvlat,lon per lineLast measured polygon

See demo_data/ for example files including 30 major Russian cities as POI.


Credits

NMEA parsing: minmea
Based on flipperzero-gps by ezod