Acknowledged

Instinct3 - compiler.json lists wrong screen types

My build process relies on accurate data inside the 'compiler.json' files for each device. 

To those who will suggest that I should use runtime checks or annotations, please understand that my current build process generates .jungle files dynamically for reasons specific to how I optimize my compilations.  I find it preferable to read this data from the device information directly.

Normally, the displayType property accurately shows either "mip" or "amoled".

But for these devices, the displayType is incorrectly listed as "lcd."

The marketing website clearly lists these as amoled/mip, so I assume this is an error/carryover from prior instinct devices.

  • Another alternative could be to assume that any device with a displayType of "lcd" and a 2 colour palette (black and white) actually has a MIP display.

    But then again, I can't be 100% positive that there's no Garmin with a monochrome non-MIP LCD display....

  • If you want to know whether a device really has a MIP screen, you could do the following:

    - check for onPartialUpdate in *.api.debug.xml (this will cover all the CIQ 3+ devices with an actual MIP screen)

    - check for a displayType of "mip" in compiler.json (this will cover all the old pre CIQ 3 devices with an actual MIP screen)

    Sorry, instead of "device" I should've said "watch".

    For example, edge130 has a monochrome MIP display, its displayType is "lcd", and it doesn't support onPartialUpdate() (because of course it is not a watch, and onPartialUpdate() is only for watchfaces).

    Maybe you would be better off scraping the Garmin spec pages haha.

  • > check for onPartialUpdate in *.api.debug.xml (this will cover all the CIQ 3+ devices with an actual MIP screen)

    i.e. if you search *.api.debug.xml in the device library for method="true" symbol="onPartialUpdate", only files for devices which actually support onPartialUpdate() will be matched.

  • > The marketing website clearly lists these as amoled/mip, so I assume this is an error/carryover from prior instinct devices.

    To be clear, the Garmin spec sheet for Instinct 2 devices also lists them as "MIP" (and monochrome), so I think jim_m_58's implication that Garmin purposely uses a displayType of "lcd" for monochrome devices is correct. Since MIP is actually a type of LCD screen, it's not "wrong", although it is confusing and inconsistent.

    However, the AMOLED Instinct 3 display is neither monochrome nor a type of LCD, so I would agree that "lcd" is the wrong display type here.

    TL;DR I think:

    - MIP Instinct 3 should have a display type of "lcd", for consistency with other monochrome (MIP) models (Instinct 2, Descent G1)

    - AMOLED Instinct 3 should have a display type of "amoled". This is where the bug is, imo

    If you want to know whether a device really has a MIP screen, you could do the following:

    - check for onPartialUpdate in *.api.debug.xml (this will cover all the CIQ 3+ devices with an actual MIP screen)

    - check for a displayType of "mip" in compiler.json (this will cover all the old pre CIQ 3 devices with an actual MIP screen)

  • > maybe there is some new technology in these devices

    I think Occam's razor applies here. The simplest explanation is that it's a copy-paste error, as opposed to some sort of LCD/AMOLED hybrid (which nobody has ever heard of).

    The apparent fact that the MIP Instinct 3 actually should have a displayType of "lcd" (to remain consistent with Garmin's existing displayType scheme for monochrome MIP displays) kind of makes me believe this theory even more. I think the "lcd" displayType was correctly copy-pasted to the MIP Instinct 3 compiler.json, but it should not have been copy-pasted to the AMOLED Instinct 3 compiler.json.