Changelog for SDK 1.3.x

Now that the D2 Bravo has support for Connect IQ 1.3.x (all hail those who squeezed it into today's firmware update to version 3.60) I am interested to know what the current version of the 1.3.x SDK is, what has changed and if there are any known issues? The changelog for the D2 Bravo firmware update says the watch received 1.3.0 but the device is reporting that I have 1.3.1. And I seem to recall seeing that a recent beta for the Fenix 3 has SDK 1.3.3.

I looked around but couldn't see any changelog specific to the 1.3 branch of the SDK.

Cheers,
Douglas
  • You're not really asking for a change log of the SDK, you're asking for a change log of the VM on the device. The VM is the version of CIQ that runs on the devices themselves.

    When 1.3.x went into production for the VM's on most watches they all started with 1.3.1, and with FW updates, many are now at 1.3.3, but the same SDK is used.

    That said, I can't remember anything major that was fixed between the 1.3.1 VM and the 1.3.3 VM on any device.. Brian, Coleman or Brandon have the details, but you may just want to try things you think should work and report those that don't (it could be a base FW problem unique to the D2 so they may not know about it)
  • You're not really asking for a change log of the SDK, you're asking for a change log of the VM on the device. The VM is the version of CIQ that runs on the devices themselves.


    No, I am indeed asking for a changelog of the SDK. The VM in firmware 3.60 on my D2 Bravo watch has support for SDK version 1.3.1. That means I can use calls to methods available in SDK 1.3.1+ As such I want to know what's in 1.3.1 vs 1.3.0 vs 1.3.x. This is not to be confused with a list of changes between 1.2.x and 1.3.x, as that is already covered in the blog and within the forums with regard to backporting of features from 2.1 to 1.3.

    Knowing the changes for the VM on the device is not of interest because it is matched up against an SDK version -- watch firmware X support for Connect IQ SDK version Y. But there are things in the SDK that change between minor versions. For example, the bearing() method was added in SDK 1.2.10 (see Activity::Info) so that was important to me because the D2 Bravo was stuck at SDK 1.2.6 and thus bearing() is not available.

    As for trial and error, I would rather not try random things and report issues in a shotgun like approach; instead I'd prefer to know, as I originally said, what changed and when so if I do run into something that seems like an error I can eliminate it as such. Furthermore, changelogs are often a good way to get exposure to something you didn't know was possible.

    For reference, this entry in Fenix 3 firmware 7.52 (as detailed on the Beta Updates & Downloads page) would be an example of a changelog entry for the VM, which is of no interest to me.

    Fixed a potential issue with writing developer data through apps that support the Connect IQ 1.3 SDK


    Also, on that note, I see on that Beta page that Fenix 3 firmware 7.61 adds support for Connect IQ 1.3.3 SDK so my question remains... where can I see what changed?

    Cheers,
    Douglas
  • All I can say is I don't think you understand the difference between the SDK you use and the VM on a real device... Let's start with "there has never been a specific 1.3.x SDK"...

    The VM and SDK often don't match... Even before 2.1.x (where the same SDK was used for 1.2.x, 1.3.x and 2.1.x build...)

    The VM changes might involve things you'll see on the base FW, so a change in the base FW for your specific device comes into play...

    If all you want to know is the chances between 1.2.x and 1.3.x, have you looked at the readme in the SDK as well as the api doc? You see the history there...

    What you can use in 1.3.0 vs 1.3.3 VM is the SAME. But 1.3.3 includes some bug fixes in the VM!
  • All I can say is I don't think you understand the difference between the SDK you use and the VM on a real device... Let's start with "there has never been a specific 1.3.x SDK"...

    The VM and SDK often don't match... Even before 2.1.x (where the same SDK was used for 1.2.x, 1.3.x and 2.1.x build...)

    The VM changes might involve things you'll see on the base FW, so a change in the base FW for your specific device comes into play...

    If all you want to know is the chances between 1.2.x and 1.3.x, have you looked at the readme in the SDK as well as the api doc? You see the history there...

    What you can use in 1.3.0 vs 1.3.3 VM is the SAME. But 1.3.3 includes some bug fixes in the VM!


    Jim,

    I appreciate once again that you might be trying to be helpful but all you've done is tell me what you think I'm looking for and then insult me. And ultimately I still don't have the answer to the question I asked. I am looking for an official answer from Garmin.

    I know the difference between an SDK, a VM and an API. I probably should have asked what the API differences were between what Garmin (and everyone else) calls SDK 1.3.0 and 1.3.3 since that's really what I'm most interested in, though I'd also be keen to know what else changed between those versions that would cause an actual version number change.

    I do NOT want the differences between 1.2.x and 1.3.x -- if you read my second message I said as much. I want to know what changed between 1.3.0 and 1.3.3 so I know what I don't have access to with a D2 Bravo device running a VM that supports 1.3.1. Has it been bug fixes? Has it been additional functionality backported? What might I be missing out on or have to handle differently with D2 Bravo devices?

    As for the 1.3.0 vs 1.3.3 being the same, how do you know this? Is there a doc somewhere, similar to the release notes found in the SDK? And how do you know that 1.3.3 has some bug fixes in the VM?

    Are you sure that VM changes result in an SDK version number change? I actually think you're completely wrong on this. Check the changelog for Fenix 3 Betas 7.34 and 7.36 -- there are entries that say "Added additional improvements for CIQ 1.3 SDK" and "Various bug fixes for Connect IQ 1.3". By your logic both of those should have said something like "Added support for CIQ SDK 1.3.1" or such, which you then see in Beta 7.61 where they added support for "...CIQ SDK 1.3.3". That wording insinuates that the VM was changed/updated to add support for whatever is new in SDK (API) 1.3.3. Or perhaps it means they updated the Fenix 3 VM to whatever changed in the 1.3.3 spec. Or something. But there's a new version number so something is different somewhere. What I'm after is what's changed.

    Cheers,
    Douglas
  • See this page for what may change between a 1.3.1 and 1.3.3 version (a micro release)
    http://developer.garmin.com/index.php/blog/post/looking-forward-connect-iq-release-schedule

    A Connect IQ micro release (x.y.Z) can have: :

    Bug fixes
    New APIs to support bug fixes
    Add support for a new product to the SDK


    So what you see between a 1.3.1 and 1.3.3 VM is basically only bug fixes. The same SDK is used. For specific fixes the 2.1.3 SDK maps to the 1.3.3 VM (same micro release) So the change log for the 2.1.3 SDK may give you the info you're looking for.

    As far as the thing you noted about writing developer data, that was likely the same problem that was on the va-hr and the Edge devices. The Object Store wasn't being written correctly by the FW. (the FW change log for those devices said the same thing when it was fixed there)

    FW change logs generally don't have much detail for CIQ and will just have a general statement like "Fixed various CIQ issues".
  • So what you see between a 1.3.1 and 1.3.3 VM is basically only bug fixes.


    I realize that should be the case with minor version numbers, but as I've continued to point out, this hasn't necessarily been the case in the past. Version 1.2.10 of the SDK/VM added shifter and navigation data to ActivityInfo API and the bearing() method was added. These are the changes I'm looking for.

    The same SDK is used.


    Please stop pointing this out; I know. I am developing for the D2 Bravo which has been on Connect IQ 1.2.x (but now on Connect IQ 1.3.x) but am using SDK 2.1.3 and Eclipse Plugin 2.1.4. I get it. I know what an SDK is. I'm simply, as I said, going with Garmin's wording of calling it Connect IQ 1.3.1 SDK.

    And still, four messages later, my original question is unanswered. Over to you, Garmin.

    Cheers,
    Douglas
  • I came across this old thread when looking for much the same thing, and sadly noted it was still unanswered.
    I have developed my first CIQ app for the VA-HR which currently runs CIQ 2.2.4 and am now looking to extend it to different models which may only support 1.3, so I'm looking for a list of the changes between the versions to evaluate the feasibility and effort required for the task.
    I know the API Documentation details the version each feature was introduced, but it would be a mammoth task for me to go through each item.
    Could someone please point me to the CIQ changelog ?
  • Ok, the API guide gives you call by call specifics. In reality, a large part of your code (if not all) uses things that have been around since 1.0.0.

    There's a post in the developer blog (developer.garmin.con) from when 2.x came out that lists the new stuff in 2.x (Biker) that was backported to 1.x (Aikido ):

    https://developer.garmin.com/index.php/blog/post/connect-iq-2-the-biker-has-arrived

    You can see the major items with this, and if you use something that didn't exist in 1.x that wasn't backported, that's a flag.

    Your app is on a va-hr right now, and the first thing I'd think about is its memory size, as that could be a blocker to moving to 1.x devices right there (1.x, you're limited to 64k, while the va-hr, 122k - and it's actually less than 64k if you record a .fit on the va or one of the fenix 3 family) Max Objects is also different.

    When it comes to api differences, "has" is your friend! You can use build file exclusions for bigger things.

    Ok, so you made it this far and still want to do it. Just add the new device as a target and run it in the sim. You'll have to adjust the display layout, as the va-hr is like no other. With layouts, look into resource overrides, and for direct dc calls, think setting x/y's fonts, etc in onLayout().

    Next it might just be running the app with a new target with screens that you can see and looking for things that break.

    It might be easier to help if you mentioned the device you wanted to port to, If it's an Epix", I'd just say "why?" :)