Hi everyone,
I'm currently developing a Connect IQ Watch Face (targeting AMOLED/MIP devices like Epix Gen 2 and Forerunner series) where the design incorporates a direction/heading arrow pointing along the bezel.
I’m encountering the standard OS behavior where ActivityInfo.currentHeading briefly updates for a few seconds (usually right after exiting a native app that activated the magnetometer) before freezing as the system power-gates the compass sensor to conserve battery.
I fully understand the platform constraints—specifically that Toybox.Sensor events are restricted in WatchFace apps to prevent excessive battery drain, and that continuous polling of the hardware compass isn't permitted in low-power or even high-power watch face modes.
Before pivoting the project structure, I would love to get advice from experienced developers on how you usually handle or approach this:
-
UX / Fallback Patterns: When designing a watch face with a heading indicator, how do you gracefully handle stale heading data? Do you prefer hiding the indicator entirely when
currentHeadingbecomesnull/stale, or keeping the last valid bearing frozen? -
Repurposing the Indicator: Have you found good design alternatives for an outer arrow on a watch face (e.g., repurposing it as a barometric trend indicator, wind direction pointer, or a high-power second hand)?
-
App Architecture: If live compass feedback is a core requirement, do you recommend switching to a
Watch Appassigned to a HotKey, or pairing a Watch Face with a Glance/Widget?
Any tips, architectural suggestions, or design best practices would be greatly appreciated!
Thanks in advance!
