garmin-morse-time

Garmin Morse Time

A minimalist, elegant, nerdy Garmin Connect IQ watch face that displays the current time with Morse digits.

Morse Time

Available from Garmin Connect IQ Developer portal.

Note
Morse Time is part of a collection of unconventional Garmin watch faces. It has been developed for fun, as a proof of concept, and as a learning experience. It is shared as is as an open source project, with no commitment to long term maintenance and further feature development.

Please use issues to provide bug reports or feature requests.
Please use discussions for any other comments.

All feedback is wholeheartedly welcome.

Contents

Morse digits

The Morse code represents the digits 0-9 with five dot or dash symbols each. The table below shows the complete encoding.

Decimal digit Morse code
0 -----
1 .----
2 ..---
3 ...--
4 ....-
5 .....
6 -....
7 --...
8 ---..
9 ----.

Features

The Morse Time watch face supports the following features:

Screenshot Description
Morse time Morse time
The current time is displayed as Morse digits, in four rows: Two top rows in white font show the two hour digits (including zero, when hour < 10), the bottom two rows in ornge font show the minute digits.
Morse time Standard time
A setting in the Customize menu enables the user to toggle the standard time display on and off. The standard time is shown below the Morse time in smaller, dimmer font.

Fonts

The Morse Time watch face uses custom fonts:

The development of Garmin watch faces motivated the implementation of two useful tools:

The font development proceeded as follows:

The table below lists all font sizes provided for the supported screen resolutions.

Resolution Shape Element Font Size
148 x 205 rectangle Morse time SyneMono regular 37
148 x 205 rectangle Standard time Ubuntu regular 16
176 x 176 semi-octagon Morse time SyneMono regular 44
176 x 176 semi-octagon Standard time Ubuntu regular 19
215 x 180 semi-round Morse time SyneMono regular 45
215 x 180 semi-round Standard time Ubuntu regular 19
218 x 218 round Morse time SyneMono regular 54
218 x 218 round Standard time Ubuntu regular 23
240 x 240 round Morse time SyneMono regular 60
240 x 240 rectangle Morse time SyneMono regular 60
240 x 240 round Standard time Ubuntu regular 26
240 x 240 rectangle Standard time Ubuntu regular 26
260 x 260 round Morse time SyneMono regular 65
260 x 260 round Standard time Ubuntu regular 28
280 x 280 round Morse time SyneMono regular 70
280 x 280 round Standard time Ubuntu regular 30
320 x 360 rectangle Morse time SyneMono regular 80
320 x 360 rectangle Standard time Ubuntu regular 34
360 x 360 round Morse time SyneMono regular 90
360 x 360 round Standard time Ubuntu regular 39
390 x 390 round Morse time SyneMono regular 98
390 x 390 round Standard time Ubuntu regular 42
416 x 416 round Morse time SyneMono regular 104
416 x 416 round Standard time Ubuntu regular 45
454 x 454 round Morse time SyneMono regular 114
454 x 454 round Standard time Ubuntu regular 49

Build, test, deploy

To modify and build the sources, you need to have installed:

Consult Monkey C Visual Studio Code Extension for how to execute commands such as build and test to the Monkey C runtime.

You can use the included Makefile to conveniently trigger some of the actions from the command line.

# build binaries from sources
make build

# run unit tests -- note: requires the simulator to be running
make test

# run the simulation 
make run

# clean up the project directory
make clean

Note
To successfully execute the test and run targets, you need to start the simulator first. Consult developer.garmin.com/connect-iq/connect-iq-basics/your-first-app for details.

To sideload your application to your Garmin watch, see developer.garmin.com/connect-iq/connect-iq-basics/your-first-app.