Should GPS be automatic in newer SDKs? And font questions with latest SDKs

Just built a watch face based on a watch face I had loved on my 5&6 (and 7 till an update broke it). Fwiw, it's prefixed with TSWF; he might have a few versions for older Fenixes (TSWF05 is still in the ConnectIQ store but I have multiple versions, as he started with 01.)

I noticed maybe with my 6 or 7 that I didn't need to do an activity to get a GPS lock, but in installing this code he made available to me, I'm getting a NO GPS error. Do I need to wait? Get out of sleep mode? (I finished late...) 

I also noticed that for my purposes, the FONT_XTINY was too big and I needed to go smaller. Only issue is that one font I wanted to use seemed...too small. Or at least it didn't load. I couldn't for the life of me figure out why because I initially compiled this on a much older SDK, something like 4.x or so, and the font was fine. The only things I really changed were the main .MC file, the background image from 280x280 to 454x454, and obviously, the manifest.xml. Why would a font work on one SDK/device and not another? 

Thanks in advance. I still can't really code but thanks to AI, I got it working. Muscle tone1 (after a ridiculous amount of hours. I know this is not the features forum, but Garmin should absolutely consider an AI app/watchface making tool! The built in watchface builder is farrrrrr too limited). 

  • There is an app for non programmers: Face it. You can see it in the bottom of the Connect IQ app.

    Regarding the rest: I wasn't able to understand what you want to ask, but fir the font size: which font that was that you used in SDK 4? And on which device? My guess is that it uses exactly the same amount of pixels to display them on the newer devices, just they have a higher resolution and pixel density, so they take up less physical space on the screen

  • There is an app for non programmers: Face it. You can see it in the bottom of the Connect IQ app.

    I think they know that, but they don't like it.

    The built in watchface builder is farrrrrr too limited
    Regarding the rest: I wasn't able to understand what you want to ask

    I think the part about GPS probably has something to do with some watchface feature that requires a recent GPS location (like weather), and they're saying that it worked without a recent activity in Fenix 6 and 7, but it doesn't seem to work with this watchface they modified ("TSWF*"?)

    All I can say about that is if a watchface needs a GPS location, there isn't really a way to do that afaik except by opening an activity (with GPS enabled) and waiting for a GPS fix. (The activity can be discarded after you get a fix.)

    Watchfaces don't have a way to turn on the GPS themselves, so they rely on the last known location from a recent activity.

  • And once Activity.Info has currentLocation, It goes "stale" after a time and becomes null (the time varies by device), so if the watch face sees a valid location, it should be saved, probably to storage, so that if currentLocation is null later on, the value from storage can be used.

  • Yes, Face It doesn't do it for me. I'm a data-heavy watchface user, and limiting variables doesn't give me what I want from data-heavy watchfaces.

    I can guarantee that the font doesn't load because all I did was switch out the variable of the font in fonts.xml and once the size of the glyphs were too small, none of the fonts under a particular size loaded. This was a Fenix 8 (51mm but the device is defined as "fenix847mm" and applies to both devices) per the manifest and this was the font.

    I'm not sure how the developer did this the last time, but I guess he pulled up the weather like this post suggests. I haven't done any activities in awhile for there to be a GPS fix, and this just sat in WAIT status until the watchface crashed, probably because it never got a GPS lock or there were storage issues.

  • Ok, so this is a custom font, then what I wrote seems to be the reason why the same font (same number of pixels height, width) looks smaller on a watch with higher pixel density display

  • Well the issue is it doesn't render at all. I don't see anything in the documentation to confirm this but it seems that there is a minimum size threshold and if you go under that minimum then the font will not be visible. 

    I am really new to this and I am mostly using AI to assist me with building this; that being said, I made a pretty good amount of progress and pretty much rewrote the entire thing, and I have a good understanding of the API now (I did major in computer science; I haven't done this in practice for over two decades though). But I'm pretty confident about that size limitation even though I can't find the documents to show that this hypothesis is likely true. 

    Would you know or am I just making stories up? Joy

  • To me it doesn't sound logical. I'm pretty sure it's not because of the size. Try to enlarge the font and see that it won't render either.

    About AI: some of my colleagues use it sometimes. I tried it a few times. It can help when you know what you do. It doesn't help beginners IMHO. Certainly not in Monkey C that can hardly be found on the internet, and half of what is on the net is garbage. Including part of the official documentation.

  • It has actually helped a bit. The benefit of using Github Copilot (not my preferred AI) and/or Cursor (which IMO is better) is it can read content of a web page to help with syntax.

    I wouldn't know what font to use to enlarge. Fenix 6 (min API 3.0.1)'s Graphics.FONT_XTINY is much more appealing to me than Fenix 8's (min API 5.0.1, just for testing purposes) Graphics.FONT_XTINY ... and it's smaller to boot. How do I bring the Graphics.FONT_XTINY from the F6 to the F8's environment? (See video.)

    I figured out the issue about min font limitations; you're right, it's not because of the size. It was defined improperly in the glyph. So thanks for that, it actually made me figure things out (while making yet another video of the issue and realizing why it was happening). 

  • Hey!

    If I understand well, are you trying to remake the TSWF04 watch face ? That legendary watch face some of us are dreaming of to make a comeback ?
    If so, how is it going so far ?

    What will be the name of it ? So I can track it down

  • Sorry for the super late reply

    I wouldn't know what font to use to enlarge.

    flocsy meant that if you thought your custom font was too small to work properly, you could've tested that theory by enlarging the same custom font and seeing if it works. His assumption was that it still wouldn't work after enlargement.

    How do I bring the Graphics.FONT_XTINY from the F6 to the F8's environment?

    You could look at the corresponding font information in the device reference and try to import the same (or similar) font as a custom font.

    For example, for Fenix 6 (I mean the specific model, not the "family" or "series"), the worldwide part number has the following font information:

    So you could try to use Roboto Condensed as a custom font with a size of 19. You would need to obtain the Roboto Condensed TTF and use BMFont to convert it to FNT/PNG:

    [https://developer.garmin.com/connect-iq/core-topics/resources/#fonts]

    (scroll to the "Fonts" section if the link doesn't take you there)