System 6 vs. SDK 4.1.6 vs. Software Version 10.44?: How do they relate?

I just watched the video from GDVC2022 by Nicolas Kral about "System 6" and wasn't sure how to interpret that nomenclature in context of the SDK number and Software Version

Is System 6 the next SDK version we're expecting?  E.g. SDK 6.0.0?  Or are these on separate timelines? 

I've never heard the "System X" naming convention before in the ecosystem (I'm still relatively new), so I wanted to clear up how those concepts relate. 

So far I know about:

  1. Software Version (e.g. 10.44) which I understand to be the on-device software version
  2. SDK Version (e.g. 4.1.6) which I understand to be the SDK version (for building the software to deploy)

I assumed so far that some Software Versions are required to run things built with certain SDK versions.  For example, when I built a Watch Face with SDK 4.1.6, my fresh-out-of-the-box Epix 2 couldn't load it until I updated the Software Version. So I took away that there must be some compatibility table somewhere between SDK version and Software Version of the device.

But I'm not sure how "System X" fits into this scheme.  Is that some third numbering scheme, separate from Software Version and SDK Version?

Thanks!

Top Replies

  • But I'm not sure how "System X" fits into this scheme.  Is that some third numbering scheme, separate from Software Version and SDK Version?

    To expand on what was said in this thread…

All Replies

  • System 6 functionality is tied to the 4.2. SDKs.  Right now, the SDK is 4.2.0 beta 1.  Here's a blog about System 6.  Notice there are 2 preview devices you can use in the 6 to test with  Alpha firmware for the fenix7 with System 6 (ciq 4.2.0) just got released.  There is no production FW with System 6 right now.  With the Beta SDK, you can't build iq files.

    https://forums.garmin.com/developer/connect-iq/b/news-announcements/posts/welcome-to-connect-iq-system-6

    System 5 functionality came out with the 4.1.x SDKs where Sytem5 is on devices with ciq 4.1 or 3.3

    https://forums.garmin.com/developer/connect-iq/b/news-announcements/posts/connect-iq-system-5-sdk-now-available

    the device list you see there is dated and a number of devices have System 5 now.

    As far as devices, and ciq, you want to go to "about" on the device and check the CIQ version you are running.  You can use the current SDKs to build for any device, so with the current production SDK being 4.1.7, that will also building for any device, and using the API doc, you can see if something you want to use is available for the ciq version on a device ("Available Since API x.y.z")

    With this, you can see what api level is on what device: https://developer.garmin.com/connect-iq/compatible-devices/

    It can be confusing!

  • Thursday the first Apha FW for the F7 dropped which now gives us the ability to now test on a real device.  The F7 SW 11.15 supports the CIQ 4.2 SDK.

    When devices do get System 6 support in the firmware, you will be looking for either CIQ 4.2.0 or 3.4.0 in the device about screen.

  • Yes, 4.2.x or 3.4.x will indicate System 6, like 4.1.x or 3.3.x for System 5

  • But I'm not sure how "System X" fits into this scheme.  Is that some third numbering scheme, separate from Software Version and SDK Version?

    To expand on what was said in this thread:

    - System 4 is CIQ version 3.2 for CIQ 3 devices and CIQ 4.0 for CIQ 4 devices

    - System 5 is CIQ version 3.3 for CIQ 3 devices and CIQ 4.1 for CIQ 4 devices

    - System 6 is CIQ version 3.4 for CIQ 3 devices and CIQ 4.2 for CIQ 4 devices

    If you're wondering why this is necessary, it's because Garmin drew a line in the sand and determined that no CIQ 3 device will ever get CIQ 4. (There's several features which are only for CIQ 4, some of which are possibly tied to hardware.)

    At the same time Garmin is continuing to introduce the same sets of new features to both CIQ 3 and CIQ 4 devices. So by defining "System X", they have a way of saying "we're bringing these new features to both CIQ 3 and CIQ 4 devices. "System 4" was the first "System X" version.

    A consequence of this scheme is that you can't use the minApiLevel property in manifest.xml to strictly include and exclude devices/firmware by System level. For example, if you set a minApiLevel of 3.4 to try to select only System 6 devices/firmware, you will incorrectly include CIQ 4.1 devices. If you set a minApiLevel of 4.2, you will incorrectly exclude CIQ 3.4 devices.

    That is to say, there's not a single linear branch of version numbers anymore (e.g. CIQ 4.1 is not a superset of CIQ 3.4), but minApiLevel was designed at a time when there was. There's no equivalent manifest.xml property to select devices/firmware by system level.

  • Wow, thanks everyone for the fast and clear answers. Now this makes sense. 

    It is definitely a bit tricky how this is all set up. But it sounds like continuing to have CIQ3 and CIQ4 continue on parallel tracks required setting up some other way of versioning “above” them. 

  • Hi Thank you for the explanation, it makes more sense to me now. So if we cannot use minAPILevel in the manisfest file, what do you use to include or exclude devices on a system level?  Thanks! 

  • I assumed so far that some Software Versions are required to run things built with certain SDK versions.  For example, when I built a Watch Face with SDK 4.1.6, my fresh-out-of-the-box Epix 2 couldn't load it until I updated the Software Version. So I took away that there must be some compatibility table somewhere between SDK version and Software Version of the device.

    Can you share some more details on what "couldn't load" means for the user? I have always wondered how the user experience is for a user that is trying to use a CIQ app that is built for a higher API version thans what's running on the device. Thanks! 

  • What I've seen/heard from users is they get a message telling them to update their FW

  • System 7/CIQ 5.0.0 has been in beta FW for a while, but it's now being released a production FW.  When you get a new watch, it's got what was loaded at the factory, so you'll usually see an update available right away.