Entry and exit coordinates. From your dive computer.
The Shearwater Swift AI records GPS coordinates at the start and end of every dive. Nobody else extracts them. DeepSix Dive Log does — from the binary dive computer data, automatically, on every BLE import. Your dive site is where you actually dived.
"Buried in binary. Ignored by everything else."
The Shearwater Swift AI transmitter locks a GPS fix before you descend and again when you surface. Those coordinates are stored in the compressed binary memory of your dive computer — entry latitude, entry longitude, exit latitude, exit longitude.
MacDive never extracted them. Subsurface didn't. The Shearwater app shows them on-screen but doesn't export them to your log. Every third-party app that imported your Shearwater dives threw that data away.
DeepSix extracts both coordinates on every BLE import. They're written to your dive site, displayed on the map, and used to geolocate every matched photo.
Opening Record 9 (0x19) → entry GPS
Closing Record 9 (0x29) → exit GPS
Decompressed from LRE+XOR packed binary.
Precision: ~1.1m (coordinates / 100,000).
Requires: Shearwater Swift AI · log version ≥ 17.
Validity: GNSS status byte — 2D/3D satellite fix only.
No fix, no geotag. A bad fix never places your dive. A Python script. Released free. This is what it became.
Before DeepSix existed, there was a 138-line Python script. It read MacDive's SQLite database, decompressed the Shearwater binary format, extracted the GPS coordinates, and wrote them back into the dive site record.
It's MIT licensed. It's on GitHub. It works without any app, any account, or any network connection. If you run MacDive and want your GPS back, it still works today.
DeepSix is what happened when that script turned into a question: what else is in the data that nobody's looking at?
The story since: Shearwater entry and exit GPS extraction is now supported by libdivecomputer itself — the open-source library the whole dive-log ecosystem builds on. We shared our extraction work with the project; the maintainer built the upstream support his own way, which is exactly how it should work. DeepSix Dive Log is retiring its own routines in favor of that shared implementation — the same code path every other app can now adopt.
We were the first dive log to put both coordinates on the map — and we're glad not to stay the only one. More apps reading GPS means fewer divers losing track of where they went in — and now where they came out.
Not just where you were. Where you went in. Where you came out.
Most dive logs have a single point — the dive site pin, placed by hand or reverse-geocoded from a vague GPS.
DeepSix places two: where you entered the water and where you surfaced. On a drift dive those can be hundreds of meters apart. On a wreck dive they confirm you found the shot line. On a liveaboard dive they tell you which end of the reef you were on.
Both coordinates are shown on the dive map. Both are used to interpolate GPS position for every matched photo. Both are exported in UDDF with the deepsix: namespace extension.
Dive #153 — Komodo National Park, Indonesia. 21.5m, 54 minutes. Orange pin: entry. Red pin: exit. ACA reef polygon in teal — the coordinates placed this dive on the correct geomorphic zone automatically. Photo markers on the profile show where each of the matched photos was taken.
GPS makes everything else better.
Your underwater photos are never geolocated — there's no GPS underwater. DeepSix interpolates position from entry/exit coordinates and writes it back to the photo in Photos.app. Your library knows where those coral photos were taken.
Allen Coral Atlas, NOAA Coral Reef Watch, and Marine Regions Gazetteer all query against the dive coordinates. The entry GPS puts you on the correct geomorphic zone — not the nearest named location 2km away.
On a drift dive, entry and exit GPS together define the traverse. The distance and bearing are computed. Logged with the dive. Shown on the map.
If you have a MacDive database with Shearwater raw data, the GPS extraction script recovers entry and exit coordinates from every historical dive — even dives from years ago. DeepSix applies the same extraction on every BLE import going forward.
Four sources. One honest answer.
The dive computer isn't the only thing on the boat that knows where you were. If you record a dive day on your Apple Watch, DeepSix matches each watch session to the dive it belongs to and stamps the watch's surface GPS onto it — stored separately from the computer's coordinates, with its own "Apple Watch" provenance row on the GPS card. A wrist fix that lands outside a site's boundary even offers a one-tap pin correction. Dives recorded by Apple's Depth app, or by any dive app that writes to Health, are read the same way — so a watch-only dive still gets its depth profile.
And your phone can track the whole dive day. Arm GPS tracking before you leave the dock and DeepSix records a breadcrumb trail in the background — no "Always" location permission, just When-In-Use with the blue indicator visible. After your dives import, dwell detection finds where the boat sat still and matches those clusters to each dive's time span, stamping phone entry and exit coordinates. Recorded tracks draw as a teal layer on every map — including macOS — auto-trim to ±30 minutes around your dives (undoable for 14 days), and sync across your devices via CloudKit.
Every source is kept separate, and the best one wins. Nothing ever overwrites anything.
Precedence: manual → computer → watch → phone
Each coordinate is stamped with its source.
A hand-placed pin beats the dive computer; the computer
beats the watch; the watch beats the phone breadcrumbs. Connect. Download. Done.
Open DeepSix. Go to Import. Your Perdix — or any other Shearwater BLE computer — is already listed if you've connected before. Tap Scan for Computers for a fresh search. Tap the computer. DeepSix downloads every dive not yet in your log, extracts GPS from each one that has it, and reports the clock offset it found.
No cable. No Mac. No MacDive. No third-party app.
Import tab. Perdix 2 remembered from last sync — S/N: A1F4F7B0, last synced Mar 6 at 6:20 PM. 40 dives on the computer. Tap to connect immediately, or Scan for Computers to discover new hardware.
Scanning for dive computers. Perdix 2 discovered — Signal: Good. Tap to begin download.
Download complete. Serial A1F4F7B0, firmware 102. Clock Offset: In sync — the Perdix 2 time matched the phone. Merge Existing BLE Duplicates handles dives already imported via MacDive.
Only tested on Perdix 2. If you dive with a different Shearwater computer, try the BLE import and let us know how it goes. Discord or [email protected].
Built on the shoulders of libdivecomputer.
The GPS extraction protocol — the binary record format, the LRE+XOR decompression, the coordinate offsets — was documented and implemented in libdivecomputer by Jef Driesen in late 2025. DeepSix contributed to validating that implementation and uses it for all Shearwater BLE imports.
libdivecomputer is free, open source, and accepts donations. It's the reason hundreds of dive computer models, from dozens of manufacturers, can talk to third-party software at all. Support the project.
Shearwater is confirmed. Others should work. Help us verify.
DeepSix uses libdivecomputer for all BLE dive computer imports. The library supports Suunto, Oceanic, Mares, Cressi, HW OSTC, Divesoft, and 40+ others. The protocol support is there. We haven't tested them all.
If you dive with a non-Shearwater computer and want to help: import a few dives and tell us what happened. What worked, what didn't, what looked wrong. Every confirmed computer is one more diver who doesn't have to use a cable.
- ✓ Entry GPS extracted from Shearwater binary (Opening Record 9, 0x19)
- ✓ Exit GPS extracted from Shearwater binary (Closing Record 9, 0x29)
- ✓ Both on BLE import — no cable, no Mac, no third-party app
- ✓ Dive site created with entry coordinates
- ✓ Both pins shown on dive map
- ✓ GPS interpolated to every matched photo
- ✓ Photos geolocated in Photos.app with interpolated coordinates
- ✓ Reef data (ACA, NOAA, Marine Regions) keyed to exact dive coordinates
- ✓ UDDF export includes entry/exit via deepsix: namespace
- ✓ Historical backfill via open-source MIT script (MacDive users)
- ✓ GNSS fix-validity gating — no satellite fix, no geotag
- ✓ Apple Watch dive-day GPS stamped onto matching dives with its own provenance
- ✓ Phone GPS dive-day tracking: breadcrumbs, dwell-based entry/exit matching, teal track layer on every map
- ✓ Four-source precedence: manual → computer → watch → phone
- ✓ Tested: Shearwater Perdix 2
- ✓ libdivecomputer attribution + donation link
- ✓ Volunteer program for non-Shearwater confirmation
Your dive computer knows where you were. Now your log does too.
- Achievements →
- AI Features →
- Apple TV →
- DeepSix Dive Log on Mac →
- Garmin FIT Import →
- Gear & Kits →
- Interactive Dive Map →
- MacDive Import →
- Marine Life ID →
- Photo Color Correction →
- Photos & Memories →
- Reef Context →
- Smart Lists →
- Suunto JSON Import →
- Tides & Conditions →
- Time Reconciliation →
- Translations →
- Trip Planner →
- Wonders →
- Wrecks →