Garmin WatchFaces Online Builder

Garmin Watch App Online Builder

Version 6.1.0

  • Added: math expression for data fields
  • Added: position and rotation angle in widget section
  • Added: Air Pollution API from Open Weather Map
  • Fixed: widget name not saved
  • Fixed: missing data causes group field failed

Now you can write a math expression for any data field. For example:

This will output the heart rate from latest sensor history data minus 10.

Version 6.0.2

  • Added: group field
  • Fixed: in low power mode, caching the custom font

To add your own group field, you can first create a series of images in your favorite image editor, then add a custom group field (under datafield->icons->custom group field), set the data field, click “Edit”, and add the serials of images for each possible values of that data field.

Version 6.0.1

  • Fixed: widget left/right alignment issue
  • Added: allow to turn on/off AOD dim
  • Changed: dim AOD screen (instead of shifting)

When your device enters into AOD mode, the watch face will be dimmed. You will still need to follow the rule #1, but instead, the percentage increases to 20%.

Version 6.0.0

  • Added: Layers supported for multiple power modes
  • Added: Design for a screen size, not for just one specify device
  • To-do: DND mode (not working yet)
  • Fixed: goal field indicator
  • Fixed: bunch bugs

Screen size

Your design is starting from picking device’s screen size now.

Your design should work for all devices with the same screen size.

Widget section

On the left side widgets section, the first row is the power mode selector, click one of them will toggle the visibility of widgets in canvas:

  1. All: canvas will show all widgets in your design
  2. High: canvas will show all widgets which are only visible in high power mode
  3. Low or AOD: canvas will show all widgets which are only visible in low power mode. (When your device has always-on function, it will be AOD, otherwise it will be Low)
  4. DND: (not working yet)

The name of widget can be changed by clicking the text on the widget’s header section:

Each widget has three visibility controls:

If you want to hide the widget in certain power mode, check the checkbox.

When a widget is selected, the name of the widget, as well as the size will be displayed in the status bar

If you uncheck “snapping” on the status bar, when moving a widget, it will not auto-align with other widgets. The string in front of “snapping” is the screen size for your design.

There are more changes. If you have any issue, please post it on the reddit forum.

Version 5.2.2

  • Updated: Pointer Goal
  • Added: Line Shape Goal
  • Added: Arc Shape Goal

For pointer goal field, you can drag the rotating control pointer to set the starting angle.

For all above three goal fields, you can specify three data fields: one for the “from” value, one for the “to” value, and one for the “current” value.

For example, you can select:

  • “from” value as a fixed number “0”
  • “to” value as the “Step Goal” datafield
  • “current” value as the “Step” datafield

Then you basically have the step goal field.

To build a pointer goal field, on top of selecting three datafields, you can also select a pointer (like an analog hand). Then the pointer will rotate based on the “current” value between “from” and “to” values.

Version 5.2.1

  • Added: data fields for Connect IQ System 5 SDK

System 5 has all new access to device metrics including:

ActivityMonitor.Info.respirationRateGet the current respiration value
ActivityMonitor.Info.timeToRecoveryGet the current time to recovery
SensorHistory.getBodyBatteryHistory()Get device Body Battery history
SensorHistory.getStressHistory()Get device stress history
System.Stats.batteryInDaysGet the amount of battery remaining in days
UserProfile.Profile.vo2MaxRunningGet the user’s running VO2 Max
UserProfile.Profile.vo2MaxCyclingGet the user’s cycling VO2 Max
UserProfile.getUserActivityHistory()*Get an iterator of the user’s past activities
Weather.getSunrise() Get the sunrise time for a location
Weather.getSunset() Get the sunset time for a location
* doesn’t work in my simulator and my beta version of firmware.

Supported Devices

Connect IQ System 5 has rolled out on a number of devices with more coming:

Now AvailablePublic Beta AvailableComing Soon
Forerunner® 245 Series
Forerunner® 745
Forerunner® 945
Forerunner® 945 LTE
Venu® Series
Venu® 2 Series
Venu® 2 Plus Series
Vivoactive 4 Series
epixTM (gen 2)
fēnix® 5 Plus Series
fēnix® 6 Series
fēnix® 7 Series
Instinct® 2 Series
MARQ® Series
quatix® 6
tactix® 6
Venu® Sq Series

Version 5.2.0

  • Added: rotating pointer between two datafields
  • Added: custom datafield
  • Added: no color quantization for SVG file
  • Fixed: a bug when open design with text of google font

check this demo for both additions (rotating pointer and custom datafield): Garmin Watchface Online Builder – Creating your own watchface app for garmin device without coding (

To add a new custom datafield,

  • open datafield window, scroll all the way down to the bottom, select “Custom code” datafield.
  • In the left widget section, paste the monkey C codes in the data field. (the monkey c codes will need to return a text value)
  • Builder will display the return value on the screen.

Version 5.1.9

  • Fixed: OWM weather condition icon

All weather condition has both day and night icons now.

Please replace your “weather condition – icon” field with the new “OWM weather condition – icon”.

Version 5.1.8

  • Added: counter clockwise rotation
  • Added: snapping on/off
  • Fixed: rounding issue when output with %d

After you select a widget, you can use the arrow keys to move it. Hold the shift key and press arrow key will move the widget one pixel at a time. Also you can use mouse to move widget. By default, (when snapping is on), the widget will try to align with other widgets. but if you turn snapping off, you can move the widget freely without aligning to any other objects.