SmO2Graph is a free, open-source Connect IQ data field that connects to your Muscle Oxygen sensor (Moxy, Humon, etc.) using the standard ANT+ protocol. No paywalls, no limits—just high-resolution physiological tracking.
Direct sensor connections, clean data filtering, and automatic logging into your Garmin FIT files.
Connects directly to any Muscle Oxygen sensor that supports the standard ANT+ profile, including Moxy Monitor and Humon Hex.
Applies a configurable Exponential Moving Average (EMA) filter to smooth out optical noise from skin movement or sensor shifting.
Combines SmO2, Heart Rate, and Power trends to filter out normal sprints and highlight true systemic cardiorespiratory drift.
Automatically records SmO2 and THb metrics directly into your activity FIT files for automatic syncing to Garmin Connect and Intervals.icu.
SmO2Graph organizes your critical pacing metrics into three clear, real-time panels.
Shows your current local oxygen saturation. Below it is the historical pacing line filled dynamically with trend colors (Blue=Recovery, Green=Stable, Yellow=Drift, Red=Strain).
Displays the minimum and maximum SmO2 reached in the session, along with a battery status indicator (Green/Orange/Red) for the paired NIRS sensor.
Tracks your remaining anaerobic energy reserve (W') in percentage and kilojoules. The curve shows how rapidly you are draining (red fill) or recharging (blue fill) your tank.
Displays your current live power output alongside your session average and maximum watts, keeping mechanical work aligned with metabolic cost.
A historical timeline of your power output, color-coded by your standard Power Zones (Z1–Z7) for direct comparison with muscle oxygenation.
See how SmO2Graph translates raw sensor metrics into physiological states during constant climbing and intervals.
During a 42-minute constant power climb (Passo del Bernina), SmO2 remains stable (~42%) while Heart Rate drifts upward (+7.4 bpm). SmO2Graph detects this cardiac drift.
During 5x4' VO2max intervals, SmO2 drops to 15% and rebounds to 70%. The 3D model filters out the initial power surges as green, flagging drift only as you fatigue.
Traditional training zones rely solely on Heart Rate or Power. However, physiology is multi-dimensional. A heart rate of 140 bpm can represent a steady state or severe exhaustion depending on local muscle oxygen extraction.
SmO2Graph's optional 3D Trend Coloring integrates three layers:
Get up and running on your Garmin device in under three minutes.
Download via the Garmin Store. Add the SmO2Graph data field to your active activity profile. Turn on and pair your NIRS sensor.
Open settings in Garmin Connect Mobile. A 5s to 10s Exponential Moving Average (EMA) smoothing window is recommended to filter noise.
Toggle "Use Multi-Dim Coloring" in settings to activate the 3D Power/HR state machine. Leave disabled for default absolute SmO2 zones.
Real reviews from the Garmin Connect IQ Store and Buy Me a Coffee supporters.
"Works great, I can use my Humon Hex with my Garmin again. Thank you so much!"
"Very useful data field. Works really well and does exactly what I need from it. Much easier to see what is happening via a graph. Support from the developer is also excellent."
"Installed it yesterday, used it with a Humon Hex this morning. Worked just like it is supposed to, good app 💪."
SmO2Graph is completely free, fully functional out of the box, and open-source. There are no paywalls or locked metrics. It is built purely to help athletes keep using their expensive NIRS sensors.
If this data field helps you dial in your Zone 2 training or pacing on climbs, consider buying me a coffee to support continued hosting and development.
Buy Me a Coffee