PSA: 10.xx Beta firmware CIQ Position bug

Hey all,

I'd like to bring your attention to a CIQ GPS/Positioning bug in the 10.xx Alpha/Beta releases (10.42 right now). While it is under investigation by Garmin (I reported from the 10.33 alpha but was overlooked until 10.39 Beta report by user), I don't know whether it will be fixed by final release: forums.garmin.com/.../bug-apps-with-gps-crashes-at-start-10-39-epix2

Basically if you're trying to set any GPS :constellations or :configuration the app will crash when you invoke Position.enableLocationEvents. Garmin's own code snippet also crashes. This means that only "GPS Only" works (no Galileo, etc.)

So if you have any app that tries to set :constellations or :configuration you may want to have a version ready that doesn't do that and be ready to push it, should Garmin decide to release the firmware without fixing the bug.

  • Which device?  There's new stuff coming here with System 6 but you want to use what was available since 3.2.0, not what's in the doc for system 6 (available since 3.3.6 - that's system 6)

  • For me, Fenix 7X, with my app using just :constellations with GPS, GLONASS or GPS, GALILEO as per 3.2.0 (works in current stable firmware, crashes since 10.xx alpha firmware and in current beta firmware, stops crashing if I set :constellations to GPS only, or don't set it at all).

    Other apps are affected as well according to the bug report linked in the post (but I haven't tested other apps)

  • (available since 3.3.6 - that's system 6)

    You've mentioned before that 3.3.6 is System 6. Do you have a source for that?

    Consider the history:

    - System 4 is CIQ >= 3.2.0 (for CIQ 3 devices) and CIQ >= 4.0.0 (for CIQ 4 devices)

    - System 5 is CIQ >= 3.3.0 (for CIQ 3 devices) and CIQ >= 4.1.0 (for CIQ 4 devices)

    - System 6 is CIQ >= 3.??.?? (for CIQ 3 devices) and CIQ >= 4.2.0 (for CIQ 4 devices)

    It seems to me that it's more likely that System 6 is 3.4.0 for CIQ 3 devices, but I don't see how we can know for sure unless Garmin decides to explicitly document this. Maybe I missed something or maybe you know something that I don't.

    For System 5, I don't know that it was ever explicitly documented that it's CIQ 3.3.0 for CIQ 3 devices - one way to infer that was by looking at the CIQ 3 System 5 preview device (fenix6prosystem5preview). For System 6, there is no CIQ 3 preview device.

    It matters to me since SDK 4.1.6 was just released. Does this include 3.3.6 features (by the above pattern) or not?

    It would be nice to have some explicit documentation around "CIQ System" levels.

    I also think it would be nice to have a CIQ 3 System 6 preview device, so devs could have more certainty around:

    - the minimum CIQ 3 version for System 6

    - what System 6 features are included in CIQ 3 devices

    I mentioned this before, but I think the messaging around "CIQ System" releases could be improved.

    cc: 

  • I've never really been a fan of the whole "System X" naming.  But I translate it in my head! (and it's backed if you look at the docs)

    For CIQ 3 devices, 3.2 is usually System 4, 3.3.0 to 3.3.5 is System 5, and 3.3.6, will be system 6

    for CIQ 4, 4.0 is system4, 4.1.x system 5, and 4.2.x will be system 6

    As far as what's included, if you look at the API doc, and check "since" and using what I posted above, it's not that hard to figure out

  • I've never really been a fan of the whole "System X" naming.  But I translate it in my head! (and it's backed if you look at the docs)

    For CIQ 3 devices, 3.2 is usually System 4, 3.3.0 to 3.3.5 is System 5, and 3.3.6, will be system 6

    for CIQ 4, 4.0 is system4, 4.1.x system 5, and 4.2.x will be system 6

    As far as what's included, if you look at the API doc, and check "since" and using what I posted above, it's not that hard to figure out

    That might be true if you assume the new enableLocationEvents configuration option (available since 3.3.6) is a System 6-only feature, and not an update to System 5. I think that's a big assumption, but again, maybe you have something else to go on.

    For anyone else reading this, I mean the following in the 4.2.0.beta1 SDK documentation

    I searched all the 4.2.0 beta1 docs for "3.3.6" and that was all I found. But I shouldn't have to do that. None of us should have to guess or figure things out for ourselves, when it comes to "CIQ System" levels.

    In this case, I think your guess is wrong, but as I mentioned elsewhere, I could be wrong as well. We have no way of knowing for sure, unless you have a source from someone that says "enableLocationEvents configuration is System 6 only."

    As a matter of fact, I think the configuration documentation implies the opposite of what you said. All of the configuration options say "since API level 3.3.6", but only two of them mention System 6 devices. To me that implies that System 6 is 3.3.6 but 3.3.6 is not necessarily System 6, but again that's another assumption which can't be proven definitively.

    And it's not as if minor CIQ releases have never been released without incrementing the "System" level.

    For example:

    https://developer.garmin.com/connect-iq/api-docs/Toybox/Attention/BacklightOnTooLongException.html

    Given that System 4 was >= 3.2.0, should I have assumed at the time that 3.2.1 was System 5, because a new feature was introduced in 3.2.1? Clearly that wasn't the case. How would that be any different from what you said above?

  • But I translate it in my head! (and it's backed if you look at the docs)

    Wow amazing! The same thing we've all been doing, except it always causes confusion with newer developers and end users.

    Like the other thread where someone keeps asking why CIQ >= 4 doesn't include 3.3.6 features.

    For CIQ 3 devices, 3.2 is usually System 4, 3.3.0 to 3.3.5 is System 5, and 3.3.6, will be system 6

    Let's see if this stands the test of time.

    I fully admit I might be wrong when I say I think 3.4.0 is System 6, but it seems like you're pretty certain of yourself here.

  • BTW I just opened the SDK 4.1.6 docs for Position.enableLocationEvents.

    You agree that 4.1.6 is *not* System 6, right? We both agree that System 6 is >= 4.2.0.

    So what's 3.3.6-specific stuff doing in SDK 4.1.6?

    Seems like another data point to confirm my guess that 3.3.6 is just a minor update to System 5, same as 4.1.6.

    But again I could be wrong. If only Garmin would document this stuff explicitly.

  • Notice the difference between "CONSTELLATION_*" (3.2.0)

    and "CONFIGURATION_*" (3.3.6)

    Use what I posted to determine System 5 (or System 6)

  • Notice the difference between "CONSTELLATION_*" (3.2.0)

    and "CONFIGURATION_*" (3.3.6)

    Use what I posted to determine System 5 (or System 6)

    Go back and read what I said carefully, including my latest post.

    Then look at this screenshot carefully.

    Or just continue to make arrogant, condescending statements with 100% certainty.

  • You agree that 4.1.6 is *not* System 6, right? We both agree that System 6 is >= 4.2.0.

    You are confusing the SDK version with the VM version on a device.  They are not the same.

    If the Min API for something is 3.3.6, it means only system 6.  There are 2 System 6 preview device available.

    I think things would be clearer of you'd watched the 2022 GDVC.  Maybe the videos will be posted soon.