Fenix Chrono compatibility problem

Hi,
I thought that the new Fenix Chronos are fully compatible to the Fenix3 family.
I just tried with two of my old designs to add the Fenix chrono to the manifest.xml file.

While both watch faces are working fine with new SDK 2.1.3 on F3, F3-HR, D2, D2-Titanium both watch faces crash on the simulator with the Fenix Chrono
I get
Failed invoking <symbol>
Out Of Memory Error ...

(This is not the "Too Many Arguments Error")
So my question:
are the Fenix Chronos really 100% compatible with the Fenix 3 family or do we have to check all our old designs if they still work on the Fenix Chronos?

Unfortunately I do not own a Fenix Chrono to test it on a real device.

Thanks a lot in advance for any advice!
  • That's a surprise.
    Might be a very exceptional issue.

    Shouldn't be too hard to find the root cause.

    Let us know once you've found it.
  • Former Member
    Former Member over 8 years ago
    I agree that that is odd. I have access to a chronos here and would be willing to test it and get you the error log from the device. You should be able to run those watch faces without issue.

    Coleman
  • Former Member
    Former Member over 8 years ago
    If you are building an app that you developed on Fenix 3 for Fenix Chronos, you will want to check any bitmaps you are using in the app. The Chronos supports more colors, so bitmaps that do not specify a color palette will double in size when built for Chronos. If this is your issue, you can specify the Fenix 3 color palette for your bitmaps, and they will return to the original size.
  • If you are building an app that you developed on Fenix 3 for Fenix Chronos, you will want to check any bitmaps you are using in the app. The Chronos supports more colors, so bitmaps that do not specify a color palette will double in size when built for Chronos. If this is your issue, you can specify the Fenix 3 color palette for your bitmaps, and they will return to the original size.



    Hi,
    yes this was the issue.
    I ran the same code with the same bitmaps for all devices, including,Forerunners, Epix, VA, VA-HR.
    It worked without any issues for ALL devices except for VA-HR and Fenix Chrono.

    After some time it became clear that it was the watch face picture. (I usually use bitmaps in my faces for background)
    I tried out the different bitmap options in the resource file and and finally I could nail down the problem to the faces where I didn't explicitly define the color palette for a certain watch face bitmap.
    After defining the palette it worked also for VA-HR and Fenix Chrono.

    The strange thing to me is why it works on Epix and VA without those issue. They should have the same color options like VA-HR and F-Chrono (It seems that the resource compiler behaves different ?)

    And finally what happens now on the real device, where Garmin recently did update all Fenix 3 Apps also to the Fenix Chrono?
    Here is a link to one of my watch faces that didn't work in the simulator for the Fenix Chrono

    @Coleman, Brian, if you could download this face and see if it works on the real device, this would be really great.

    https://apps.garmin.com/de-DE/apps/f8a9a025-6b55-4dcd-8c2b-ea9c405ccd86

    Thanks a lor for your feedback and support!
  • Former Member
    Former Member over 8 years ago
    I think that the problem is deeper as usual: my application uses bitmap font (just numbers with the size of somewhere inbetween HOT and THAI_HOT, on FR devices this is very big size difference).
    With IQ eclipse plugin 2.1.3 Memory usage showed that font uses around 3kb of memory, now with 2.1.4 it shows more than 7kb in simulator, free memory checks on actual device (Forerunner 230 with FW5.40 shows free memory before loading font = 19520 bytes, after loading font = 16288, so it's actually closer to 2.1.3 plugin values). Of course - nothing changed in font itself. Thus, it seems that bitmap fonts memory consumption is broken in plugin 2.1.4.

    Does this mean that fonts are now also considered multicolor pictures with additional requirements to palette definition?

    P.S. I checked programmers guide and didn't find anything about applying palettes to bitmap fonts. Did I miss something?
  • Former Member
    Former Member over 8 years ago
    The Epix device actually has significantly more memory than the other devices and has a larger pool available to ConnectIQ. There are also some memory accounting changes that have caused the original vivoactive to have a bit more memory available. (Some app elements are not counted towards the app on 1.x devices, but the memory pool is stricter now, and that cannot be done anymore.)

    The font issue is not expected. These should not have any color depth. I'll create a ticket to look into the memory increase there.

    Fenix 3 apps are compatible directly with the Chronos without recompiling, which is how auto-migration was supported. Since apps are not rebuilt during this process, the smaller Fenix 3 bitmaps do not get inflated. They are mapped automatically to the larger color space when they are drawn to the screen.
  • Great, thanks a lot for clarification!
  • Hi,
    yes this was the issue.
    I ran the same code with the same bitmaps for all devices, including,Forerunners, Epix, VA, VA-HR.
    It worked without any issues for ALL devices except for VA-HR and Fenix Chrono.

    After some time it became clear that it was the watch face picture. (I usually use bitmaps in my faces for background)
    I tried out the different bitmap options in the resource file and and finally I could nail down the problem to the faces where I didn't explicitly define the color palette for a certain watch face bitmap.
    After defining the palette it worked also for VA-HR and Fenix Chrono.

    The strange thing to me is why it works on Epix and VA without those issue. They should have the same color options like VA-HR and F-Chrono (It seems that the resource compiler behaves different ?)

    And finally what happens now on the real device, where Garmin recently did update all Fenix 3 Apps also to the Fenix Chrono?
    Here is a link to one of my watch faces that didn't work in the simulator for the Fenix Chrono

    @Coleman, Brian, if you could download this face and see if it works on the real device, this would be really great.

    https://apps.garmin.com/de-DE/apps/f8a9a025-6b55-4dcd-8c2b-ea9c405ccd86

    Thanks a lor for your feedback and support!


    Hi,

    Can I know how do you "define the color palette"?

    Thanks,
    Paul
  • Hi,
    the color palette for a picture is defined in the resources.xml file.

    Here an example.
    <bitmap id="bckgrnd2" filename="images/BCKGRND2.png" dithering="none">
    <palette>
    <color>FFFFFF</color>
    <color>AAAAAA</color>
    <color>555555</color>
    <color>AA0000</color>
    <color>000000</color>
    </palette>
    </bitmap>
  • All watches that accept the IQ 2.1 are limited to 58 K of memory for a watch face (735XT, Vivi HR, Fenix Chronos)
    Reasonably do not exceed 54 K otherwise it is not possible to change the settings (onchangesettings)

    Why this limitation I do not know?