OpenIQ Devices
← Back

2pi Pulse Halo

· v1.4.6
★★★★★ (32) ↓ 1,000 downloads 1 Free

About

A minimal + fast watchface that draws your heartrate history as a radial chart. Data is beautiful. Turn your pulse data into personal art on your watchface. You’re the artist. A reminder that time is not a straight line. But a dimension with no beginning and no end. As the chart sweeps around the clock, new data erases old data. Nothing is forever and tomorrow's a new adventure. The watchface is powered by your pulse. It comes to life when you put it on. When your pulse stops, it stops too. FEATURES - Low power & optimized. (Under 1 ms per update on Fenix 6 pro.) - Similar power consumption as a stock watchface. - As responsive as a stock watchface when pressing buttons or switching screens. No sacrificing function for form. - 12-hour radial heart chart that shows both average and max. - Customizable segment resolution per hour (1-3). - Customizable colors. - Customizable line widths. - Option to draw heart chart's bars inward or outward. - 3 text data fields (Default layout: top = heart rate, bottom-left = date, bottom-right = next Sunrise/Sunset) - Option to enable up to 4 "progress" data lines above & below the time (E.g., daily steps %, battery %, body battery %, move bar %) - Option to disable all data fields, leaving a super-clean time face. - Less frequent updates during sleep time to save power. DESIGN DETAILS - Our watches are round so it seems natural to draw a round chart. - Try to present data in a natural uncluttered graphic, instead of typical watchface data barf. - Every pixel has a purpose; no superfluous lines. - High-viz time because it's a watch's primary function. - Organic decay of older chart segments to resemble a comet’s tail. - Heart rate range is determined from your User Profile. - Based on Fenix 6's minimal 3-datafield stock watchface that I liked for battery life and responsiveness. Had an itch to add a cool complication (while preserving battery life & snappiness). TECHNICAL DETAILS - Each screen element is redrawn independently (only when there's a change) and cached as a BufferedBitmap. - Heavy circle trigonometry math to draw chart lines are pre-computed and cached. - Chart lines are cached for 1 quadrant only to save memory; reflected to the other 3 quadrants at runtime. - drawLine used instead of drawArc for performance and because short arcs looked worse. - New heart data is fetched incrementally. Only fresh data is processed. No cycles wasted on old data. - Sunrise/Sunset time uses the latest GPS location. The latest location is then saved to Application.Storage as a fallback in case no new live location is available. - anti-burn-in is auto-enabled for AMOLED devices. In Always-On-Display mode, a checkerboard overlay is applied to reduce active pixels to 10% and ensure no pixel is on for more than 3 minutes. PERMISSIONS - GPS permission needed to get the last GPS location for Sunrise/Sunset Time (but GPS is never activated). - Garmin Connect fitness profile permission needed to get your heart rate range for drawing the radial chart. - Sensor History permission needed to read your body battery and stress level data. NOTE: The watchface auto-refreshes when you change Settings. But if it's asleep, please wake it with the wrist gesture to pick up the latest changes.

What's new

NOTE: Please don't leave bug reports, requests or suggestions in the reviews. Instead, click "Contact Developer" on this page. I'll read and reply to every message (add your email for an answer). Thank you for trying this watchface. Looking forward to your suggestions to make this watchface better. If you like this watchface, please leave a review or beer me at https://paypal.me/secretsciencelab New: check out the Analog version of this watchface: https://apps.garmin.com/en-US/apps/62981d7f-a512-45ff-bee2-06aee060e24e 1.4.6 - Updated to SDK 8.4.1 & added D2Mach2 1.4.5 - Added Venu 4 & Fenix 8 pro 1.4.4 - Added Forerunner 570 and 970. 1.4.3 - Added Vivoactive 6, Descent G2 and Approach S50 & rebuilt with latest SDK. 1.4.2 - Added Instinct 3 amoled & rebuild with latest SDK version. 1.4.1 - Added Enduro 3, Fenix E and Fenix 8 and rebuilt with latest SDK version. 1.4.0 - Added option to set/use 4 custom colors. 1.3.36 - Added option to change text datafield color. 1.3.35 - Updated to SDK 7.2.1 1.3.34 - Added "Daily distance" data field option. 1.3.33 - Added Approach S70, Fenix 7 solar, Descent Mk3, Forerunner 165. Updated to SDK 6.4.2. 1.3.29 - Fixed Garmin bug that returns bad GPS location. 1.3.28 - Added "Calories burned today" data field option. 1.3.26 - Added Vivoactive 5, Venu 3 and Venu 3s 1.3.20 - Added option to show colon between hours and minutes 1.3.19 - Added Fenix 7pro and Epix 2pro - Reduced memory usage 1.3.18 - Removed unused settings to save memory 1.3.17 - Added Notification Count data field option 1.3.12 - 1.3.16 - Runtime/battery optimizations 1.3.11 - Added option to turn off individual text data fields 1.3.7 - 1.3.10 - Memory optimizations. - More power-saving optimizations. All elements on the screen are updated incrementally (even individual segments of the radial chart). So over 99% of the time, almost no work is done and the watchface consumes almost no power. 1.3.0 - You can choose which data field you want at the top, bottom-left and bottom-right positions. - This means we can now add more data field options! Please click Contact Developer to send me your suggestions. - You can change the date format. Note that longer formats work best in the top position. - Added an optional gap/space/separator between the horizontal data lines. - Added "Stress level" as a data line option. 1.2.15 - Ultra power-saving and runtime optimizations. Now uses under 0.1% battery per hour and average screen update time is under 1 ms (on Fenix 6 pro). 1.2.0 - Welcome, AMOLED brothers and sisters! (Epix 2, Marq 2, Venu 2, D2 Mach 1, D2 Air X10). - Added anti-burn-in AOD mode (please send me feedback on how it's working on your device -- I only tested it in the simulator as I don't have an AMOLED device). - Watchface now auto-refreshes when you change Settings. If it's asleep, please wake it with the wrist gesture to pick up the latest changes. 1.1.0 - Added "progress" data lines above & below the time (E.g., daily step %, battery %, body battery %, move bar %). - Reduced memory usage to run comfortably on all supported devices.

Permissions

SensorHistoryUserProfilePositioning

Details

Compatible with 122 devices
Updated May 6, 2026
Open on apps.garmin.com ↗