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

    [Discussion] Share your projects

    Scheduled Pinned Locked Moved Suunto Plus Development
    discussionpeer-support
    72 Posts 28 Posters 5.9k Views 26 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.
    • Nikolai SimonovN Offline
      Nikolai Simonov @guderaber
      last edited by

      @guderaber @unpaired8373

      Hey guys!

      Looking at your screenshots, Your projects looks really ambitios, I want to give you a heads-up on a few technical constraints:

      • First off, remember that you don’t have nearly as much memory here as you do in a web browser (suuntoPlus simulator).

      • For topographic maps, we usually rely on specific symbols. I highly recommend looking into the spritemap technique for this.

      • There is no any sync api. If you want to upload information (like routes), your probably go into the Settings API, which allows you to pass a string. data from suunto app settings.
        However, the string length is limited and you probably run out of memory if you try to put whole json in the settings, so you’ll need to design an efficient encoding protocol maybe try treating the string as a binary array…

      • On Suunto watches, the Canvas API is heavily restricted.

        • there’s about 50 draw calls.
        • also not a full-fledged AP, e.g there is no drawImage method.

        which means you won’t be able to render images directly onto the canvas. worries not it could be bypass by layout layering technics, probably.

      don’t want to say it’s impossible but it could be a challenging!

      Suunto Race 2 Ti
      Suunto Race
      Suunto 9 Baro

      Suunto Aqua
      Suunto Wings

      surfboomerangS U 2 Replies Last reply Reply Quote 0
      • surfboomerangS Offline
        surfboomerang @Nikolai Simonov
        last edited by

        @Nikolai-Simonov said in [Discussion] Share your projects:

        First off, remember that you don’t have nearly as much memory here as you do in a web browser (suuntoPlus simulator).

        Check! Found that out the hard way 😄
        Project worked fine in the simulator but totally crashed my watch upon field testing. I was surprised that it not only crashed the app, but the watch as a whole. The watch totally hang.

        Is it known how much memory each watch type has?

        Suunto Vertical Titanium Solar
        OnePlus Nord 4

        1 Reply Last reply Reply Quote 0
        • U Offline
          Unpaired8373 @Nikolai Simonov
          last edited by

          @Nikolai-Simonov Thanks for the suggestions.

          I have a first draft of a (hopefully) efficient encoding for the route data to get it onto the watch and not consume all the memory at once. Is the settings API the only way to get data into the watch? I saw something in the BLE methods that sounded like the watch could pair to a phone acting as BLE peripheral and offering data via characteristics.

          there’s about 50 draw calls.

          what exactly do you mean by that? Only 50 functions or only 50 calls before everything goes sideways?

          Nikolai SimonovN 1 Reply Last reply Reply Quote 0
          • Nikolai SimonovN Offline
            Nikolai Simonov @Unpaired8373
            last edited by

            @Unpaired8373 said in [Discussion] Share your projects:

            I saw something in the BLE methods that sounded like the watch could pair to a phone acting as BLE peripheral and offering data via characteristics.

            yes it as LiveTracking app exactly working, however i believe it’s much more drawbacks then wins. 1. you lost connection with the main suunto app, it’s really annoying for users. 2. the mtu so small payload ~20B to sync smth complex you need to orchestrate queue etc. and keep in mind memalloc on every step. 3. what if you lost packet int the middle?.. etc. I personally think encoding to string and copy - paste to setting is much more convenient way for this purpose.

            @Unpaired8373 said in [Discussion] Share your projects:

            what exactly do you mean by that? Only 50 functions or only 50 calls before everything goes sideways?

            So, i faced up this behaviour in parkrun QR app, that canvas just became black after around 50th call on canvas it became black. to be honest it solving relativelly easy via 9patch tehnique

            Suunto Race 2 Ti
            Suunto Race
            Suunto 9 Baro

            Suunto Aqua
            Suunto Wings

            U P 2 Replies Last reply Reply Quote 1
            • U Offline
              Unpaired8373 @Nikolai Simonov
              last edited by

              20B MTU is not much indeed.

              @Nikolai-Simonov said in [Discussion] Share your projects:

              So, i faced up this behaviour in parkrun QR app, that canvas just became black after around 50th call on canvas it became black. to be honest it solving relativelly easy via 9patch tehnique

              I really have to get my 90s game dev skills up to speed 😄 I’ve been in firmware development for a good time now but never with graphics output.

              Do you know if one can change HTML DOM from the javascript?

              U 1 Reply Last reply Reply Quote 0
              • U Offline
                Unpaired8373 @Unpaired8373
                last edited by

                To answer my own question: apparently you cannot

                G 1 Reply Last reply Reply Quote 1
                • O Offline
                  oleksandr
                  last edited by

                  I wasn’t happy about the lack of proper gym tracking experience so I built my own. Hopefully I get accepted to the partner program to submit the package soon.

                  Meet oSpotter

                  5beceacb-69cd-4c79-8ff9-9e032466da5b-image.png

                  49dc2685-512a-43df-9084-6e0c2b292f27-image.png

                  Watch: Suunto Race 2

                  OutdoorManO brechtvbB Jan KrejčíJ 3 Replies Last reply Reply Quote 18
                  • OutdoorManO Offline
                    OutdoorMan Silver Members @oleksandr
                    last edited by

                    @oleksandr nice one, this looks really good!!

                    1 Reply Last reply Reply Quote 0
                    • brechtvbB Online
                      brechtvb Bronze Member @oleksandr
                      last edited by

                      @oleksandr This is very nice, i was pondering about a kettlebel swing counter. But we only have an accelerometer, there is no gyroscope.

                      1 Reply Last reply Reply Quote 0
                      • Thibault B.T Online
                        Thibault B. Bronze Member
                        last edited by Thibault B.

                        I just sent for approval a simple SuuntoPlus app called Manual Interval+.

                        I built it because I wanted an easy way to run manual intervals while still seeing the key information from the previous lap, and to have something that works for any interval style — even sessions without real rest blocks.

                        It shows the main metrics for the current interval, along with a small panel that switches between the most important details from the previous one.

                        Hope it’s useful! Feedback is welcome.

                        Few details:

                        • pace displayed is average of interval (makes more sense than current one IMO).
                        • HR displayed is current one for current interval.
                        • tenth of second displayed even if we reached the minute or more.
                        • interval number display alternates with time of the day.

                        ManualIntervals+-4.png Sans titre-3.png

                        1 Reply Last reply Reply Quote 6
                        • G Offline
                          guderaber @Unpaired8373
                          last edited by guderaber

                          @Unpaired8373 I managed to get it work on my Race S. There was quiet a few mismatch between simulation and this watch with text position, and also had some crashing as well but now it works, unfortunately i have to clear the watch fully/reinstall.

                          For objects i made a json based object that contains metadata + lines + predefined objects with coordinates which can be drawn + it might have free drawing background in the future (at a limited extent) to be able to highlight rock contours :

                            "name": "Salathe", "wall": "El Cap", "grade": "V", "pitches": 3, "width": 400, "height": 1600, #route metadata
                            "anchors": [
                              {"x": 75,"y": 1217,"grade": "IV","length": "33m","info": "This is the description of the first pitch"}, #points with metadata and text notes for additional info
                              ...
                            ],
                            "route": [[75,1217],...], #free drawing 
                            "features": [ #drawn objects
                              {"type": "slab", "x": 82, "y": 1057,"w": 52, "h": 52},
                              {"type": "tree","x": 102,"y": 1196},
                              {"type": "crack","x": 251,"y": 723,"w": 9,"h": 120},
                              {"type": "rappel", "x": 177,"y": 807},
                              ...
                          ]}
                          

                          I made a visual editor that can export these jsons, and the sync can be the suuntoplus app text input, so i can paste the json from clipboard.

                          U 1 Reply Last reply Reply Quote 0
                          • U Offline
                            Unpaired8373 @guderaber
                            last edited by

                            @guderaber Nice!
                            I am surprised it works to just have a JSON copy&past over.

                            Do you run a canvas based implementation?

                            G 1 Reply Last reply Reply Quote 0
                            • surfboomerangS Offline
                              surfboomerang
                              last edited by surfboomerang

                              Today my app was approved 🙌
                              1000015276.jpg

                              There seems to be a bug in the manifest config for some reason. The text size dropdown list is correctly populated with values from an array but when I select another value the Suunto App crashes. The SuuntoPlus app works fine however.

                              Data.json

                                  "textSize": {
                                      "sizes": [
                                          "Small",
                                          "Medium",
                                          "Large"
                                      ],
                                      "size": 1
                                  }
                              

                              Manifest.json

                              {"shownName": "Text size", "path": "textSize.size", "type":"enum", "valuePath": "textSize.sizes"},
                              

                              Does anyone have a clue?
                              Unfortunately I cannot test this in the simulator.

                              Edit:
                              Entering the values directly seems to work.

                              {"shownName": "Text size", "path": "textSize", "type":"enum", "values": ["Small", "Medium", "Large"]},
                              

                              Suunto Vertical Titanium Solar
                              OnePlus Nord 4

                              R safariS 3 Replies Last reply Reply Quote 9
                              • G Offline
                                guderaber @Unpaired8373
                                last edited by

                                @Unpaired8373 I tried the image based implementation, but its not viable as i the image has to be baked in the source code, although it worked on the watch as well. The canvas based was working, but i still have to test some more complicated topos with a lot more objects, then i’ll try to get it approved, because otherwise i cannot not use it.

                                Still have to play a bit more with UX as my app has 3 screens (selector + topo + pitch notes) and also some minor QoF improvements.

                                U 1 Reply Last reply Reply Quote 0
                                • R Offline
                                  runyx17 @surfboomerang
                                  last edited by

                                  @surfboomerang Perfect. Very useful. Thanks

                                  1 Reply Last reply Reply Quote 0
                                  • safariS Offline
                                    safari @surfboomerang
                                    last edited by safari

                                    @surfboomerang I think I’m mistaken… I can’t find where to add a note 🙂

                                    Correction… the relevant part appeared after synchronization :).
                                    I’m testing it. Thanks.

                                    history:
                                    Suunto Vertical 2 titanium Black (new:) )
                                    suunto vertical solar titanium
                                    suunto 9 baro
                                    suunto ambit 3
                                    suunto ambit 2
                                    Suunto Smart Heart Rate Belt

                                    suunto App: apple iphone 14

                                    1 Reply Last reply Reply Quote 0
                                    • P Offline
                                      Pottu @Nikolai Simonov
                                      last edited by

                                      @Nikolai-Simonov, @unpaired8373
                                      I played around with canvas and found that you can quite easily go around the draw limit just by splitting the drawing to multiple canvas with their own build functions.

                                      1 Reply Last reply Reply Quote 1
                                      • U Offline
                                        Unpaired8373 @guderaber
                                        last edited by

                                        @guderaber interested in your results.

                                        I had some issues with the canvas and Nikolais comments made me explore the sprite-map appoach, which seems to work although giving a different set of challenges. Let’s see where this leads. Maybe a hybrid sprite+canvas approach is the solution.

                                        1 Reply Last reply Reply Quote 1
                                        • Jan KrejčíJ Offline
                                          Jan Krejčí @oleksandr
                                          last edited by

                                          @oleksandr this looks awesome 😍 we definitely need more weight lifting apps

                                          Suunto Vertical 1 Solar Titanium

                                          O 1 Reply Last reply Reply Quote 0
                                          • safariS Offline
                                            safari @surfboomerang
                                            last edited by

                                            @surfboomerang

                                            The app is generally good. I needed an app like this.
                                            It reminded me of my Casio Databank from my childhood 🙂
                                            There are just a few issues.

                                            1. It would be nice if old notes could be deleted from the watch.
                                            2. Entering and editing long notes is difficult on the phone. I save them to a notepad and then copy and paste. It’s a bit impractical.
                                            3. You can’t use the buttons on the watch to pause or end the exercise while on this screen. There’s fast forward/rewind and zoom in/out. You have to move to the next part.

                                            Finally, it’s a great app, thank you. This should definitely be a widget. It would be great to be able to define it as a shortcut to access notes. Wishing you continued development.

                                            history:
                                            Suunto Vertical 2 titanium Black (new:) )
                                            suunto vertical solar titanium
                                            suunto 9 baro
                                            suunto ambit 3
                                            suunto ambit 2
                                            Suunto Smart Heart Rate Belt

                                            suunto App: apple iphone 14

                                            surfboomerangS 1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            Suunto Terms | Privacy Policy