Maximum memory (for data field) per device

Hi, is it documented somewhere the maximum available memory for a data field, per device? I can run each individual device in the sim to find out but wanted to see if this was documented somewhere convenient. Thanks!

/Fredrik

Top Replies

All Replies

  • I am not seeing memory limits on that reference page.  Was the information added?  Was it later removed?  Where can I get that info?

    It's there. The top of the page has a list of devices. Scroll to the device you want and click on it. This will take you a section with more details about the device. The top of the section will have information about memory limits for each kind of CIQ app.

    [https://developer.garmin.com/connect-iq/reference-guides/devices-reference/]

    [https://developer.garmin.com/connect-iq/reference-guides/devices-reference/#approach%C2%AEs60]

    I will say that page has several issues, such as:

    - it's one gigantic static page, which means it loads slowly on desktop and crashes on iOS (Safari)

    - there's no navigation element, which means that it's easy to scroll to a certain sub-section and lose track of which device you are looking. (Yes, the URL fragment changes when you initially click on a device at the top of the page, but it doesn't change again if you scroll to another device, because it's just a static page)

    - each device-specific section has further subsections for part numbers, but there's no explanation or reference for part numbers. (To be fair, compiler.json in the device library has the same issue.) The TL;DR, which Garmin does not explain, is that:

    - older devices would have one part number for Asia-Pacific (APAC) and another part number for Rest of the World / Worldwide (ROW/WW)

    - APAC would often be months behind ROW/WW in terms of firmware and CIQ version. In some cases, APAC would never catch up, which meant that if your app required a certain CIQ API level, it's possible that WW models would be supported but APAC models would not

    - Due to storage limitations, APAC models would have better support for APAC fonts/languages, whereas WW models would have better support for non-English, non-APAC fonts/languages

    - most newer devices don't have separate APAC and WW part numbers (although some do). Some devices also have part numbers for certain variants. e.g. fenix7x is broken down into part numbers which map to the following models:

    - fenix 7x - solar edition / fenix 7x - sapphire solar edition / quatix 7x - solar edition
    - fenix 7x / quatix 7x (asia)
    - tactix 7

    - typically, whether you're looking at compiler.json or the device reference page, you want to look at the first part number for any given device, as it's the WW / main part number. This can be confirmed by looking at the worldWidePartNumber key in compiler.json for the given device.

    If you want to see a mapping from part numbers to models, you can use the following request (which is called when you click on the Devices tab of an app on the Connect IQ store website):

    [https://apps.garmin.com/api/appsLibraryExternalServices/api/asw/deviceTypes]

  • One thing to note when you look at memory for an app type, be it in the doc or in the device file for a specific device, is starting with CIQ 2 devices, CIQ takes about 4k of that.

    So for example, if you see 32k for something like a data field, your app really only has about 28K and not 32k,  You do see this in the sim, both on the bottom line and in "View Memory".  Here for example is view memory for a DF on the fenix 5,  Note the "Memory Usage" line..

  • You can see it here: https://github.com/flocsy/garmin-dev-tools/tree/main/csv per app type and device or app type and memory size

  • Ok thanks!  Yeah I'm not a fan of their docs site.  When OSS projects on readthedocs get a search box for free, it makes the garmin docs look awfully antiquated.