How to add a new data field to an existing watch face?

I have a Garmin D2 Air X10 watch. When customizing the default watch face you have the option of setting the data fields for the 3 data field 'slots' on the watch face. You can choose between things like weather, steps, battery, etc. I want to add a new (custom) data field as an option for these slots, but when I go through the process of creating a data field and installing on my watch, it is not listed as an option when customizing the watch ui.

Is this even possible? Or am I probably not doing something correctly?

(See this Garmin tutorial for the specifics of the section I am referring to.)

---

Alternatively, if it's impossible for new data fields to be added to default watch faces, does Garmin have a repository of default watch faces in Monkey C somewhere where I use as a basis?

  • - Connect IQ data fields are designed to only be used within native activities/sports such as Run or Bike, not watch faces

    - Default/native watch faces aren't implemented in Monkey C, and Garmin doesn't provide examples of native watch face clones re-implemented in Monkey C, although there are a few closed-source native watch face clones in the CIQ store. You could take a look at the source for the popular Crystal watchface (not a clone of a native face, but it's nice): https://github.com/warmsound/crystal-face

    - For new devices which support CIQ 4.2, Garmin has added the ability for CIQ device apps to publish complication data to be displayed on CIQ watch faces and Face It watch faces. I'm not sure if native watch faces can subscribe to CIQ complication data as well, as i don't own one of those devices (reading between the lines, it seems like the answer is no, so far, but I could be wrong.)

    https://www.youtube.com/watch?v=HOcQ3cY5W4A

    https://developer.garmin.com/connect-iq/api-docs/Toybox/Complications.html

    https://developer.garmin.com/connect-iq/core-topics/complications/

    According to the docs, Complications are supported by your watch. Strangely enough, devices/d2airx10/compiler.json in the SDK states that connectIQVersion is 4.0.1, but hopefully that's just an oversight. (According to one of the changelogs for D2 Air X10, it was previously updated to System 5, which means that it should support at least 4.1) Shouldn't be a problem as long as you don't try to set minApiLevel higher than 4.0.1 (and there should be no need to do so.)

    EDIT: Obviously I was wrong when I said it shouldn't be be a problem.

  • SDK states that connectIQVersion is 4.0.1

    Hmm, strange my watch is showing 4.2.0 as the apiVersion - are these measuring different things?

    Ok, thanks - will look into Complications and see if I can get the watch face to sub to them. Bit unfortunate that the Complication apl seems rather limited in supplying a label, ranges, a unit, and a value. Was intending to provide a simple linear graph in my data field as a timeline.

  • Hmm, strange my watch is showing 4.2.0 as the apiVersion - are these measuring different things?

    As per your bug report, I think the device definition is out of date. (And I obviously I was wrong when I guessed it doesn't matter.)

    It seems to me that native watch faces probably can't use CIQ complications anyway. But I could be wrong about that, as well.

  • Yeah, guess we'll find out if/when the bug report gets a reply! Thanks for all your replies and such - really appreciate it!

  • On the watch itself, if you go to Settings>System>About, what do you see for the main Firmware version and the CIQ firmware version?

    For testing, add a device like the forerunner 965 and try that in the sim.  Then under Simulation there is "Complications.  If that's not grayed out, you will be able to see what you are publishing.  Not a solution, but this way you can start testing your code.  Probably then work on a test watch faces that uses your published complications.

  • SW Version: 12.10

    DFU: bbb42a

    Connect IQ: System 6

    API Level: 4.2.0

    Will do - thanks for the advice!

  • Also, I think your watch is based on Venu 2 Plus, which should support complications (its compiler.json does say 4.2 for connectIQVersion). So if you want to test on your watch you should be able to build for Venu 2 Plus and sideload (although that won’t help if/when you want to publish your app in the store.)