@janir
Solved: importing old dive logs into the Suunto app (from Subsurface, divelogs.de, and other logbooks)
Like many here, I had years of dives from an old Suunto HelO2 living in Subsurface/divelogs.de, and no way to get them into the Suunto app when I bought a new Suunto watch. The only door into the app is SuuntoLink’s “Import dive logs”, which only reads DM5 — and DM5 only imports SDE/SDP/SML/Suunto-XML, which nothing third-party can export. Every thread I found on this ended unsolved.
So we reverse-engineered DM5’s actual SDE dialect (from real DM5 exports and its SQLite database) and wrote two small Python scripts, free and open source:
https://github.com/974c426jdy-svg/Import-old-dive-logs-into-the-Suunto-app-
subsurface2sde.py — converts a Subsurface logbook to an .sde that DM5 imports: full depth profiles, temps, gas mix, tank pressures, locations, buddies, notes. Since Subsurface can import from divelogs.de, MacDive, Diving Log, old SDM files and dozens of computers, that covers most logbooks.
fix_pressures.py — works around a DM5 import bug where tank pressures import correctly but display as 0 (DM5 stores them in bar at dive level but its UI reads the gas-mixture table in millibar).
Pipeline: Subsurface → export XML → subsurface2sde.py → DM5 File > Import → fix_pressures.py → SuuntoLink → Import dive logs → Suunto app. The README documents the gotchas (DM5’s silent duplicate-skipping, its hidden database folder, locale decimal separators) plus format notes for other tool authors.
Caveats: tested on DM5 1.5.4 on macOS with a Swedish-locale system; there are flags for other date/decimal formats but I’d love confirmation from a Windows user. No dependencies, plain python3. Old dives won’t get the 3D dive view on Ocean/Nautic (that needs data recorded by the watch itself) but they count toward your history and totals. Back up before a big import — the trial-run mode exists for a reason.
Hope it saves someone the week it cost me.