Everything you need to pre-run, navigate, and document off-road routes
From getting a GPX file to full audio turn callouts — the whole flow. Loading and previewing is free; running with GPS + audio callouts is Pro.
A GPX is just a text file with GPS coordinates. Any of these work:
.gpx..gpx file anywhere on the device and pick DirtOS from the share sheet..gpx file. DirtOS parses it and asks which collection to save it to — pick an existing one or create a new one (e.g., "Baja 500 2026").After loading, DirtOS asks: "Auto-detect turns?" Say Yes and it analyzes the track geometry and drops severity-coded waypoints at every significant turn. Green for gentle turns, yellow / orange for moderate, red for sharp and hairpins. Detection takes a few seconds even on a 90,000-point Baja track.
If the GPX already had race-org waypoints ("CP1", "SS 3.4", "Danger Wash"), say No and DirtOS keeps only what the file had.
<trk> or multi-<trk>). Multi-<trk> files auto-split into separate Track items in the same collection.Automatically find turns and mark them on your route
When importing a GPX file, DirtOS can analyze the track geometry and automatically place waypoints at significant turns. Turn severity is color-coded:
After detection, you can edit, move, or delete any waypoint. Your changes are saved automatically.
Detection parameters (minimum angle, separation distance, analysis window) are all adjustable in Settings. You can also customize the angle breakpoints for each severity level and choose whether waypoints are placed at the apex (sharpest point) or the entrance (start) of each turn.
Settings → Turn Detection now has two independent toggles — Detect Turn Severity (this section) and Detect Road & Trail Names (see Road & Trail Name Callouts) — turn on either, both, or neither.
Hear the name of the road or trail as it changes — like Google Maps, built for the dirt
A second, independent detection mode alongside turn severity: DirtOS reads the road and trail names along your route and marks every name change, so you hear "Turn onto Rd 1234" or "Turn onto Cave Creek Trail" as you ride — on top of, not instead of, severity callouts like "Right 3 to 5."
How to use:
When both modes are on, a severity turn that lands right next to a road-name change is suppressed so you don't hear the same spot announced twice.
Detect and call out varying-radius turns — the ones that surprise you
Not every corner is a constant-radius arc. Some tighten as you enter (decreasing-radius, the kind that catches drivers out), some open on exit. DirtOS's auto-detect analyzes the entrance, apex, and exit severity of every turn independently and classifies it into one of three types:
Two audio formats to pick from:
How to use:
Works in both standard severity mode (1–5) and Rally Pacenote Mode (1–6, inverted). The next-3 waypoints panel and map annotations render the arrow form so you can see it visually while the audio callout matches your chosen format.
Organize your routes and runs into folders
Routes appear in red, runs appear in blue. Collections also store your run logs automatically after each GPS navigation session.
Rename, restyle, add, or delete waypoints on your route
Tap any waypoint circle on the map (or use the waypoint list) to open the edit sheet. Every action persists to the GPX file immediately and syncs to Cloud if enabled.
All five actions work on both the active route AND any Show'd overlay from another collection item — edit race-org routes without loading them as your active navigation. The same menu, on the same waypoint, works identically in the web app — tap a dot there and it's the same rename/icon/color/move/delete sheet, saved back to the exact same route file.
Waypoint Manager: Three-dot menu on any collection item → Waypoints opens a full searchable list. Each row has a popup menu for Change icon and Change color, plus quick actions for Rename, Delete, Go To, and Fly-to-on-map. The row's leading circle previews the picked icon + color so you can see the change immediately.
Reposition a waypoint to a new location on the route
The waypoint's mile marker is recalculated automatically based on the new position on the track.
↑ Back to topTwo-way sync of routes, collections, and settings across your devices
When Cloud Sync is on, every route, collection, and setting is synced through Firebase to every signed-in Pro device on your account. Changes appear in real time. Item-level merge uses last-write-wins so the most recent edit always wins.
Deletes are soft — deleted items go to a Trash list at the bottom of the Collections tab. From there you can restore or permanently remove them.
How to use:
Requires Pro and a signed-in account.
↑ Back to topFollow your route in real-time with turn-by-turn guidance
Your driven track (with speed, timestamps, and checkpoint data) is automatically saved to the collection as a "Run" item when you stop.
Three customizable data circles at the bottom of follow mode
The bottom of the Run Mode screen has three independent circles. Each one can show whichever data type matters to you, and each has its own size.
Available data types per circle:
How to use:
Hear upcoming turns through your speakers
During a run, DirtOS uses text-to-speech to announce each waypoint as you approach it. The callout includes the waypoint label and distance (e.g. "L 3 in 500 feet").
Choose between three callout trigger modes in Settings → Navigation:
Audio ducks any other audio playing through your device (music, podcasts, phone calls) so the callout is always audible, then restores it after.
You can pick the exact TTS voice — not just a language — along with speech rate, under Settings → Navigation → Voice. Translation into 28 languages runs fully on-device — see 28-Language Audio Callouts. For approach-distance numbers spoken as you close in on a waypoint, see Countdown Distance Callouts.
Each waypoint is only announced once per run session. Audio callouts can be toggled on/off in Settings.
Close-together waypoints chain into one call. Rather than talking over itself on a tight sequence, DirtOS combines them — "Ruts in 150 feet, then Danger" — so you get the whole picture in a single sentence.
Short Numbers (Settings → Navigation) reads distances digit by digit for radio-style clarity: 290 becomes "two nine zero" rather than "two hundred ninety". It flows through the translator too, so non-English voices speak native digits.
↑ Back to topSpeak distance numbers as you close in on a waypoint
Countdown callouts speak the remaining distance to the next waypoint at each step in a configurable list (e.g. "500, 400, 300, 200, 100, 50"). This is on top of the standard waypoint callout.
How to use:
Translated audio callouts in 28 languages, fully offline
DirtOS uses on-device Google ML Kit translation to translate every callout into your chosen language. After the language model downloads the first time, translation runs entirely offline.
You can also pick the TTS voice and speech rate independently of the language.
How to use:
The first time you pick a new language the model downloads in the background. After that it works without internet.
Translation runs on your phone's own engine. On iOS 18+ and Android 12+, DirtOS uses the operating system's built-in translator, so a course marked up in English is spoken natively in your language — offline, with no account and nothing sent to a server.
If a language pack still needs downloading, the app tells you instead of going quiet on you.
↑ Back to topAudio + visual alert when you drift off the route
DirtOS monitors your distance from the loaded route during navigation. When you drift further than the configured threshold, an audio warning plays and a red line draws from your position to the exact point on the route the distance was measured to.
That distance is measured perpendicular to the route segment you're nearest, not to the closest recorded track point. On a coarsely sampled course — recorded points can sit hundreds of metres apart on a fast section — measuring to the nearest point would rise and fall as you drove straight down the middle of the trail, and warn you off course while you were dead on it. It's off course, not off point.
You can optionally have the warning repeat about every 10 seconds for as long as you remain off-course.
How to use:
Waypoints that define speed-limited segments along your route
Speed Zones use specially-named waypoints to mark sections where a speed limit applies. The defaults are SZ to start a zone and SZ END to end it, but the keywords are configurable.
To set the limit, put the number in the waypoint label: a waypoint named SZ 35 starts a 35 mph zone. DirtOS can optionally play an over-speed audio alert when you exceed the zone's limit.
How to use:
SZ 25, then SZ END where the zone finishes)Limits are read from the number attached to "MPH". A waypoint named SZ1 BEGIN 25MPH is a 25 mph zone — the zone number is not mistaken for the limit. Labels without "MPH" fall back to the first number in the name, exactly as before.
Matching another organiser's file. The keywords are configurable because organisers name things differently. Legacy Racing and Dirt Rebelution files, for example, use SZ1 BEGIN 25MPH and SZ1 END — so set the start keyword to BEGIN and the end keyword to END. The defaults (SZ / SZ END) will not match those end markers.
Classic 1–6 rally pacenote severity scale
Rally Pacenote Mode swaps the standard 5-level turn severity system for the 1–6 scale used in classic rally pacenotes, where 1 is the tightest turn and 6 is nearly straight. The pacenote number is spoken in audio callouts.
How to use:
When enabled, all turn detection and callouts use the 1–6 scale instead of the standard severity labels.
↑ Back to topDrop labeled waypoints instantly during a run or recording
Quick Keys is an on-screen grid of 14 buttons plus Undo that lets you drop a waypoint at your current GPS location with a single tap. The grid overlays the map — the map stays live underneath, so navigation and recording continue while it's open.
Each of the 14 on-screen slots is configurable from the full 53-icon library across 7 categories (Terrain, Elevation, Man-made, Navigation, Race, Safety, General). You can change the label, icon, and Bluetooth keyboard binding for each slot. See Waypoint Icon Library.
To customize: go to Settings → Quick Keys, or tap the gear icon inside Quick Keys.
Drop a custom-named waypoint anywhere on the map without stopping
While a Run is active, unlock the map (padlock icon in the top bar) and long-press anywhere on the satellite view. A prompt lets you name the waypoint before dropping it. Use it for anything Quick Keys doesn't cover: a specific gate combination, a landmark you want to remember, a pit stop, an unmarked hazard.
The waypoint appears as a white pin with a gold ring — distinct from your route waypoints so you know which are pre-planned vs. added mid-run. All long-press drops merge into the active route on the next Run reload or loop wrap, ready for full turn-by-turn audio the next lap.
The waypoint goes on the route you actually pressed on. With more than one route shown, DirtOS works out which line your finger landed nearest and adds the waypoint to that one — and tells you which route it picked before you type the name, so there is no guessing and no silent mistake.
Nothing loaded? It still keeps the waypoint. A long-press with no route open saves into a persistent Global collection instead of being discarded, so a mark you drop while looking around is still there later.
↑ Back to top53 categorized off-road icons for Quick Keys and any waypoint
DirtOS ships with a library of 53 off-road waypoint icons across 7 categories:
The same library is used to fill the 14 on-screen Quick Keys slots and to label any waypoint on your route. You can also import your own 128×128 PNG icons.
How to use:
Use a Bluetooth keyboard to drop waypoints hands-free
Connect a Bluetooth keyboard to your device for hands-free waypoint entry during a run. Each Quick Key button is mapped to a keyboard shortcut.
Keyboard shortcuts work from the main map view during a run — you do not need to have Quick Keys open on screen.
To customize shortcuts: go to Settings → Quick Keys, tap any key, then tap "Set Shortcut" and press the desired key on your Bluetooth keyboard.
Full-screen alerts when you approach key checkpoints
Configure up to two checkpoint types with custom labels and proximity radii. When you drive within range of a matching waypoint during a run, a large full-screen alert overlay appears.
Each checkpoint has a 60-second cooldown to prevent repeated triggers. Triggered checkpoints are recorded in your run log with timestamps.
↑ Back to topReview detailed stats from your recorded runs
The stats page shows:
All values respect your Imperial/Metric preference in Settings.
↑ Back to topAutomatic lap count when you're running a closed loop
When Loop Mode is on, DirtOS detects each time you complete the route and increments a lap counter. The current lap count is available as a data type for any of the three Run Display Circles, and it's also recorded in Run Statistics.
How to use:
Pan and edit the map without stopping your run
During a run, the map is locked to follow your GPS position and all touch gestures are disabled. To temporarily unlock it:
Lock the zoom level during runs instead of speed-based auto-zoom
When enabled, the map stays at your chosen zoom level during the entire run regardless of speed.
↑ Back to topResize on-screen elements to match your preferences
Use sliders in Settings to adjust the size of on-screen elements during a run:
All sizes are saved and persist across sessions. Waypoint circle and label size changes take effect immediately on the map when you save settings.
↑ Back to topCamera automatically adjusts zoom based on your driving speed
When Fixed Zoom is off (the default), the camera zooms in at low speeds for precision and zooms out at high speeds to see further ahead.
Four speed zones with customizable zoom ranges:
Customize the zoom level for each zone — and the speed breakpoints between them — in Settings → Navigation Display → Zoom (Run Mode) using the 4-handle slider. See Speed-Based Zoom Guide for details.
Zoom levels are limited to the 13–17 range. Tighter than 17 is too close for real off-road driving, especially with camera tilt; wider than 13 and you cannot see where you are going. Outside a Run you can still zoom freely with map gestures.
↑ Back to topPreview your route with a cinematic camera animation
Flyover speed is adjustable in Settings (shown in your preferred units).
↑ Back to topPreview any saved route's flyover without changing your active route
You can launch the 3D flyover for any route directly from the Collections list. This is preview-only — it doesn't change which route is loaded as your active route, so you can scout multiple routes back-to-back without losing your current setup.
How to use:
Remove unwanted portions of a route
After deleting, a 15-second Undo option appears to restore the section if needed.
Connect disconnected route segments using road routing
Turns are auto-detected in the new connecting section. A 15-second Undo option appears after connecting.
↑ Back to topCreate a new route by placing waypoints on the map
Build Route lets you create a route from scratch by tapping waypoints on the map. The app automatically connects them using road routing or straight lines.
If you already have a route loaded, you'll be asked whether to replace the existing route or add the new route to it. Turns are auto-detected on the new route.
↑ Back to topDirtOS's own GraphHopper engine, tuned for off-road
When you use Build Route, Connect Mode, or Trail Finder in "Roads" mode, the request goes to DirtOS's own GraphHopper instance at routing.prerun.io. The engine builds a custom routing model on every request based on your Route Preferences — vehicle type, offroad slider, trail class, surface, and seasonal availability.
OHV trails included. Dirt-bike, ATV, and UTV trails from USFS MVUM, BLM GTLF, and state OHV datasets across the US are in the routing graph. Set your Vehicle Type in Route Preferences to Dirt Bike, ATV/Quad, UTV, or Full-Size 4x4 and Build Route respects what your rig can use. The graph covers ~91M nodes and ~116M edges across the continental US.
Per-request custom routing model. Every route request builds a fresh custom model from your Route Preferences and posts it to the engine. Nine custom encoded values baked into the graph (prerun_source, prerun_dirt_bike, prerun_atv, prerun_utv_50, prerun_full_size, prerun_trail_class, prerun_maint_level, prerun_seasonal, prerun_ohv_designation) let the engine filter trails at the routing level, not just by post-processing. Change your Vehicle Type from Dirt Bike to Full-Size and the same start/end points can return a completely different route.
Fallback to Mapbox Directions. If DirtOS's engine is unreachable, the app falls back to Mapbox Directions so routing still works.
This is automatic — there's no separate setting. To tune what the engine prefers and avoids, edit Route Preferences.
↑ Back to topCreate a reversed copy of a route for driving in the opposite direction
The reversed route is saved as a new item in the same collection. Auto-detected turn waypoints are recalculated for the new direction. User-placed waypoints (from Quick Keys, long-press, etc.) are preserved at their original locations.
↑ Back to topPull waypoints from another route into your active route
When a friend shares a GPX with waypoints (notes, hazards, checkpoints), you can merge their waypoints into your own route.
Duplicate waypoints (same label within 50 meters) are automatically skipped.
↑ Back to topCombine multiple route / track / run items into a single new item
Merge Waypoints pulls other-item waypoints INTO an existing item. Merge Items goes a step further: it combines multiple ITEMS (their tracks, waypoints, and everything else) into a brand-new item, in a single tap.
Great for stitching a multi-day trip into a single continuous route, joining scattered ATV / dirt-bike Track items from a race organizer's multi-stage GPX, or combining your own Run recordings from different sessions into one long log.
Download satellite map tiles for use without internet
After loading a route, DirtOS offers to download the surrounding satellite map tiles for offline use.
Downloads follow your route, not a box around it. DirtOS builds a 500 m-wide corridor — 250 m either side of the track — and downloads only that. A box around a long point-to-point course covers enormous areas you will never see; on a Baja-scale route the difference is gigabytes.
You choose the detail level, with real sizes up front:
Each option shows its real estimated size from Mapbox before you commit, and your last choice is remembered for next time.
Zoom protection. During a Run, if you go offline (or lose usable cell), DirtOS caps the camera's maximum zoom at exactly what you downloaded, so you never zoom past your cached tiles and stare at a white map at 60 mph.
Managing downloads. Settings → Storage lists every downloaded region with its size in MB. Delete individual regions or all offline maps in one tap. A warning fires if a download would take more than 50% of your free disk space.
↑ Back to topPolygon-based offline map download for an area you draw
Region Download lets you draw a polygon on the map for the exact area you want offline. Route overlays render on top of the polygon as you draw, so you can see what you're going to capture before committing. Then the area is downloaded as a cached map region.
How to use:
Save your route with all waypoints as a GPX file
Exported GPX files are compatible with any standard GPS app or device.
↑ Back to topCreate routes by driving them — no GPX file needed
Record Mode lets you build a route from scratch by driving the course while recording your GPS track and dropping waypoints along the way. Perfect for route makers and race organizers scouting new courses.
The recorded route is saved as a standard route item in your collection. You can immediately run it, share it, edit waypoints, or use any other route feature.
Automatic GPS recording of every run
Every time you end a run, DirtOS automatically saves a detailed track log to your active collection as a "Run" item (hidden by default). The log includes:
Run logs can be exported as GPX files and viewed with the Stats option in the three-dot menu.
↑ Back to topJump the camera to your current GPS location
Tap the "Find Me" button in the bottom controls row on the Map tab. The camera flies to your current GPS position.
For a heading-up follow camera (no navigation, no audio, gestures locked) double-tap Find Me — see Find Me Chase Cam.
↑ Back to topHeading-up follow camera with no navigation
Chase Cam locks the camera to your position and rotates the map to your heading. It's pure camera follow — no navigation, no audio callouts, no run display circles. While moving, the map rotates to your GPS heading; when stopped, it rotates to your device compass heading.
Map gestures are locked while Chase Cam is active.
How to use:
See your crew's live position on the map during rides
Works over cell, wifi, or Meshtastic LoRa mesh radios for fully offline group tracking. Pair a Meshtastic device in Settings to enable mesh relay. Devices with both mesh and internet automatically bridge positions between online and offline riders.
Your group's code is now persistent across sessions. Start a group once with a friendly name (e.g., "Baja 500 Recon Team") and everyone in your crew re-joins the same code every day — no re-sharing needed. Multi-day trips just work. Tap "Generate New Group" only when you actually want to rotate the code.
When you Start a group you can flip a Public toggle. Public groups are discoverable by anyone on the Join Group screen — useful for organized rides, race events, or spectators watching the leaders. The discovery list shows the group name, creator, member count, and how far away they are. Turn Public off to make the group private again.
Recent groups you've joined are remembered locally so re-joining a friend's ride tomorrow is a one-tap dropdown selection.
Text messages to your crew, without leaving the map
Every live group has a chat channel. Tap the chat FAB in the top bar to open the chat sheet, type a message, tap send. Messages arrive on every member's phone in real time, persist across app restarts, and survive if a rider drops out and rejoins later. Delivery is via Firebase Realtime Database with offline persistence — messages queued while offline flush automatically when reception returns.
New-message behavior while the sheet is closed:
Own messages never re-play back to you (deduped by user id). Chat history loads on join so latecomers can catch up on the conversation.
Quick Replies. Configure short canned replies (Settings → Group Ride → Quick Replies) — "OK", "Waiting for you", "Stopped for gas" — tap once to send without typing.
Push-to-talk voice comms to your group, over cell — with hardware button support
Beyond text chat, DirtOS supports voice messages sent from any group member to everyone in the group. Recording is triggered by an on-screen mic button OR by a paired Bluetooth PTT hardware button on the handlebar.
How a voice message flows:
TTS coordination. Voice message playback is coordinated with turn callouts, weather alerts, and Tour Mode — if a safety-critical waypoint callout is speaking, incoming voice messages queue and play in order after the callout finishes. No message ever cuts off a turn announcement.
Native audio path. The record-start chirp plays through a native AVAudioPlayer (iOS) / SoundPool (Android) that inherits the app's shared audio session — no clash with flutter_tts, no dropouts across BT intercoms.
Hardware button support. DirtOS pairs with any Zello-compatible Bluetooth PTT button (Herda, PTT-Z, iasus, etc.) via BLE. Once paired the button works while the app is backgrounded and while your phone is locked. Configure pairing in Settings → General → Bluetooth PTT Button — scan, tap to pair, done.
Tested devices: Herda PTT, PTT-Z. Any BLE button implementing the Zello Hardware Partner spec should work; the pairing UI lists every discovered peripheral so unrecognized buttons can be manually tried.
A separate web dashboard at dirtos.io/org for organizers running an event
DirtOS is a two-sided platform: the driver app on one side, the Race Organizer Portal on the other. Race directors publish a course, riders join by code (or by tapping an invite link), and the organizer watches the field in real time from a browser.
dirtos.io/group/CODE) to distribute to ridersWhen a rider joins a race-organizer group, DirtOS automatically:
The organizer copies https://dirtos.io/group/ABCDEF and drops it into a group text or Discord. A rider taps the link:
Course changes (rain closures, safety re-routes) upload the new GPX from the portal. Riders currently in the group automatically re-import on their next Follow Mode start or app foreground — no re-issuing codes or asking riders to re-download by hand.
Organizer taps End Event, riders' live sharing stops, the route is purged, chat history is cleared, and the group discovery listing goes inactive. Clean shutdown.
Launch customer: NORRA Safari Class 2026.
Rider positions stream through DirtOS Live, our own tracking service, rather than going through general-purpose infrastructure — which is what makes a full field practical rather than eye-wateringly expensive. Firebase remains an automatic fallback: if the service goes quiet, positions keep flowing and the portal shows a stale-data banner rather than pretending everything is fine.
Click any rider to load their driven track as a growing line on the map.
After the event, browse it back: replay the field, inspect individual riders, and download any rider's driven track as GPX. Event data is retained for 30 days.
Alongside broadcasts to the whole field, organisers can message an individual rider privately from the portal.
↑ Back to topOffline group tracking via long-range radio mesh
DirtOS integrates with Meshtastic LoRa radios for group location sharing that works without cell service or wifi. Each rider pairs a small, inexpensive radio (~$40) to their phone via Bluetooth. Positions are relayed over the LoRa mesh network with a typical range of 3–6 miles between nodes.
If a rider has both a mesh radio and cell/wifi, their phone automatically bridges positions between the mesh and Firebase. This means online riders can see offline mesh riders and vice versa — no manual configuration needed.
Any Meshtastic-compatible device should work. The radio's onboard GPS is not used — DirtOS sends the phone's GPS position directly over the mesh for higher accuracy and faster updates.
See USFS and BLM trails on the satellite map
DirtOS overlays forest service and BLM trails directly on the satellite imagery. Filter by vehicle type to show only trails rated for your rig:
Toggle POI markers on or off to see trailheads, campgrounds, and other points of interest. The overlay is enabled by default and can be configured in Settings → Map Overlays.
Every geotagged photo you've taken, pinned to the map
Toggle Show My Photos in Settings → Map Overlays and every geotagged photo from your device library appears as a clustered pin on the satellite map. Tap any pin to view the photo.
As you take new photos during a trip, they automatically appear as pins — no need to import, tag, or manually add anything. Ideal for prerunning: photograph obstacles, gate combinations, campsite spots, and scenic overlooks, then see the whole trip mapped after the fact.
Photos never leave your device. DirtOS only reads the GPS coordinates and thumbnails from your library; full-resolution photos load only when you tap a pin. The feature is entirely opt-in.
Live NEXRAD radar overlay on the map
Toggle Weather Radar in Settings → Map Overlays to overlay live NEXRAD reflectivity tiles from the Iowa Environmental Mesonet directly on the satellite map. Storm cells, precipitation bands, and organized weather show up in real time.
Radar is semi-transparent so you can still see the underlying trails and roads. Coverage is continental US. Data is free, no auth needed — DirtOS pulls tiles directly from the public feed.
Automatic voice alerts for forecast, severe weather, and incoming precipitation
Toggle Weather Callouts in Settings → Navigation. When on, DirtOS uses the National Weather Service API to announce weather along your route:
US-only (NWS coverage). Silent-fails outside US or without network. Automatically off when Audio Callouts is off.
Route to any destination — place, coordinate, group member, or a waypoint
Tap any destination and DirtOS builds a route + starts follow mode. Sources include:
Every Go To saves the destination as a one-waypoint route to your current collection (or a synthetic "GoTo" collection if none is active). Auto-Detect Turns fires after the route is fetched so you get real turn-by-turn callouts.
Automatic gas-stop insertion for routes longer than your rig's fuel range
Set your Fuel Range in Settings → Route Preferences. When you build a route (via Go To or Build Route) that exceeds it, DirtOS offers to add gas stops along the way.
The gas-stop finder iterates: it searches for a station about 70% of a tank past the last anchor, adds it as a via-point, re-routes through it, and repeats until the last leg fits in your fuel range. Works for multi-tank routes — a 900-mile route with a 200-mile fuel range gets four gas stops added automatically.
Each stop is added to your route as a waypoint labeled with a fuel-pump emoji plus the station name, so audio callouts announce them like any other waypoint.
DirtOS becomes your tour guide — automatic Wikipedia landmarks as you drive
Toggle Tour Mode in Settings → Navigation. Every 30 seconds while in follow mode, DirtOS queries Wikipedia for geo-tagged articles near your position. When it finds one within 1000 meters that you haven't heard yet, it speaks the article title and the first sentence over your audio.
Historic buildings, geographic features, national parks, notable events, small-town backstories — anything with a Wikipedia article and a location. Rate-limited to at most one callout every 90 seconds so you're never flooded. Each article is tracked so it never repeats on the same run.
Works alongside turn callouts, weather alerts, and speed zone alerts. Requires network. Automatically off when Audio Callouts is off.
Aggregate stats across every run in every collection
Tap the Stats card at the top of Settings for an at-a-glance view of your DirtOS history:
Respects your unit setting (Miles or Kilometers). Pure aggregation over your local run history — no backend calls, no data sent anywhere.
↑ Back to topList every overlay trail currently visible on screen
Trail Discovery gives you a list view of all the overlay trails that are inside the map's current viewport. It's a fast way to spot named trails you didn't know about in the area you're looking at.
How to use:
Find hidden treasures on the map
Pro users see treasure icons scattered across the map. Tap a treasure to reveal a hint about its location. Treasures are cached for offline discovery so you can hunt even without cell service.
↑ Back to topProximity circles around your position during navigation
Range rings draw configurable distance circles around your live position during GPS navigation. Use them for proximity awareness during rally stages or to gauge distance to upcoming features. Configure ring distances in Settings → Navigation → Range Rings.
↑ Back to topCustomize the track color for each route
Each route in your collection can have its own color. Tap the three-dot menu on any route item and select "Color" to choose a custom track color. This makes it easy to distinguish overlapping routes on the map.
↑ Back to topExport routes for Lowrance GPS units
Export any route as a Lowrance USR v4 file with full waypoint colors. Use the three-dot menu on a route item → "Share / Export" → "Export USR (Lowrance)". The file can be imported directly to any Lowrance GPS unit.
↑ Back to topControl how Build Route and Connect Mode calculate routes
DirtOS uses a custom off-road routing engine with preferences you can tune for your vehicle and riding style. Go to Settings → Route Preferences to configure:
These preferences apply whenever you use Build Route or Connect Mode with "Roads" routing. They do not affect "Direct" (straight line) mode.
Multi-stage GPX from a race organiser, imported the way it was authored
Race organisers publish a whole event as one GPX with several tracks in it — one per stage or loop. DirtOS imports each track as its own runnable item, keeping the name the organiser gave it, so you pick the stage you're about to drive instead of one enormous merged line with broken distances.
Waypoints that sit at the top of the file — pits, checkpoints, hazards, the things that apply to the whole event — become collection waypoints, shared across every stage in that collection. They show on the map before you run anything, and you can rename, recolour, re-icon or delete any of them with a tap. Deleting one removes it from every stage's view, because there is only one of it.
During a run, collection waypoints within 300 m of the stage you're driving are announced like any other waypoint. Ones further out still draw on the map as context.
↑ Back to topVendor GPX dialects that used to import empty or unnamed
Not every tool writes GPX the same way, and two common ones used to lose information on import.
LeadNav exports a course as a route rather than a track, with the curated callouts as named route points. Those names are the whole point of the file — and they used to vanish. Now every named route point becomes a callout waypoint with its icon, announced during your run exactly as the course designer wrote it, word for word.
ExpertGPS omits the ordinary track name field and hides the real name in an extension. Rather than importing a pile of "Track 1, Track 2, Track 3", DirtOS follows the chain and finds the name the author actually gave each track.
↑ Back to topWhat a route shows is what it exports, and what your co-driver receives
A waypoint belongs to the route it sits on. That sounds obvious, and it now holds everywhere it matters: what a stage displays is what it exports, and what it exports is what the person you share it with receives. No invisible extras, no silently missing marks.
Anything genuinely off the course gets its own item you can see, rename, merge or delete like any other. Older imports get that item too, so leftovers from before this change are finally reachable instead of sitting somewhere you cannot open.
↑ Back to topName, date added, or last modified — including in the pickers
Sort a collection by name, when it was added, or when it was last modified. The pickers sort too, so choosing a route to merge into or move something onto is not a hunt through an arbitrary order.
Sorting by name understands numbers the way you do: Stage 2 comes before Stage 10, not after it.
↑ Back to topSend a trail you found or recorded back into the trail map
Found or recorded a trail worth having? Send it in from any route, track or run's menu — name it, rate the difficulty from 1 to 10, and tag the largest vehicle that fits down it.
Submissions feed the trail database everyone else navigates on. The vehicle and difficulty tags use the same vocabulary as the trail overlay filters, so what you send classifies straight into the map.
↑ Back to topTurn the tablet sideways for dash mounts and wide screens
Rotate to landscape and the navigation display rearranges to use the shape: the next-three-waypoints panel moves from the bottom bar to the left edge, the run circles shift, and the map keeps the centre.
The follow camera accounts for the panel, so your position stays centred in the part of the screen you can actually see rather than sliding behind the overlay.
↑ Back to topSee who owns the ground you're on, nationwide
Colour-coded public land over the satellite map: BLM, Forest Service, National Parks, Fish & Wildlife, state trust land, and more. Tap any parcel for the managing agency and the unit name.
Private land is left clear, deliberately. Absence of colour means DirtOS is not claiming the land is public — it is the one answer this feature must never get wrong, so anything that cannot be positively identified as public is left uncoloured rather than guessed at.
Turn it on in Settings → Map Overlays. Coverage is the United States; nothing renders in Mexico, including Baja courses.
↑ Back to topPress, say what you see, let go — hands stay on the wheel
Press your Bluetooth PTT button when you're not in a group ride and a waypoint drops at your position and starts recording. Say what you see — "big rock left side after the wash" — and let go.
Your words become the waypoint's name, and the recording stays attached, so you can play back exactly what you said when the transcription doesn't quite capture it.
It runs entirely on the phone, so it works with no signal at all, on both iPhone and Android. It listens in the language you set for audio callouts — not whatever your phone's system language happens to be, which matters if you navigate in one language and live in another.
↑ Back to topA read-only view at dirtos.io/chase for the crew waiting at the next pit
Chase Ops is a web page for the people meeting the racer, not driving. Open dirtos.io/chase, enter the group code, load the course, and watch the field move with an ETA to your position and to any pit you drop on the map.
The chase crew never broadcasts a location. The page reads positions; it has no path to send one. Your spot at the pits is used to compute your own ETAs, in your browser, and goes nowhere else.
Riders who drop out of coverage are reported as No signal with their last known ETA greyed and ageing, rather than being shown as stopped. A rider doing 40 mph through a dead zone is not parked, and the page will not tell you they are.
Needs no app install and no account.
↑ Back to topThe limit on screen, red when you're over it
Inside a speed-restricted zone, the limit appears as a regulatory-style sign near the top of the screen. The number turns red the moment you exceed it, so the check is a glance rather than a calculation.
Respects your units setting, and steps aside for the compass in landscape.
↑ Back to topUnderstanding the two types of items in your collections
Every item in a collection is either a Route or a Run:
Routes are for planning. Runs are the history of what you actually drove. Both are stored as GPX files and can be exported or shared.
Using DirtOS without cell service
DirtOS is built for remote areas with no cell coverage. Here's what works offline and what doesn't:
How to start your free trial and unlock all features
When you tap a Pro feature, DirtOS shows an upgrade dialog. The upgrade flow depends on your platform:
iOS also shows a "Restore Purchases" button if you've previously subscribed on another device.
Both platforms cost $49.99/year after the 14-day trial. You can cancel anytime during the trial and won't be charged.
↑ Back to topThe difference between the two buttons on collection items
Each route item in a collection has two controls that do different things:
If a route is already active (loaded for navigation), the Show toggle controls whether the track line and waypoints are visible on the map without reloading.
The directional arrow during GPS navigation
During Follow Mode, a red arrow appears at the bottom-left of the screen. This is the waypoint pointer — it always points in the direction of the next upcoming waypoint relative to your current heading.
The pointer is especially useful when driving off-route or when the map is zoomed in too far to see the next waypoint. The arrow size can be adjusted in Settings → Navigation Display.
↑ Back to topHow the 4-zone speed-adaptive zoom slider works
Speed-based zoom automatically adjusts the map zoom level during navigation based on how fast you're driving. When you're moving slowly (crawling over rocks), the map zooms in tight. At high speed, it zooms out so you can see further ahead.
The zoom is configured with a 4-handle slider in Settings → Navigation Display → Zoom (Run Mode) when Fixed Zoom is off. Here's how it works:
Drag the handles to set the speed breakpoints where the zoom changes. The zoom level transitions smoothly between zones so there's no jarring jump when you speed up or slow down.
All four handles are limited to the 13–17 zoom range. If you have settings from an older version that fell outside it, they are clamped into range on load rather than leaving a handle stranded off the end of the slider.
↑ Back to topTailor DirtOS to your workflow
Tap the gear icon in the Map tab top bar to open Settings. Settings is organized into 7 sub-pages:
Configure Quick Keys and pair a Meshtastic radio are accessible from the main Settings menu.
↑ Back to topUnlock GPS navigation and advanced features
DirtOS Pro ($49.99/year) unlocks:
Free features (no account needed): GPX import, auto-detect turns, 3D flyover preview, flyover preview from collections, waypoint editing, route colors, reverse route, merge waypoints, GPX export, Find Me, Find Me Chase Cam.
↑ Back to top