Comprehensive list of supported CIQ versions per watch (past and future)

Hi all,

I'm just in the process of getting my first app ready for upload and am looking to make it compatible with as many watches as possible. What I'm running into is that I can't find a comprehensive list of watches with their supported connect IQ version, both older watches and at what version they stop working as well as newer ones that have (and possible will) be/been updated. 

What I could find, both on the Garmin site, the blog and this forum are for instance some burst of limited and not maintained information, such as:

Any help with such a list would be greatly appreciated.

Cheers

  • Today, you want to use the 3.1.x SDK (current one is 3.1.6) With it, you can build for any CIQ device,

    The old list you found is pretty correct for ciq1 and ciq2 devices

    I'm pretty sure that new devices since then are all CIQ3, with the exception of the fr45 and swim2 which are CIQ1 devices, and out of the CIQ3 devices, many have ciq3.1.  When you do a run config for a device in eclipse, the target SDK for a device will show you whats possible for the devices (3.0.x vs 3.1.x for example)

    I never change the min SDK in manifest files. They are all "App Minimum SDK version" 1.2.x.  The problems you will likely run into is if you try to use a CIQ2 feature with a CIQ1 device, or a CIQ3 feature on a CIQ1 or CIQ2 device. (you'll see "since" in the API doc for things.

    The other thing to watch for is specific features.  With the 245 (a 3.1 device) for example, it doesn't have a baro altimeter, which means it can't do floors, and if you attempt to use floors in ActMon, you'll crash.

  • Thanks jim_m_58 for your speedy reply!

    So in general, your answers all make sense but it's still all information which you gathered from multiple sources right? More specific follow up:

    • The main issue is, I built an app which both some of my friends and I already use, including the Fenix 5S and Vivoactive HR watches. I think I've backtracked that The HR needs min 2.4.x whereas the 5S needs 3.0.x. All these means that building for future watches is obviously less interesting because I won't be able to use the app myself anymore.
    • The specific feature you mention in your last item is an important point but as far as I know, there isn't a list of such features and what certain watch limitations is to prevent his from happening. Surely this would be good to know ahead of time as opposed to uploading and hearing about users with other watches having crashes.
  • Not really multiple sources, just doing CIQ for going on 5 years!  Based on when devices were intoduced, it's easy to track what version of CIQ they have.

    I'm unclear about what you're saying about HR.  With devices that have 2.x, OHRM and SensorHistory, you can get the HR value for watchfaces.  Works the same on the vahr and f5s.  The difference with the vahr and f5s is with the fenix and watchfaces, the f5x has got the HW to use onPartialUpdate() and update the HR much more often than on the vahr.

    For you last point that's why you want to test the features in you app on all supported targets in the sim, as that's good at catching things.  

    When it comes to supporting variations, there are two ways to handle that - Jungles and "has"

  • Haha yes I'm not at 5 years yet ;)

    What I mean with vahr is that I started with my app for the f5x in 3.0 (as 3.1 wasn't available) and then later discovered it could only be built for vahr if I selected 2.4. So I deduced that something has changed here that isn't supported (of which one is obviously the update rate of the HR) but what all is causing this is unclear to me. I was just hoping there was a more complete list. The Programmers Guide is really great and it does include a lot of notes like: available since 3.1, etc. but that refers features back to version number, not version number and watch to feature. 

    I will indeed then just continue to build and test in random selected relatively new models and see what issues I run into. 

  • Are you setting the FW version in manifest.xml?  Just set that to be 1.2.x. (the default)

  • Sure that makes sense. I had figured that some features would then not work but I guess one does select the specific version per build anyway. Thanks!

  • So yes I can set it to 1.2.x but that doesn't allow me to simply build for all even though I can select more. To illustrate that, I just ran into another issue which kind of illustrates why I posted. Just for future reference for others, I'll reply. While now building for Fenix3, it immediately fails on a "failed invoking symbol" error. 

    I start by retrieving a saved variable by doing:

    var savedSpot = Storage.getValue("savedSpot");

    And then check if it is null which in other builds, works fine. But here it results in a Symbol not found. There's no easy way to see which watch has which CIQ version and exactly what that entails. By having done this for a while, I know that the storage module isn't support < 2.4.x so by looking up the storage module, I guess that's the only real way to find out after building. Which I guess is an alternative way of finding the answer to my question. 

    Thanks again Jim!

  • getProperty()/setProperty can be used on older devices, and to determine with you can use:

    if(Application has :Storage) {

    } else {

    }