Watchface Builder for Garmin

Watchface Builder for Garmin

Premium

Version 8.0.6

  • Added: tendency of sensor history data
  • Update: an improvement of the size of app (more coming)

Thanks for u/emo_ape’s suggestion, I added the following tendency data fields.

The way how to calculate the tendency is:

  1. First retrieve the last hour’s sensor history data,
  2. calculate the average value (v1) of the first half hour (-30 minute to now)
  3. calculate the average value (v2) of the second half hour (-60 minutes to -30 minutes)
  4. return the difference of v2 and v1 (v2 – v1)

You could also use a math expression to fine tune the value by entering the duration of seconds.

(sh.trend)(4, 1800) will return pressure tendency from the last 30 minutes.

Version 8.0.5

  • Fixed: Low power display honors visibility expression
  • Added: low power mode will update the second data fields (tm9, tm9.1, etc.)
  • Added: grid lines

If you set the visibility of the second object, during the low power mode when screen is updating, app will also check the expression of visibility and decide if the second should be visible or not.

The following data fields ((tm9), (tm9.0), (tm9.1), (tm9.2), (tm9.3), (tm9.4)) will be updated during the low power mode.

A new object (grid line) was added to builder. This will be useful for drawing the grid lines under a chart data field.

You can specify the color of grid lines and spacing between lines, and also you will rotate the object to show horizontal or vertical grid lines. All those fields can use expression to make it further dynamic.

Version 8.0.4

  • Low power partial updates will check the visibility expression
  • Low power partial updates includes:
    • time object with second format (s or ss)
    • data fields with second (tm9, tm9.1, and tm9.2)

If you want to disable low power update, please check the option under the global section.

During the low power mode, app will not update the text that are curved text.

When you design the objects which will be updated during the low power mode, you should

  1. place the object on top of a solid color background
  2. make the area as small as possible
    • for time object, set the format to s or ss only, don’t mix the time object with other formats (like hour, minute etc.)
    • for data field, don’t use expression, use only a token: (tm9), (tm9.1), or (tm9.2).
  3. use stock font instead of custom font (custom font will work but consumes more battery)

Have fun.

Version 8.0.3

Please consider to subscribe to our premium membership plan.

  • Add premium features: ad-free, run app in simulator, save design, export to IQ, etc.
  • Added data fields: total days in current month, total days in current year, is leap year.
  • Fix bugs: curved text clicking area, hidden object clicking area, custom image position of arc segment, and more.
  • Improvements: loading time of design in builder is improved (and more is coming).

Verify App

To check how your design runs, you can use premium function “Verify”. First open your design, click “Verify”

Select which device you want your app to run, you can set other fields like time, 12 or 24 hours, units, language, etc., then click “Generate”. The server will launch your app in Garmin Simulator, and capture some data points for you to review.

The first column will show the data like running time, and memory, and the right side will show how your app displays on both high power and low power mode.

Usually you want your app to use less running times, and the peak memory shouldn’t close to max memory (memory usage: 15.8/124kB, means current memory usage is 15.8kB, and the maximum memory your watch can have is 124kB).

Sometimes your app could cause error, it will show up the error message.

Please let me know what other information you want to be captured and display at the result page.

Timeline

As the premium member, you can save your design any time by clicking “Save” button on the top right corner.

Your file history will list on the right side, and you can reverse back your design by clicking “open” icon, or delete it. The green highlight row means that’s design you clicked build previous. Monthly membership will have max 10 files saved on server, and other membership will have max 20 files.

Version 8.0.2

  • Hold to launch

You can set a complication for an object, when that object is pressed, the associated app will be launch.

Current (4/29/23) supported devices are:

  • D2™ Air X10
  • D2™ Mach 1
  • epix™ (Gen 2) / quatix® 7 Sapphire
  • Forerunner® 265
  • Forerunner® 265s
  • Forerunner® 965
  • fēnix® 7 / quatix® 7
  • fēnix® 7S
  • fēnix® 7X / tactix® 7 / quatix® 7X Solar / Enduro™ 2
  • MARQ® (Gen 2) Athlete / Adventurer / Captain / Golfer
  • MARQ® (Gen 2) Aviator
  • Venu® 2
  • Venu® 2 Plus
  • Venu® 2S
  • Venu® Sq 2
  • Venu® Sq 2 Music

I don’t have device with touch support, so I haven’t test it on actual devices, but it works in Garmin Simulator.

Enjoy it.

Version 8.0.1

  • Select display unit based on device’s setting
  • Open file dialog to add custom font
  • Display values are saved

Watchface author can set the display unit to what device’s setting is (metric or statute)

Version 7.5.2

  • Added: object’s visibility control

Each object has the visibility control now. Each object’s visibility can be based on an expression (make sure the expression will return true or false). You can also choose an expression from the preset expressions (like high power, low power, during day, reach step goal, etc.)

For static objects (like basic shape or image), only high/low power mode works. If you want to control the visibility of those objects based on the expression other than low/high power mode, you will need to set the object to layer object.

Version 7.5.1

  • Added: selected sport type in user activity history

Add a few more data fields, where you can select sport type to display the distance or duration from the user activity history.

Version 7.5.0

  • Added: download with setting file
  • Added: update interval

When downloading the prg file, and if the watch face requires OWM key or dexcom login credentials, you will need to enter them before you can download the prg file. (Sending API key is obsoleted).

Now you can specify the update frequency for entire watch face or each individual object (except time and data field object. WIP).

If your design doesn’t change every second, you can specify the update interval to “1 minute” under global section. The watchface app will update screen every minute, instead of every second during the high power mode. This should save a lot of battery life if your design has a lot of data fields.

Drawing a chart, sunevent circle, rotating hand, or a goal field consumes a lot of computing power, you can now set the update interval for those objects, and based on the profiler result I ran for a few designs, this reduces the runtime tremendously.

But…

Garmin watch face updates screen every second during the high power mode, and every minute during the low power mode. When the screen is updating, usually the entire screen is cleared, and the update routine draws object one by one. In order to draw object based on the set interval, the output of that object will need to be saved in memory. This brings a big issue since the limit of memory device has.

So what you need to do is to turn on the update interval one object at time, build it, and test it on your device to see if IQ error shows up or not. Then add more objects till you receive IQ error or finish adding all.