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
    89 Posts 30 Posters 10.4k Views 30 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.
    • A Offline
      AYamshanov Bronze Member
      last edited by

      I wanted to share a project/proposal I have been working on recently. I am a fan of both Suunto and Meshtastic (the open-source, off-grid mesh network), and I have been thinking about how powerful it would be to bring them together. I have just posted a proposal on the Meshtastic GitHub.

      The goal is to allow users of Suunto watches (and users of other sport/smartwatches if they support the integration) to receive messages & geo-positions from the Mesh-network. Since this is an integration between two different ecosystems, a lot depends on the feedback and interest from the Meshtastic side.

      Regardless of the outcome, diving into the logic of how these two systems could talk to each other has been an incredibly fun and exciting experience! 🙂

      Sportwatch.jpg

      1 Reply Last reply Reply Quote 2
      • HurstyH Offline
        Hursty
        last edited by

        I Just got my device this last week and was happy to find they just released the Development Environment to make apps.
        I ended up selling my Garmin after they release a rucking activity but only for the newest devices.

        74473b0d-fbcc-45e5-9700-6b68879c2162-image.png

        So now i can build one here. (Right now just Pandolf Calculation) But playing with adding the ability to adjust weight on the phone optionally as well (instead of just as a settings though the phone app)

        1 Reply Last reply Reply Quote 2
        • Ɓukasz SzmigielƁ Offline
          Ɓukasz Szmigiel @Thibault B.
          last edited by

          @Thibault-B. Well
 I’m still waiting for Suunto to open up an account for me.

          S9PP 2.50.28

          SvenningS 1 Reply Last reply Reply Quote 0
          • SvenningS Offline
            Svenning @Ɓukasz Szmigiel
            last edited by

            @Ɓukasz-Szmigiel I’m also waiting for your app.đŸ”ș😇😃đŸ”ș

            Suunto Race 2 (from Garmin FR255, short stint with Suunto RUN)
            Suunto Wing 2 + Spark
            Suunto smart HRM
            OnePlus 13

            1 Reply Last reply Reply Quote 0
            • Ɓukasz SzmigielƁ Offline
              Ɓukasz Szmigiel
              last edited by

              It’s live, babe!

              const.png

              I’m now proudly waiting for all “dude, it sucks / doesn’t work” comments 😄

              S9PP 2.50.28

              1 Reply Last reply Reply Quote 9
              • S Offline
                SyncBypass
                last edited by SyncBypass

                I have something a little different. I built an android app which can deploy your suuntoplus apps from your phone! Basically you don’t need to worry about sync anymore. You just have your custom watch apps inside some directory on your phone and then send them over whenever you need to. No more need for for a pc / vscode 💆

                Works on my Race and I don’t see why it wouldn’t on others. Teste with fea files (remember to select the right built package for your watch). Suunto may at some point change the protocol, but probably not anytime soon. Hope this helps anyone 😳
                <removed old link>

                Screenshot_20260429-200714.png

                Edit. if the app does not connect, make sure you aren’t connected to something else like VS Code for example. The app has few permissions and no internet connection btw 🙂

                Edit 2. Here’s the repo if you wish to build it yourself. At the top you can see “tree”, which shows the root of the repository where you can find the pre-built binary.

                Ɓukasz SzmigielƁ A 2 Replies Last reply Reply Quote 4
                • Ɓukasz SzmigielƁ Offline
                  Ɓukasz Szmigiel @SyncBypass
                  last edited by

                  @SyncBypass this is pretty cool. Care to share some details on the protocol used to push the s+ app via bt?

                  S9PP 2.50.28

                  S 1 Reply Last reply Reply Quote 1
                  • S Offline
                    SyncBypass @Ɓukasz Szmigiel
                    last edited by

                    @Ɓukasz-Szmigiel the repo now contains some kind of an explanation. As I don’t understand anything about anything, I simply handed the captured communication to an LLM and had it vibe the app.

                    Ɓukasz SzmigielƁ 1 Reply Last reply Reply Quote 1
                    • Ɓukasz SzmigielƁ Offline
                      Ɓukasz Szmigiel @SyncBypass
                      last edited by

                      @SyncBypass cool, I’ll take a look in the repo. Thanks, that’s really clever work you did. It’s amazing what can be done with llms now.

                      S9PP 2.50.28

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

                        @skyfi yes, i would be happy to have some collaborator, that may introduce new ideas. https://github.com/aabbeell/suuntopo
                        reach me out there, as i dont read this very frequently

                        Ɓukasz SzmigielƁ 1 Reply Last reply Reply Quote 0
                        • Ɓukasz SzmigielƁ Offline
                          Ɓukasz Szmigiel @guderaber
                          last edited by

                          @guderaber your app seems pretty complex on the processing side. Did you test it on the watch alongside other S+ apps? Does it crash other apps?

                          S9PP 2.50.28

                          G 1 Reply Last reply Reply Quote 0
                          • A Offline
                            AYamshanov Bronze Member @SyncBypass
                            last edited by

                            @SyncBypass Great stuff! Your project actually got me thinking about different ways to interface with the device, and I’ve been experimenting with a web-based approach. The idea was to see if I could use the browser to access the watch directly for quick tasks without any setup.

                            As a small experiment, I’ve managed to get a basic filesystem viewer working to explore the internal folders: https://wfhub.net/flasher

                            wfhub.net.png

                            My long-term goal is to see if it’s possible to build a simple generator for custom watch faces that could be uploaded right from the browser. It’s still very much a “work in progress” and a bit of a research project for me at the moment.

                            I’m curious to see where your project goes, and I’m still trying to figure out if there’s enough community interest in these kinds of DIY tools to keep pushing further. Anyway, thanks for sharing your progress!

                            Ɓukasz SzmigielƁ Ze StuartZ 2 Replies Last reply Reply Quote 1
                            • Ɓukasz SzmigielƁ Offline
                              Ɓukasz Szmigiel @AYamshanov
                              last edited by

                              @AYamshanov how do you interface with the Vertical 2 via USB?

                              S9PP 2.50.28

                              A 1 Reply Last reply Reply Quote 1
                              • Ze StuartZ Offline
                                Ze Stuart Gold Members @AYamshanov
                                last edited by

                                @AYamshanov this is great. Nice work! Same for @syncbypass. I’m not convinced Suunto will approve of this work, but having control over my own hardware is really interesting.

                                https://zulusierra.co

                                1 Reply Last reply Reply Quote 1
                                • A Offline
                                  AYamshanov Bronze Member @Ɓukasz Szmigiel
                                  last edited by

                                  @Ɓukasz-Szmigiel The interface with the Suunto Vertical via USB is a multi-layered process where the SDSApplicationServer (a closed-source native binary) acts as a bridge. High-level clients, such as the VS Code extension, communicate with this server via WebSockets on port 9002 using a JSON-based REST API. The server then translates these JSON requests into an opaque, proprietary TLV binary protocol that is transmitted to the watch over USB HID.

                                  Since the low-level protocol is undocumented, interfacing with the device requires a “blackbox” reverse-engineering approach. By mapping the open-source JavaScript logic from the VS Code extension and capturing the resulting USB traffic via Wireshark, one can correlate JSON inputs with binary outputs. While this is a complex task, leveraging AI significantly accelerates the process of identifying patterns in the hex dumps and automating the decoding of the protocol.

                                  Ɓukasz SzmigielƁ Ze StuartZ 2 Replies Last reply Reply Quote 2
                                  • G Offline
                                    guderaber @Ɓukasz Szmigiel
                                    last edited by

                                    @Ɓukasz-Szmigiel I tested it on my race s and it worked although i had to make some adjustments to prevent crashing. But it definitely needs more testing and optimisation

                                    Ɓukasz SzmigielƁ 1 Reply Last reply Reply Quote 1
                                    • Ɓukasz SzmigielƁ Offline
                                      Ɓukasz Szmigiel @guderaber
                                      last edited by

                                      @guderaber yeah I’ve learned it’s the hardest part as Suunto doesn’t document the actual hardware limits and it can’t be tested reliably in the simulator.

                                      S9PP 2.50.28

                                      1 Reply Last reply Reply Quote 0
                                      • Ɓukasz SzmigielƁ Offline
                                        Ɓukasz Szmigiel @AYamshanov
                                        last edited by

                                        @AYamshanov this is super interesting! Happy hacking! 😄

                                        S9PP 2.50.28

                                        1 Reply Last reply Reply Quote 1
                                        • Ze StuartZ Offline
                                          Ze Stuart Gold Members @AYamshanov
                                          last edited by

                                          @AYamshanov are you getting into Ghidra yet?

                                          https://zulusierra.co

                                          A 1 Reply Last reply Reply Quote 1
                                          • A Offline
                                            AYamshanov Bronze Member @Ze Stuart
                                            last edited by

                                            @Ze-Stuart Great question! It actually reminds me of how my deep dive into the Suunto ecosystem began. For me, these watches aren’t just sports gear; they are a technological puzzle - kind of like Sudoku, but with more hex code. 🙂

                                            After OpenSuuntoPlus launched, I was desperate for app examples to help me write my own. I decided to dig into the firmware, hoping to find the “real” apps hidden inside. I found several files, including a filesystem snapshot, but it wasn’t just a simple sequence of bytes. Instead, it was a massive pile of small blocks scrambled in a seemingly random order.

                                            To better understand the algorithm, I decided to learn what Ghidra was all about (having never used it before). I naively thought watch firmware would be small, simple, and easy to analyze. I was
 overconfident, to say the least!

                                            However, it was incredibly productive. I spent time forming hypotheses, checking memory chip specs, and diving into SDKs for embedded OS memory management. I even managed to “de-fragment” a working disk image from those scattered blocks, though I’m pretty sure a few bugs are still lurking in there.

                                            Around that time, I realized the role SDSApplicationServer plays in the system. I shifted my focus to the JSON-based REST API it uses. I figured if the VS Code extension could manipulate watch data through it, I could too. Ultimately, using the server was a much faster way to get data off the watch, and it largely confirmed what I’d spent days piecing together from raw blocks.

                                            So, back to your question: Now that I have a better grasp of the architecture, I’ve been exploring how to communicate with the watch directly via the browser. Remembering my experience with Ghidra - and noting that the firmware is tiny compared to the SDSApplicationServer binary (which is dozens of megabytes!) - I haven’t quite summoned the courage to go back to this approach! 😄

                                            Analyzing serial interface dumps feels more manageable; control commands are usually just dozens of bytes. The more you work with them, moving from simple to complex, the clearer it gets. There are still plenty of mysteries left, but that’s exactly why I enjoy this “Sudoku” - it keeps things interesting!

                                            Ze StuartZ 1 Reply Last reply Reply Quote 2

                                            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