Version 21.60.00 of the FIT SDK is now available for download at https://developer.garmin.com/fit/download/

New in this release:

  • Added new Manufacturer Ids
    • Shimano
    • Coospo
    • Syncros
  • Added ~30 Garmin Product ids
    • Venu 2 
    • Approach
    • Backfilled missing product ids for previously released devices 
  • Added Sub-Sport Ids
    • Sail-Race
  • Java SDK
    • Setting a string with a byte length greater than 254 bytes will now throw an exception. Previously a corrupt FIT file would be created.
    • DateTime class now implements the Comparable interface.
    • Added new FitDecoder, FitListener, and FitMessages classes. These classes work together to decode any type of FIT file with a few lines of code. See the FitDecoderExample class for usage.
    • New Java Example apps that mimic the C# recipes. See https://developer.garmin.com/fit/example-projects/java/ for usage.
      • Encode Activity
      • Encode Course
      • Encode Workout
Anonymous
  • Thanks! I know that solutions for this already exist. Most require you to provide them with your Garmin Connect credentials, due to the lack of public API, which is not great. I also don't necessarily want to sign up to yet another service necessarily. I'm aware of other tools that I can run myself and that would avoid these two shortcomings (from my perspective at least, other users might be perfectly fine doing the above). But yes, also figured it would be an interesting project to get some experience writing Garmin ConnectIQ apps.

  • I don't know if you are looking for a project or looking for a solution, but what you are describing already exists.
    https://smartscalesync.com/ https://www.fitnesssyncer.com/

  • Thanks for the detailed reply! I'm just a hobby dev and wanted to see if I can get my daily weight-ins from a smart scale somehow into Garmin Connect. I'm very new to the eco system. From what I gathered there is no API to just add weight measurements programmatically. Therefore, I was thinking of creating FIT files, since my current understanding is that  there is a dedicated FIT file type "Weight" just for that.

    I'm not affiliated with the manufacturer from my scale, and they're not in the list of manufacturers supported by FIT atm. I didn't know about the ANT+ membership. It makes a lot of sense that this is governed though, and I can't just "add" them myself.

    I've since read up a bit more and understand that FIT files are most often generated by devices, so having the SDK in low level languages makes a lot of sense. In my case, I wanted to write the FIT file in a web application, so either using Python or Elixir :D

    I think my new approach is to write the FIT file on my Garmin device instead, and have the file sync to Garmin Connect like other activities.

  • The FIT SDK provided by Garmin is not open source. You can read the license agreement here:
    https://developer.garmin.com/fit/download/

    In order to get a manufacturer id, you need to be an an ANT+ Annual Member. More info here:
    https://www.thisisant.com/business/go-ant/levels-and-benefits/

    Picking your own id would be in breach of the interoperability and compatibility clause in the license agreement. Instead, until you have your own id,  you can use the development id 255 (0xFF), which is defined in the SDKs as either an enum or typedef depending on the language.

    What other language(s) would you like to see supported?

  • sorry for hijacking this thread, I have a few questions:

    - Is the FIT SDK open source and/or available in other languages?

    - How can new manufacturers/devices be added?