🎉 Submersion v1.5.9.113 Release Notes
v1.5.9's centerpiece is full support for a single dive logged by more than one dive computer that lets you import from every unit you carried on a dive, consolidate them into one dive, and switch between (or overlay) each computer's data on a new sources bar. Alongside that, this release sharpens Submersion's decompression modeling for technical divers, adds Dropbox as a cloud-sync option, rebuilds the fullscreen dive profile into something more useful, and brings a wave of new logging features: custom dive names, photos pinned to your profile, buddy credentials, upcoming-trip checklists, and a fully filterable Statistics tab. Under the hood, syncing a large library is faster and no longer runs out of memory on phones.
✨ New and improved
One dive, logged by many computers
If you dive with more than one computer (ie. a primary and one or more backups), Submersion can now treat data from all of them as one dive instead of duplicates:
- Consolidate on import. Download from every computer you wore and Submersion folds them into a single dive that keeps everything each unit recorded: full depth profiles, tanks, transmitter pressure curves, events, and per-computer summary stats. High-confidence matches arrive with Consolidate pre-selected, and re-downloading a computer that's already folded in is detected and set to Skip so nothing duplicates.
- Compare computers side by side. A new Data Sources grid on the dive detail page lays out each computer's max/avg depth, duration, temperature, CNS, OTU, deco algorithm, and gradient factors next to each other, in your units.
- Follow one source at a time. A SOURCES bar lets you choose which computer's data drives the page, and every profile line and every derived card (stat chips, Deco Status, Tissue Loading) follows the active source. You can also overlay the other computers on the chart, each in its own color, to compare depth, temperature, computer-reported ceiling/NDL, events, and tank pressures.
- Split back apart. Consolidated the wrong dives, or want a source on its own? "Split into separate dive" moves that source's profile, events, and tanks to a fresh dive, and Unlink/Undo reverse a consolidation cleanly. All of this is sync-safe and verified with a real two-device round-trip so a removed computer doesn't reappear on your other devices.
Computers are now labeled with your own friendly name (for example "My Perdix") everywhere they're attributed, falling back to model, then serial, when you haven't named one.
Combine consecutive dives into one
Separate from same-dive consolidation, you can now select two or more non-overlapping dives in the dive list and combine them into a single continuous dive, with the gaps between them shown as surface time in the merged profile. Details come from the earliest dive with blanks filled in from the later ones, notes are merged, and all tanks, gear, buddies, tags, and sightings are kept; a snackbar Undo restores the originals exactly. Submersion warns when a surface interval runs past 30 minutes (a hint they may really be separate dives) and won't combine dives that belong to different divers. If you instead pick time-overlapping dives, the dialog explains the difference and points you to same-dive consolidation.
Sharper decompression and gas modeling
A run of improvements make the app's decompression math track a real dive computer more closely, especially on multi-gas technical dives:
- Gas-aware time-to-surface. The simulated ascent now breathes the best gas you actually carry at each depth, switching to a richer deco gas (EAN50, oxygen) as you get shallow, instead of projecting the whole ascent on whatever you're breathing at that moment. This removes the overstated bottom-phase TTS and the unrealistic downward "steps" in the TTS curve at each gas switch. A new "Plan ascent with" setting chooses between all carried gases (default) or your deco stage only, and only cylinders actually recorded on the dive are used (no invented gases). (Open-circuit dives; closed- and semi-closed-circuit are unchanged.)
- Correct gradient-factor ceilings. Deco ceilings and TTS now follow the proper GF-low/GF-high curve: the GF-low anchor is fixed at the dive's deepest stop, and each stop clears only when you can safely reach the next shallower one. Ceilings now match Subsurface at validated checkpoints (for example 7.4 m rather than 8.8 m at a 9 m stop), and TTS counts down smoothly instead of holding an inflated value and dropping to zero in a single sample at the last stop.
- TTS only rises when you owe decompression. Time-to-surface now reports just the mandatory obligation (your ascent plus any required stops) and tracks the optional 3-minute safety stop separately, so crossing from no-deco into a real deco obligation no longer makes the displayed TTS paradoxically fall.
- Gas switches import correctly. Multi-gas dives imported from Shearwater Cloud (UDDF) and Garmin (FIT) now bring in every gas you breathed and every switch. Previously a trimix dive with two deco-gas switches lost the switches on both paths, and the Shearwater import dropped the deco gases entirely. Your switch times and deco gases now appear, which also feeds gas use, SAC, and the deco calculations built on them.
This release also corrects a double-counting of deco stops in the schedule simulation that had been under-stating TTS, so calculated times-to-surface are now slightly longer, and more honest, across the board.
Better multi-gas downloads
Downloads from multi-gas Shearwater computers used to silently drop any gas that wasn't tied to a pressure transmitter and often mislabeled the transmitter's cylinder (ie. a two-gas dive could arrive missing a cylinder). Now every gas the computer reports becomes its own cylinder, and each transmitter cylinder is labeled with the gas actually breathed on it, so gas consumption and SAC are complete for multi-gas dives. On top of that, downloaded cylinders are auto-labeled with their role: oxygen tanks become "O₂ Supply," rebreather diluent becomes "Diluent," a nitrox mix of 41% or richer is treated as a "Deco" gas, and everything else stays "Back Gas", and a role you set yourself is never overwritten.
Fullscreen dive profile rebuild
The fullscreen profile view was rebuilt to truly fill the screen and become more useful. The chart uses the full height and width, with a live instrument bar across the bottom reading out depth, runtime, temperature, NDL (swapping to ceiling and TTS when you're in a deco sample), tank pressure, ppO₂, GF% and more as you scrub the chart or replay the dive. A reworked playback engine replays a 60-minute dive in a minute or two (speeds from 1× to 120×, default 30×) with a minimap scrubber and transport controls; you can hide or reorder the instrument tiles to taste, and in fullscreen the keyboard works too (Space to play/pause, arrow keys to step, Esc to close). It also fixes the long-standing bug that pinned the profile chart to a short fixed height. This is the first iteration of this redesign. It's not perfect or complete, and there area a lot of cool features that will come with time and feedback.
Name your dives
Any dive can now carry its own name — "Wreck penetration," "Checkout dive #2" — instead of just showing the site as its title. Add it in the new Name field at the top of the dive editor; leave it blank and nothing changes (the site name still shows). Named dives display your title with the site beneath, you can choose "Dive Name" as a dive-list tile title or table column, dive-list search matches on it, and it's carried into CSV and UDDF exports.
Photos pinned to your dive profile
Photos attached to a dive now appear as camera-icon markers on the profile chart at the exact point they were taken, so you can see how deep you were for each shot. Tap a marker for a floating thumbnail with the depth and runtime, then tap through to the full photo viewer; markers that would overlap collapse into one chip with a count badge and split apart as you zoom in. A toggle in the chart legend and a persisted Settings default (on) control visibility.
Plan and pack for upcoming trips
Trip tracking now covers trips you're planning, not just completed ones. An "Upcoming" section pins future trips to the top of the Trips list with a live countdown ("In 24 days" / "In progress") and checklist progress ("3 of 12 to-dos done"), and trips roll into "Past Trips" automatically once they end. Every trip gets its own to-do checklist with due dates, a Checklist tab on liveaboard trips, a card on the overview elsewhere, with overdue chips on items past their date. You can also build reusable checklist templates under Settings, apply one to a trip (it turns "days before departure" into real calendar due dates), and save an existing trip's list back out as a template.
Buddy credentials and an instructor picker
Dive buddies can now hold professional credentials (ie. instructor, divemaster, or dive guide) each with an agency and credential number, set in a new Professional Roles section on the buddy edit page and shown on their detail card. When you log a certification or course, you pick the instructor straight from your buddy list instead of retyping their name and number each time (credentialed buddies sort first, and the number autofills). Certifications stay historically accurate: the instructor's name and number are snapshotted and remain independently editable even if that buddy is later edited or deleted.
Filter your whole Statistics tab
The Statistics tab can now be filtered by the same criteria as the dive list (tags, date range, dive type, site, depth, rating, gas mix, buddy, favorites, and more) so every stat, chart, and total reflects only the matching dives instead of your entire logbook. A badged filter icon opens the sheet, an active-filter bar shows the matching dive count with one-tap clear, and quick date presets (This year, Last 12 months, Last year, All time) make common ranges fast, so you can finally answer "how many drysuit dives have I done in the last year?" The home dashboard and the Marine Life species pages stay unfiltered by design.
Built-in dive sites on the map
A new globe toggle on the Sites map overlays Submersion's built-in database of roughly 3,250 known dive sites alongside your own, drawn in a quieter pin style so your sites stay the focus. Tap one to open an info card with "Add to my sites" to import it into your library. Built-in sites within about 150 m of one of your own are hidden automatically so each real-world site shows only once. The toggle is off by default and works on both the full-page map and the embedded map pane.
Sync with Dropbox
Dropbox joins iCloud and S3 as a cloud-sync backend, on all five platforms (iOS, Android, macOS, Windows, and Linux). Connecting is the same everywhere: tap the Dropbox tile on the Cloud Sync settings page, authorize in your browser, and paste back a short code (no redirect-URL or URL-scheme setup). Your authorization is stored securely in the device keychain, and disconnecting runs through the normal sync sign-out with the usual cloud-backup warning.
"Parse raw data" now works on Windows
The dive-detail "Parse raw data" action re-runs the parser over the raw dive data already stored in your library to rebuild a dive's details without re-downloading it from your computer. This is useful, for example, after smoothing or editing a dive's data points. It was never implemented on Windows; it now works there too, matching the other platforms.
🐞 Bug fixes
Large libraries sync without running out of memory
Divers with very large logs could hit an out-of-memory crash on iOS during sync, both when a device uploaded its own full copy of the library and when it rebuilt the library during a "Replace everywhere" restore. This happened because the app tried to hold the entire library in memory at once, several times over. It now streams the library to and from disk in small pieces and saves dives in batches, so memory use stays low no matter how big your log is; the restore step that used to freeze and time out now applies hundreds of thousands of dives in a few seconds.
Clearing a field now syncs to your other devices
Blanking out a field on one device didn't clear it on your others. It first surfaced with custom dive names (renaming a dive synced, but erasing the name didn't), but the same flaw quietly affected every clearable field, including dive notes and buddy, site description/country/region, trip notes, and gear notes. Clearing any of those now correctly propagates the blank to all your synced devices.
Edits appear promptly after a full restore
After a "Replace everywhere" restore, the first changes you made could take an unpredictably long time to reach your other devices, because that first edit re-uploaded the entire library as a fresh snapshot that every other device then had to re-download before it could see the one small change. The device now publishes just the change itself (a small incremental changeset) against the library it already restored, so post-restore edits sync quickly.
Multi-computer dives show their profile the first time
Opening a dive that had more than one computer could show a broken "data is missing" profile, the chart's overlay menu collapsed, and the deco and tissue-loading panels below it vanished until the app was restarted. A loading race was caching an empty analysis result and never recomputing it, and it hit multi-computer dives reliably because their larger merged profile loads more slowly. The analysis now waits for the dive to finish loading, so the overlays and panels render correctly the first time, with no restart needed.
Android downloads no longer take the whole app down
On Android, downloading vis USB could make the app vanish instantly with no error message: the dive computer sends its data in many tiny packets, and a native memory-reference leak overflowed Android's reference table and hard-crashed the process. That leak is fixed. As a second layer of protection, Android serial/USB downloads now run in a separate, isolated process, so if the native download code ever crashes, only that background process dies and the app reports a normal "download failed" instead of disappearing. This is part of the ongoing effort to improve dive computer integration stability.
Ascent-rate tooltips and tissue-bar polish
With Ascent Rate coloring turned on, hover tooltips on the profile chart had stopped appearing, because the recolored depth curve is drawn as several separate segments and only the first was recognized. Tooltips and point selection now resolve the correct sample across every speed band. A within-limits ascent also stays the normal depth-blue instead of turning green, so a safe ascent looks the same whether or not the toggle is on. Separately, hovering a compartment in the tissue-loading chart could push one bar taller and wider than its neighbors and print a "BOTTOM OVERFLOWED" stripe; the highlight is now an overlay that doesn't change the bar's size, so the bars stay uniform.
Statistics Overview loads reliably
After the new Statistics filtering landed, the Statistics Overview screen could show "Error loading statistics" and display no numbers. The underlying error is fixed, so the Overview loads its stats reliably with or without a filter active. No data was ever affected; only the display failed.
Editor and detail-page polish
A handful of smaller interface fixes: selected dive-type chips no longer flash to a blank progress bar while a background iCloud or S3 sync applies changes; long Dive Type and weather Description values on the dive detail page now wrap cleanly instead of crowding their label or running off a narrow screen; on desktop, pressing Tab while editing equipment (or a dive, site, buddy, or trip) stays inside the edit form instead of jumping into the list in the other pane; and the detailed dive-card Title and Date/Subtitle pickers under Settings › Appearance › Dives are honored again, so choosing "Dive Name" as the title actually shows it.
🔧 Under the hood
Syncing a large library is faster and no longer freezes the progress screen: incoming dives are written to the database in batches, and the downloaded library snapshot is unpacked in the background so the interface stays responsive. A device that only restores and browses no longer needlessly re-downloads and then re-uploads the hundreds of megabytes it just put in place, and it defers uploading its own full snapshot until you actually make a change. Routine continuous-integration dependency maintenance is included as well.
Thanks to everyone testing downloads across the full range of dive computers and filing detailed reports, and to community contributors readme42, john120283, and essengee, whose decompression, multi-gas, and Windows work is all in this release. If you dive with two computers, run high-oxygen deco or trimix fills, sync a large library, or plan trips ahead, we'd love to hear how these changes hold up for you.
Posted Jul 5, 2026, 9:05 PM UTC