Connect IQ Watchface · Garmin Instinct 2
A full halachic watchface for the Garmin Instinct 2 (176×176 MIP monochrome display). Shows all 11 zmanim, Hebrew date, shaah zmanit, next-zman countdown, period progress bar, and an innovative day-arc timeline — built from scratch in Monkey C using the NOAA solar position algorithm.
176 × 176 px monochrome MIP display (Garmin Instinct 2)
Horizontal bar from Alot → Tzet with tick marks for each zman and a live sun-dot showing the current moment
Today's halachic hour length in minutes, displayed in the Instinct 2's GPS-button viewport (top-right corner)
Full Hillel II calendar calculation — correct leap years, month lengths, and all 4 postponement rules (dechiyot)
Name, clock time, and live countdown to the next upcoming zman — updates every second
Shows how far into the current halachic period you are (e.g., 40% through Hanetz → Shema window)
Switch between GRA (sunrise-based) and MGA (Alot72-based) shaot via Garmin Connect settings
Auto-updates from GPS if available; falls back to lat/lon set in Garmin Connect (default: Jerusalem)
UTC offset derived by diffing local vs UTC clock — avoids Garmin's timeZoneOffset API quirks on some firmware versions
Jerusalem · 18–19 Sivan 5786 (Jun 18–19, 2026) · GRA opinion · UTC+3
The watchface SolarCalc is compared against the authoritative Hebcal API using the same NOAA algorithm and KosherJava-compatible degree-based twilight angles.
| Zman | Derivation | Watch | Hebcal | Δ (min) |
|---|---|---|---|---|
| Alot HaShachar | 16.1° below horizon (degree-based, season-correct) | 04:06 | 04:06 | -0.0m |
| Misheyakir | 11.5° below horizon | 04:34 | 04:34 | +0.1m |
| Hanetz HaChama | Sunrise (zenith 90.833°, standard refraction) | 05:34 | 05:34 | -0.3m |
| Sof Zman Shema (GRA) | 3 shaot after sunrise | 09:07 | 09:07 | +0.1m |
| Sof Zman Tefillah (GRA) | 4 shaot after sunrise | 10:18 | 10:18 | +0.2m |
| Chatzot | Solar noon | 12:40 | 12:41 | -0.6m |
| Mincha Gedola | 6.5 shaot after sunrise | 13:16 | 13:16 | 0.0m |
| Mincha Ketana | 9.5 shaot after sunrise | 16:49 | 16:49 | +0.3m |
| Plag HaMincha | 10.75 shaot after sunrise | 18:18 | 18:18 | +0.2m |
| Shekia | Sunset | 19:47 | 19:47 | +0.1m |
| Tzet Kochavim | 42 minutes after sunset | 20:29 | 20:29 | +0.1m |
| Shaah Zmanit (GRA) | 71.1 min | |||
Maximum deviation: 0.8 min (Chatzot). All other zmanim within ±0.4 minutes.
Written in Monkey C (Garmin Connect IQ SDK 3.4.4). Targets device ID
instinct2
(part 006-B3888-00). No external libraries — pure algorithmic implementation.
ZmanimFaceView.mc 477 lines Main watchface view — day-arc layout, next-zman panel, progress bar, shaah circle
SolarCalc.mc 187 lines NOAA solar position algorithm — sunrise/sunset + all zmanim derivations
HebrewCal.mc 140 lines Hebrew calendar converter (Hillel II / Metonic cycle, full postponement rules)
ZmanimFaceApp.mc 21 lines Connect IQ AppBase entry point
Download Garmin Connect IQ SDK Manager from developer.garmin.com, install to /Applications/SdkManager.app
Open SDK Manager → Download latest SDK (tested on CIQ 7.x). Installs to ~/Library/Application Support/Garmin/ConnectIQ/Sdks/
Run: openssl genrsa -out developer_key.pem 4096 && openssl pkcs8 -topk8 -inform PEM -outform DER -in developer_key.pem -out developer_key.der -passout pass:yourpassword
Run: ./build.sh yourpassword — outputs ZmanimFace.prg for sideloading
Connect Instinct 2 via USB, copy ZmanimFace.prg to GARMIN/APPS/ on the device, then set it as the active watchface