Suunto app Forum Suunto Community Forum
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    VeloClimb - Cycling Climbing App

    Scheduled Pinned Locked Moved Suunto Plus Development
    3 Posts 2 Posters 37 Views 2 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Panagiotis KritikakosP Offline
      Panagiotis Kritikakos Gold Members
      last edited by Panagiotis Kritikakos

      Started a new app, VeloClimb, to provide cycling oriented climbing info, mainly for climb categorization. Still under development, given time and mood.

      Most of the metrics are already out there somehow. Wanted to have some specific info in an app.

      Github repo: https://github.com/panoskrt/SuuntoPlusClimbApp

      Current features

      • Smoothed live gradient based on vertical speed and ground speed.
      • Rolling 30-second VAM (vertical ascent rate).
      • Maximum smoothed gradient for the current session.
      • Total ascent from Suunto altitude data.
      • Running average gradient from valid moving samples.
      • Six climb categories from Flat through HC+.
      • Two watch screens that can be switched with the watch buttons.
      • Workout summary outputs for VAM, average gradient, and maximum gradient.

      Calculations

      Gradient

      When ground speed is greater than 0.3 m/s, the instantaneous gradient is calculated as:

      gradient = (vertical speed / ground speed) * 100
      

      The raw value is limited to -60% through +60%, then smoothed with an exponential moving average using alpha = 0.2. When the speed threshold is not met, the previous smoothed value is retained.

      The app tracks the maximum smoothed gradient and calculates average gradient as the mean of smoothed-gradient samples collected while the speed threshold is met. State is initialized when the app loads and is held for the current app session.

      VAM (sort of - based on current meters per second)

      evaluate() is expected to run approximately once per second. The app stores up to 31 ascent samples and calculates the current ascent rate from the oldest and newest values in that rolling window:

      VAM = (latest ascent - oldest ascent) / elapsed sample intervals
      

      The output uses Suunto’s VerticalSpeedMountain_Fourdigits format. Despite the summary label Avg VAM, the value is the current rolling-window VAM rather than a whole-session average.

      Climb categories

      Categories are based on the smoothed gradient. Negative gradients are currently included in Flat; there is no separate descent category.

      Output value Gradient Label Color
      0 < 2% Flat Default
      1 2% to < 5% Cat4 Green
      2 5% to < 7% Cat3 Blue
      3 7% to < 8% Cat2 Yellow
      4 8% to < 10% Cat1 Orange
      5 10% to < 12% HC Red
      6 >= 12% HC+ Dark red

      Watch screens

      Screen 1 - Climb screen

      • Current gradient, formatted as a percentage.
      • Current rolling VAM.
      • Maximum gradient.
      • Total ascent.
      • Current category label with its category color.

      Pressing the watch’s lower/down button sends an app event and switches to the second screen.

      Screenshot 2026-09-10 at 21.49.15.png

      Screen 2 - Profile screen

      • Climb duration from Fusion/Altitude/AscentTime.
      • Average gradient for the current app session.
      • Remaining route ascent when navigation data is available.

      Screenshot 2026-09-10 at 21.51.06.png

      Suunto Vertical Titanium Solar | 9 Peak | Ambit 3 Peak | 3 | Gekko
      Garmin eTrex 30x

      Łukasz SzmigielŁ 1 Reply Last reply Reply Quote 2
      • Łukasz SzmigielŁ Offline
        Łukasz Szmigiel @Panagiotis Kritikakos
        last edited by

        @Panagiotis-Kritikakos nice one, I’ll be happy to test it. I was thinking about something similar.

        S9PP 2.50.28

        Panagiotis KritikakosP 1 Reply Last reply Reply Quote 0
        • Panagiotis KritikakosP Offline
          Panagiotis Kritikakos Gold Members @Łukasz Szmigiel
          last edited by

          @Łukasz-Szmigiel Would be happy for feedback. I’ve done some field testing myself, kinda works. There’s one more branch I’m working on with gauge-like display based on the current climb category and added current hr reading, but still needs some refinement.

          Suunto Vertical Titanium Solar | 9 Peak | Ambit 3 Peak | 3 | Gekko
          Garmin eTrex 30x

          1 Reply Last reply Reply Quote 0

          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

          With your input, this post could be even better 💗

          Register Login
          • First post
            Last post

          Suunto Terms | Privacy Policy