131 lines
3.6 KiB
Markdown
131 lines
3.6 KiB
Markdown
# 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](https://developer.garmin.com/connect-iq/sdk/)
|
|
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:
|
|
|
|
```bash
|
|
# 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)
|
|
|
|
```bash
|
|
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!
|