A Garmin Connect IQ meditation app that tracks as an activity the heart rate, HRV, stress, respiration rate provides vibration/sound alerts, heart rate chart and respiration rate chart.
- ability to save the meditation session as Garmin Connect activity
- activity type Meditating Yoga or Breathwork
- ability to configure multiple meditation/yoga/breathwork sessions
- e.g. a 20 min session with 1 min recurring alerts, triggering a different alert on the 10th minute
- each session supports interval vibration alerts
- interval alerts can trigger from a few seconds up to few hours
- pre-configured with default meditation sessions for 5/10/15/20/25/30min and also short vibration every 5min
- also advanced default meditation sessions for 45min and 1h with short vibration every 15min
- HRV (Heart Rate Variability)
- RMSSD - Root Mean Square of Successive Differences (beat-to-beat intervals). Reflects short-term HRV and is primarily influenced by parasympathetic (vagal) activity.
- pNN20 (HRV > 20) - % of successive beat-to-beat intervals that differ by more than 20 ms. Represents the percentage of successive RR intervals that differ by more than 20 ms, linked to vagal tone.
- pNN50 (HRV > 20) - % of successive beat-to-beat intervals that differ by more than 50 ms. Represents the percentage of successive RR intervals that differ by more than 50 ms, linked to vagal tone.
- beat-to-beat interval - reading coming directly from the watch sensor
- HRV Successive Differences - difference between the current and previous beat-to-beat intervals
- SDRR - Standard Deviation of beat-to-beat intervals. Measures overall HRV, reflecting both sympathetic and parasympathetic activity.
- calculated from the first and last 5 min of the session
- HRV RMSSD 30 Sec Window - RMSSD calculated for consecutive 30 second intervals
- HR from heartbeat - beat-to-beat interval converted to HR
- stress tracking
- Stress - summary of the the average stress during the session
- Average stress for the beginning and end of the session (calculated automatically by the watch for session of 5min or more)
- HR Peaks 10 Sec Window
- internal metric for calculating stress
- tracks in overlapping 10 Sec Windows Max HR for each window
- HR calculated from beat-to-beat interval
- respiration rate
- Breathes per minute real time in watches that supports it (only works fine for Yoga activity due to bug in Connect IQ API for Breathing activity)
- configurable preparation time before the meditation session
- configurable finalization time after the meditation session
- summary stats at the end of the session
- Heart rate chart including min, avg and max HR
- Respiration rate chart including min, avg and max estimated respiration rate
- Stress
- HRV
- multi-session mode: after each saved session an intermediate menu lets you (1) start the next session, (2) view the just-finished session summary (Back returns to the menu), or (3) end the multi-session and view rollup summaries / exit
- pause/resume current session using the back button
- ability to configure default custom activity name in Garmin Connect using Garmin Express in PC connected to the watch via USB cable
- Watches that support Connect IQ >= 3.0
- Garmin app store link
- from dliedke/Meditate/tree/main branch
- Vivoactive 3, Vivoactive 3 Music
- Codebase compatible with Connect IQ SDK v4.1.5 or lower
- If compiling with v4.1.6 or higher, disable Monkey C type checker
- Visual Studio code
- For opening use: File > "Open Workspace from File..." and select "./Medidate.code-workspace"
- Use Prettier Monkey C Visual Code extension for formating
- Status Icons - Font Awesome free (SIL OFL 1.1 License)
Sideloading a new PRG build generates fresh encrypted .DAT/.IDX files for Application.Storage, making the standard PowerShell restore script ineffective across builds. To preserve sessions and settings through development iterations, a hidden cloud backup/restore feature is built into the app.
How to access: Long-press on the About screen to open the Dev Tools menu.
Backup to Cloud
Serializes all user sessions and global settings to Firebase Realtime Database. The backup is keyed by the watch's hardware uniqueIdentifier (persists across reinstalls and sideloads). Each backup is timestamped; the menu shows the ID being backed up as a subtitle.
Restore from Cloud
Fetches the list of available backups for this device, sorted most-recent-first. Select a backup to write all settings and sessions back to Application.Storage. The app must be restarted after restore for changes to take effect.
Cross-device restore
To restore another device's backup (e.g. after switching watches), enter the source device's uniqueIdentifier in the Restore From Device ID field in the Garmin Connect Mobile app settings for Meditate. Leave it empty to restore from the current device's own backups. The Dev Tools menu shows the active restore source ID as a subtitle on the Restore item.
Secrets (resources/secrets.xml, gitignored)
firebaseUrl— RTDB base URLfirebaseSecret— database legacy secret (used as?auth=token)
Seeresources/secrets_template.xmlfor the required format.
TTL / cleanup
Firebase RTDB has no built-in TTL. Backups accumulate indefinitely. Clean up old entries manually via the Firebase Console or with:
curl -X DELETE "https://meditate-garmin-default-rtdb.europe-west1.firebasedatabase.app/backups/<deviceId>/<timestamp>.json?auth=<SECRET>"
