"Metric" analog watchface for Garmin devices. (obviously a joke)
Go to file
2025-11-04 18:46:25 +01:00
.claude initial version [by claude] 2025-11-03 18:44:29 +01:00
resources 12h shadow 2025-11-04 18:26:12 +01:00
source digital displays 2025-11-04 18:46:25 +01:00
.gitignore initial version [by claude] 2025-11-03 18:44:29 +01:00
CLAUDE.md "second" hand 2025-11-04 17:49:07 +01:00
IMPROVEMENT_IDEAS.md "second" hand 2025-11-04 17:49:07 +01:00
manifest.xml metric => decimal rename 2025-11-03 19:35:46 +01:00
monkey.jungle initial version [by claude] 2025-11-03 18:44:29 +01:00
PLAN-decimal-watchface.md metric => decimal rename 2025-11-03 19:35:46 +01:00
README.md metric => decimal rename 2025-11-03 19:35:46 +01:00

Decimal Day Progress Watchface

A novelty Garmin watchface that displays time as decimal day progress (French Revolutionary Time style) instead of traditional 12/24 hour format!

Concept

Instead of the traditional 12-hour clock, this watchface divides the day into 10 equal parts and displays your progress through the day as a decimal number from 0 to 10.

Time Conversions

  • Midnight (00:00) → 0.0
  • 6:00 AM → 2.5
  • Noon (12:00) → 5.0
  • 6:00 PM → 7.5
  • End of day (24:00) → 10.0

Features

  • Analog watchface with 10 divisions (0-9)
  • Rotating red hand showing current day progress
  • Digital decimal time display
  • Clean, minimalist design
  • Supports most modern Garmin devices

Building the Watchface

Prerequisites

  1. Garmin Connect IQ SDK - Download from developer.garmin.com
  2. Java Development Kit (JDK) - OpenJDK recommended
  3. Visual Studio Code (optional but recommended)
  4. Garmin Monkey C Extension for VS Code (optional)

Build Methods

Method 1: Using Visual Studio Code

  1. Open this folder in VS Code
  2. Ensure the Monkey C extension is installed
  3. Press the play button in the toolbar
  4. Select your target device from the simulator

Method 2: Using Command Line

If you have the SDK installed and $SDK_PATH set:

# Build for simulator
$SDK_PATH/bin/monkeyc \
    -o DecimalWatchFace.prg \
    -f monkey.jungle \
    -y $SDK_PATH/bin/developer_key

# Run in simulator
$SDK_PATH/bin/connectiq

Method 3: Using monkeybrains (if available)

monkeybrains build
monkeybrains run

Deploying to a Real Device

  1. Build the .prg file using one of the methods above
  2. Connect your Garmin device via USB
  3. Copy the .prg file to the GARMIN/APPS folder on your device
  4. Safely disconnect the device
  5. The watchface should now be available in your watchface selection menu

Project Structure

MetricWatchFace/
├── manifest.xml                       # App configuration
├── monkey.jungle                      # Build configuration
├── source/
│   ├── DecimalWatchFaceApp.mc        # Application entry point
│   └── DecimalWatchFaceView.mc       # Main watchface logic
└── resources/
    ├── drawables/
    │   ├── drawables.xml             # Drawable resources
    │   └── launcher_icon.png         # App icon (placeholder)
    └── strings/
        └── strings.xml               # String resources

How It Works

The watchface calculates decimal time using the formula:

decimalTime = (hours + minutes/60 + seconds/3600) / 24 * 10

This value (0.0 to 10.0) is then displayed:

  • Graphically via a rotating red hand on an analog face
  • Digitally as a decimal number at the bottom of the screen

Supported Devices

This watchface supports a wide range of Garmin devices including:

  • Fenix series (5, 5 Plus, 6, 7)
  • Forerunner series (245, 645, 945, 955)
  • Vivoactive series (3, 4)
  • Venu series (1, 2, 2 Plus)

See manifest.xml for the complete list.

Notes

  • The launcher icon is currently a placeholder - you can replace it with your own PNG image
  • The watchface uses a simple black background with white/red elements
  • Updates occur every second when active to show smooth hand movement

Future Enhancements

Potential improvements:

  • Add date display
  • Battery indicator
  • Step count or other fitness metrics
  • Customizable colors via settings
  • Different hand styles
  • AMOLED-optimized always-on mode

License

This is a fun/joke project - feel free to use and modify as you wish!