• How to get started!

    Pinned Locked
    1
    15 Votes
    1 Posts
    2k Views
    No one has replied
  • [Guide] How to get deploy working on Linux

    Pinned guide linux suuntoplus development
    5
    18
    5 Votes
    5 Posts
    819 Views
    C
    @SyncBypass Perfect, thank you!
  • [Tip] How to save/load persistent data

    Pinned tip settings variables tutorial json manifest
    8
    2 Votes
    8 Posts
    1k Views
    H
    @SuuntoPartnerTeam Thanks. Exactly what I have expected.
  • 1 Votes
    5 Posts
    1k Views
    S
    @guderaber There is no way to sync images. Also no information to share regarding limitations either, I’m afraid !
  • Examples explained

    Pinned development
    6
    2 Votes
    6 Posts
    1k Views
    SquirrelS
    @Martin-Lillepuu Exactly, and also keep the custom watchfaces (once available) for personal use without going through the bureaucratic hoops of publishing them to official store.
  • [Tip] Helpful CSS for custom layouts

    Pinned tip css development
    1
    0 Votes
    1 Posts
    297 Views
    No one has replied
  • [Inspiration] Share your app ideas

    Pinned inspiration peer-support
    49
    5 Votes
    49 Posts
    6k Views
    T
    @Horizontal_2 I’ve used waypoints that I’ve added on the route for this purpose. This only works if you have the the route so a separate app might be a good idea anyway. I might take a look at this!
  • [Discussion] Share your projects

    Pinned discussion peer-support
    90
    1 Votes
    90 Posts
    11k Views
    D
    First of - thanks to Suunto for opening up the possibility to enrich their marvelous watch lines with features that many users have been missing! It is always amazing to see where the combination of ingenuity and a (somewhat) open development platform takes us. Being a road-runner with some sort of ambition to optimize races I have been missing a race pacer that allows for freely defining pace segments. The races I have participated in (Gothenburg area, Sweden) are quite often pretty hilly and I have found that I waste energy in the wrong places and therefore needed an app that could provide some guidance. The requirements were pretty close to “RaceWarden Pacer” - but I was missing the possibility to define the distance for the various segments of the race. And. With age comes poor eyesight, so I needed BIG (and clear) numbers to control the pace. The logic/thinking: You define your pacing strategy based on the elevation profile of the race and potentially other factors - this is all done outside of the app. Example from “Göteborgsvarvet” where I decided to try Jack Daniels’ Running Formula which roughly translates to -8s/km/%-gradient (uphill) and +5s/km/%-gradient (downhill). But that is outside the app, just the background to the pacing strategy. [image: 1780157300180-2026-05-18_19-54-08.png] The pacing strategy is pushed to the app through user defined app settings: Segment Distances (km or mile): 2.45 1.79 1.36 1.36 6.59 7.8 Segment paces (min/km or min/mile): 5:18 5:03 5:37 4:55 5:12 5:14 (Is it possible to have two input fields in app settings?) With the user input the total race length is calculated by summation of the Segment Distances (21,35km) - overall race target time (1:51:26) as well as target pace (general) is also calculated. Then comes the tricky part. What is really needed / what can be displayed to help pacing (remember: poor eyesight)? I removed heart rate as I have found it does not work (for me) during races, and landed in the following configuration: [image: 1780125397727-2026-05-30_00-06-13.png] Segment Target Pace: Derived from user input and displayed once a segment is recognized/completed. In essence this is a pretty static value, that only changes when a segment is completed. Segment Pace: Calculated. Similar to Lap Pace but utilizes the user defined Segment Distances/Segment paces, so it’s dynamic and updates as you run. Total Seconds ahead/behind Race Plan: Defined as the deviation between race plan and completed distance/time; naturally dynamic. Needed Pace: Based on initial user input finishing time and total race length are calculated. This is the pace needed for the remaining part of the race to reach the target What would you see as missing? The remaining challenges: I would like to have (I believe) at least some indication on heart rate - but I am not able to get the standard zone gauge to work and lack the skills to create one by myself with the canvas mysteries I tested to include an additional ahead/behind indicator focusing on ahead/behind per segment - but felt that it became more confusing and the display became to crowded - could this potentially be incorporated as a gauge? Compatibility - I believe maximizing fonts will be problematic for smaller watches but have not really had the energy to investigate what/how to make sure it works also for smaller displays Contrast - to me it seems yellow offers the best contrast, but is it just my eyes or a more common phenomenon? All input welcome! (unfortunately it seems my application for the partner development has got lost in the mail, as I applied many weeks ago) Also - I used the app (very successfully) during a recent race!
  • 1 Votes
    11 Posts
    1k Views
    M
    One thing that caused my grief when working with subscribed signals (HR, pace) in main.js or in onLoad is that on the simulator signals are always available. On the watch subscribed signals seem to transition from ‘undefined’ -> ‘NaN’ -> a valid number. I ended up needing to protect any use of these signals by using isFinite(), like this. // Get the index of the the active zone for a 5 zone HR gauge // v current value // zones an array of 4-values defining the 5 zones function getActiveZone(v, zones) { if (!isFinite(v)) return 0; for (var i = 1; i < zones.length; i++) { if (v < zones[i]) return i - 1; } return zones.length - 1; } Inserting systemEvent() was quite effective in pinpointing the point of failure once I understood how to do it. But I do not really get any error message, just something like this. [MR] messages are inserted by me, so I can see something happened after “G4a”, but not what the actual error was. #3251371 26.05.2026 17:44:39 : EVT UI_FRAMEWORK : JS [MR] G1 #3251372 26.05.2026 17:44:39 : EVT UI_FRAMEWORK : JS [MR] G2 #3251373 26.05.2026 17:44:39 : EVT UI_FRAMEWORK : JS [MR] G3 #3251374 26.05.2026 17:44:39 : EVT UI_FRAMEWORK : JS [MR] G4a1-not-supported #3251375 26.05.2026 17:44:39 : WRN UI_FRAMEWORK : JS I am more of a Swift or C# person used to verbose error messages and traceback. But maybe I have been spoiled.
  • [Question] No stupid questions - ask anything here

    Pinned
    142
    4 Votes
    142 Posts
    15k Views
    M
    @DonTomGot No problem, I am more of a Swift guy myself. The functions arcSegment, drawGaugeBackground, pointer and renderGauges are declared as in the onLoad method in t.html. onActivate is also in t.html, same as the onLoad method. The canvas declaration goes at the end of the HTML code in the same file. Good luck
  • 3 Votes
    3 Posts
    186 Views
    Łukasz SzmigielŁ
    @matram this is golden, thanks. I’ll add it to the suuntoplus skill I’ve been working on. I’m trying to aggregate all knowledge about hardware limitations and things that docs or examples don’t cover. Perhaps I should open source it? There are plenty of quirks I’ve stumbled upon, like colors on MIP displays - for example if the color is too dark - it’ll be rendered as black. Or the issue of “back on track” that I’m fighting with currently.
  • This topic is deleted!

    1
    2
    0 Votes
    1 Posts
    57 Views
    No one has replied
  • Asking ClaudeCode to decode Suunto Guide files

    6
    0 Votes
    6 Posts
    443 Views
    Dimitrios KanellopoulosD
    @matram ok right. I was confused. Workouts != activities. I can try to implement a workout upload but I see that ideally you need api access to suunto. for that I suppose you should mail them unfortunately.
  • Precise alignment of text and numbers

    1
    3
    4 Votes
    1 Posts
    137 Views
    No one has replied
  • Main Watch Widgets in OpenSuuntoPlus

    6
    2 Votes
    6 Posts
    918 Views
    suzzloS
    @Mister-PYC a widget for Fasting is my ambition here.
  • Subscriptions to resources not working as expected

    1
    0 Votes
    1 Posts
    151 Views
    No one has replied
  • How to connect Suunto Race to laptop with Visual Studio Code?

    6
    0 Votes
    6 Posts
    343 Views
    D
    As it might help someone else that stumbles on the same problem… At least for me it was this Win11 setting that changed things for the better: [image: 1779361611853-34c5e7c4-b6da-4083-9a1f-d14850795012-image.png] Seems stupid in hindsight, but I was not aware that Default only identifies low-power connectivity Bluetooth devices. Happy days! no I will be able to test my apps!
  • 7 Votes
    2 Posts
    342 Views
    Michele SellaM
    I’ve also added a new branch in the ESP32 repo: https://github.com/SellA/BoschEBikeESP32/tree/feature/multi-mode Besides the standard bridge mode, it now supports exposing standard BLE sensor profiles as well: Power + Cadence Speed + Cadence Power only These modes don’t provide the full Bosch telemetry, but they work without the companion SuuntoPlus app and integrate natively with Suunto’s internal metrics and training features. For example, power data is correctly used for Suunto power zones, training load calculations, and related analytics. I also updated the integrated WiFi access point UI, where all bridge settings can now be configured directly from the browser: [image: 1779313377850-241b5f60-a758-476f-9131-c1158af2009e-image.png] There is now also a simulation mode that allows testing the connection with Suunto watches and bike computers without needing to connect to the actual eBike. Useful for validating the setup or experimenting with different configurations without having the bike nearby.
  • New on Dev-side..... Race Pacer with planned segments/paces

    5
    2
    3 Votes
    5 Posts
    344 Views
    sky-runnerS
    @Tieutieu said in New on Dev-side..... Race Pacer with planned segments/paces: the only “issue” you could have with your preload plan is that even if you plan your 2,45km @5:19/km segment like in your exemple, on the field there is a lot of chances that your segment will not be 2,45km Yes, as someone who uses navigation routes extensively I can tell that whatever distance was planned, it always end up being inaccurate. In my experience, when running on trails, planned distances can easily be 5% too short. For example, If the on-the-route distance to a waypoint was 20 km, it reality it can end up being 21 km.
  • 5 Votes
    3 Posts
    326 Views
    Mister PYCM
    @enriqueescoms Hello Here a new version I realized while looking to suuntoplus big number that in face I can also use the total full scren iI want, so I decided to let the original white below part because I feel it is nice, but instead to remove the clock on the top so that I can now use better the screen which allow me to show both the thousand informations as well as the unit information in a better manner here some screen shots : for the distance and compared to the sport screen with 3 fields when the swimmer swim already 450 m [image: 1779232089752-c8704d52-5b10-43f7-8d9d-e9c155ca2259-image.png] the same but now compared to the graphic and when a swimmer already swim 1 kilometer and 25 meter [image: 1779232170551-1354e6a9-4868-4165-b95c-ed8b3993d247-image.png] for the time compared to the sport screen with 4 fields when it is 1 h and 10 minutes in the morning … yes yes there are crasy swimmers … or me !!! [image: 1779232316977-7df9c74f-0222-4f82-adc4-1092920f36b1-image.png] and for the duration compared to suunto plus big number after 14 minutes and 5 seconds [image: 1779232240218-527a5090-35b3-4168-88c0-3696027d3a12-image.png] the beauty is that now if I want I can also put some unit information like km. and m. in very small font for the distance… eventually I could also complexify even more the app byt puttin around it the famouse blue, green, yellow, read circles that show in which heart area I’m currently located … I cannot put here some ZIP files so I cannot give you my proof of concept but if someone wants it I can give it for free … if this allow some more people to raise that having a bigger number app which has really giant font to SUUNTO … then I give it without any royalties

Suunto Terms | Privacy Policy