garmin-decimalface/README.md

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!