Converter to import Suunto dive logs into Garmin Connect

I created a simple Java application to convert my old Suunto D3 dive logs for import into Garmin Connect. It's pretty limited but seems to work so I'm sharing it as open source for others to try. It might also work for converting dive logs from other Suunto computers but I didn't have anything else to test with besides the D3.

https://github.com/nradov/SdeToFit

Hopefully this can be useful for some of you. If you find a serious defect then I'll try to fix it but I can't promise any real support.

  • I went through this now and getting the same error. I have exported the sde file from Suunto DM5, so any chance that's the reason I'm getting the error? any workaround?

    Thank you in advance.

  • Hi. I'm getting the same problem.Did you ever find out a solution to the DM5 SDE files?
    thank you

  • Afraid not.  I’m not familiar with Garmin SDK and don’t have the time to look at.  I do see that one of the files on GitHub has been updated in the meantime so will perhaps need to look at it again.

  • I've found a workaround to make this work with DM5 files. Here are the steps that worked for me. Note that I have no coding or software background, just basic Windows skills. There might be better ways to handle this, but that'll need minor recoding.

    Installation:

    1. Install Java JDK version 21 from Oracle.com.
    2. Download and unzip the Garmin Flexible and Interoperable Data Transfer (FIT) SDK into the Downloads folder.
    3. Update the CLASSPATH environment variable to include fit.jar file from the SDK in the previous step.
    4. At the github link, click on CODE (right corner) and download ZIP. Unzip into Downloads folder.
    5. At the same github link, click on Releases and download the SdeToFit-1.0-SNAPSHOT.jar file. Copy that into the C:\Users\name\Downloads\FitSDKRelease_21.158.00\java folder.

    If I moved the files into a different location instead of the Downloads folder, things didn't work. So somehow the Downloads folder is where all these need to be.

    File conversion. Note that this needs to be done one dive at a time since there are manual steps involved.

    1. Export the dive from DM5 into SDE format into any folder e.g. C:\SUUNTO.
    2. Rename the .SDE to .ZIP and unzip the included 0.XML file.
    3. Edit the 0.XML (I used notepad) to do the below
      1. <DIVETIMESEC /> to be replaced by <DIVETIMESEC>2046</DIVETIMESEC>. Note:Instead of 2046, insert the actual dive time in seconds.
      2. Find and Replace All .99999 with a blank. For some reason, DM5 exports all temperature samples as float (e.g. 24.99999) where the converter seems to be expecting an integer. With this step, you lose 1 deg accuracy. But without recoding, this is inevitable.
      3. Save the XML and drop it back into the original ZIP file. Rename the .ZIP back to .SDE.
      4. Open the command prompt in administrator mode. Run the command
        1. java.exe -cp %CLASSPATH%;C:\Users\name\Downloads\FitSDKRelease_21.158.00\java\SdeToFit-1.0-SNAPSHOT.jar com.github.nradov.sdetofit.SdeToFit C:\SUUNTO\Dive_2018-05-09-1144.SDE C:\SUUNTO

    You should find the converted FIT file in the SUUNTO folder. Import into Garmin Connect as you would import any activity FIT file. Unfortunately, the FIT file is imported as a Gauge dive. So you need to make a few edits. Click Details, select "Gauge Dive" on the top left and pick "Single-gas Dive" or whatever it is. Edit the activity to update further data like surface interval, water type, gases, etc. Tissue loading details are missing. Overall not perfect, but better than nothing. I have only tested this with single-gas (air and nitrox) dives so far. But since the import happens as a Gauge dive, expect only depth and temperature profile to be imported (maybe pressure... can't say since I didn't have air integration on my SUUNTO).