Build and Test for CIQ 6.0

Hi,

I was (naively ?) thinking with new SDK 9.1 I would be able to use the new API capabilities such as ScanCode in the SIM?
But when I launch a Debug session, the Sim shows v5.2 in the title-bar so when I have code wrapped with _If (Toybox has :ScanCode)_ ... which, as it is API 6, does not enter the block.

So how do we test new capabilities?

In a moment of madness I thought to change the compiler.json for the Edge 1040 -- which makes no difference in the Sim behaviour (did I miss something?) but when >Build for Device and sideload the PRG files on my Edge 1040 (that I know from the About pages has CIQ 6.0.0) ... the code does go into the block and after a bit of old-skool println debugging I could render the generated QR code.

But this hack seems not the correct way to deploy Release versions.

This is my first year of going through a major version bump; are there updates to the device JSON still to come or something else? 

Image for attraction...

Top Replies

All Replies

  • It's the chicken-egg problem for Garmin: they can't release devices in the SDK before the real devices get the updated firmware because then users wouldn't be able to use your build.

    So the only thing we can do is to ask for a preview device to be added for now

  • I half get that… but thought the combination of the minimumAPI in the manifest and the use of “has” meant that one build would be safe across CIQ versions on devices. Otherwise there would be a need to wait for every device to update which will never happen with some users on the long tail.

  • Set has to be executed at run time vs compile time with

    --disable-api-has-check-removal

    and then you can test with a sideload on a device with CIQ 6.0

    This is exactly the reason a few of us lobbied for the flag to allow the has check at runtime when it was moved to compile time.

  • Thanks Jim… and that’s some flag name there —disable-api-has-check-removal !!

    But doesn’t, I guess, help with preference for debugging on the Sim first. What happens to allow that ?

    Or will only 2026+ devices that launch with a lowest-issued CIQ.of 6.x go into that list.  Running code on Edge and Watch devices is already tricky to deal with all the differences so having a way to test on an Edge with 5.2 and the same device that was updated to 6.0 would obviously be helpful.

  • To debug in the sim you need to wait for updates to the device files for 6.x, which won't happen until devices have production FW with ciq 6.0.  Until then, you need to test with sideloads.  I would strongly suggest that you do not hack the device files used in the sim.

  • OR as I said, and as we saw a few times in the past, Garmin could add a preview device.

  • which won't happen until devices have production FW with ciq 6.0

    Edge x40 / x50 series got Production FW v30.18 30-days ago with CIQ 6.0.0

    Someone else could probably confirm what Forerunner x70 (FW 16.28) from 29-days ago and Fenix (21.x) from 13/23 days ago are on?

  • I can confirm that Fenix 8 Solar with 21.25 has CIQ 6.0.0.

  • Using

    if(Toybox has :ScanCode) {
        temp=temp+"s";
    } else {
        temp=temp+"n";
    }
    I verified that at least one device with CIQ 6.c runs as expected when built with run-time has.  In the sim I see "n" and "s" on the real device.
     
    So it looks like there is at least some of the new 6.0 stuff in the current FW on devices.
  • FYI new device updates have dropped in the Connect IQ manager sometime around 17 March 2026

    These include updates to "connectIQVersion": "6.0.0" in compiler.json

    And some fix to Edge1040 swipe-left/right behaviour for Sim widgets with simularor.json updated (swipe-up/down used to be assigned to nextPage/previousPage which is wrong on Edge which uses horizontal paging)