No announcement yet.

Metronome for Pool Swimming activity

  • Time
  • Show
Clear All
new posts

  • Metronome for Pool Swimming activity


    I'm using a Fenix 5 for my triathlon training and I'm wondering why there is a metronome feature for outdoor activities but not for pool swimming. Such a feature would help a lot to maintain a certain swimming speed over a longer distance resp. a number of lanes.
    Does this feature exist and I just did not find it? If not, is it planned to be added for this activity?


  • #2
    jjmax87 Have not used this feature anywhere but I would have thought it would be really difficult to hear in the pool


    • #3
      Finis do one that you put in your swim cap or clip to your goggles I think. As above, not sure having one on your wrist would work too well.


      • #4
        It would be great if the Metronome function was available for swimming activities.

        As a workaround I use another function when I'm swimming - for instance, Kayak - which allows me to have the metronome on. Obviously, this isn't great for tracking your activity but you do get the benefit of training with the metronome. I didn't want to buy a separate Finis trainer for this.

        Since the metronome function can be set to tone or vibrate or both it works perfectly well in the pool. Vibrate on your wrist or tone if you take the band off and put it in your cap.


        • #5
          Having one in my cap would drive me nuts, I think! "Tick... tock... tick... tock..." Aaaaaaagh!


          • #6
            RC86 jjmax87 I managed to get the metronome working in the pool swim activity for 935. It required editing the activity settings FIT file by hand, with a computer, so you can't turn it off/on during the activity, nor change the settings without your computer.

            To try this out:
            1) Connect your watch to PC/Mac with USB
            2) Make a backup copy of /GARMIN/SPORTS/8SPOOL_.FIT
            (The 8 may be a different number for you)
            3) Download and unzip the following file ( Copy it to /GARMIN/NEWFILES

            ^ The settings in this file are:
            - Cadence: 180 bpm
            - Frequency: Every other beat
            - Sounds: Tones and Vibes

            I'd be happy to write a guide on how to do this yourself, but as it would take some time (as well as the time to reverse-engineer the various settings, like tones/vibes and "beep every 2nd/3rd/etc"), I would like to see sufficient interest in the form of replies to this comment.

            If there's enough interest, I might consider writing a Python script or web app to automate the task.

            Sorry if this seems a bit much, but I've done this kind of thing in the past, and sometimes it's very hard to tell if there's any interest at all, to justify the time it takes. Since these kinds of DIY solutions rarely get stickied, they're often lost and forgotten within days, anyway. It's understandable, because the majority of people want an official solution from Garmin, and I get it.
            Last edited by WillNorthYork; 01-29-2019, 11:22 AM.


            • #7
              Alright, here's the DIY guide (in 2 parts) anyway, since I'd prefer not to wait around for responses. (Yep, I am impatient)

              If there's any real interest, I might make a script. Either way, you will need a computer for this to work.

              Note: I've only tested this on a 935. If this doesn't work for your watch (e.g. 645, Fenix 5, 5+, etc.), please post/PM a copy of your #SPOOL_FIT file so I can see what's different about it. I don't think this will work for Fenix 3 tho, and probably not for other older watches from that era (920XT, etc.)

              Native Metronome in Pool Swim Mode: DIY Guide

              Part I (Summary)

              You need to do this any time you want to change metronome settings (while preserving other Swim settings).
              So I would suggest perfecting all your other swim settings before you decide to apply this technique. You could also duplicate your pool swim activity so you could have one with metronome and one without. (Then you would have to modify step 2 slightly).

              I suggest you keep two files: one with metronome enabled, one without.

              1) Connect watch to PC/Mac with USB
              If you have a music-enabled watch and a Mac, you will need this app:

              2a) Copy the file #SPOOL_.FIT from the GARMIN/SPORTS/ folder, where # is any number. e.g. 8SPOOL_.FIT

              This is the settings file for your Pool Swim activity.

              2b) Make a backup copy for safe-keeping. e.g.

              3a) Decide what metronome settings you want, and record the numbers from the following list.
              • Setting A: Metronome ON/OFF
                On = 1
                Off = 0
              • Setting B: Cadence (beats per minute)
                Select a number from 120 to 240
              • Setting C: Frequency (e.g. every 2nd beat, 3rd beat, ...)
                Select 2, 3, 4 or 6
              • Setting D: Sounds
                Tones = 1
                Vibrations = 2
                Tones and vibrations = 3
              3b) Convert the 4 numbers from 3a) from decimal numbers to hexadecimal bytes. See Part II for details of how to do this
              e.g. Metronome On, 180 bpm, Every 2nd beat, Tones/Vibes
              = 1, 180, 2, 3
              = 01 b4 02 03

              (For all the numbers but cadence, just add a 0 in front.)

              4) Open #SPOOL_.FIT in a hex editor. See Part II for details of how to do this
              5) Look for data near the end of the file that looks like:
              4c 00 00 98 00 05 fe 02 84 00 01 00 01 01 02 02
              01 02 03 01 00 0c 00 00 ff ff ff ff
              The bold numbers may be different for you if you already changed the metronome settings

              6a) Replace the 4 numbers at the end ("ff ff ff ff" above) with your hex settings from 3b)
              4c 00 00 98 00 05 fe 02 84 00 01 00 01 01 02 02
              01 02 03 01 00 0c 00 00 01 b4 02 03
              6b) Save the FIT file (but don't close it yet).

              7a) Calculate the checksum ("CRC16") of the FIT file (see part II). Convert that hex number to little-endian (i.e. swap the bytes aka two-digit groups) if you haven't done so already. e.g. B258 becomes 58 B2.

              7b) Take the result from step 7a) and replace the final two bytes of the FIT file

              8) Save the modified FIT settings file

              9) (Optional) Convert the modified settings file to CSV. (The conversion will fail if the CRC is wrong).
              Windows: drag and drop the file onto FitToCSV.bat

              Mac: open the terminal in the java/ SDK folder and type:
              java -jar FitCSVTool.jar -b 8SPOOL_

              You can also convert the backup file to CSV, for an additional sanity check. Compare the 2 CSV files (8SPOOL_.csv and 8SPOOL_backup.csv), as a sanity check to make sure that everything went right. The only difference between the two files should be the four settings. For comparing files, I like to use Beyond Compare, which is available as a free trial for Windows, Mac and Linux (see link in Part II)

              10) Copy the modified settings file to your Garmin watch in the GARMIN/NEWFILES folder (not the original folder)

              11) Eject/safely remove watch
              Last edited by WillNorthYork; 01-29-2019, 03:04 PM.


              • #8
                Native Metronome in Pool Swim Mode: DIY Guide

                Part II (Hex Editing and CRC How-To)

                You need a hex editor (see below) and the FIT file SDK ( I also like to use a comparison tool such as Beyond Compare (available for PC and Mac).

                To use the FIT file SDK, you need Java installed on your PC or Mac:

                Windows tools:

                Hex editor:

                Beyond Compare (Optional):

                Mac tools:

                Hex editor:

                Beyond Compare (Optional):

                Convert decimal numbers to hexadecimal

                Windows 10:
                - Open Calculator app
                - Select Menu > Programmer
                - Select DEC (decimal)
                - Enter number (e.g. 555)
                - Look at the result under HEX (hexadecimal) (e.g. 22B) and separate it into groups of two digits, adding leading zeroes if necessary. e.g. 02 2B. Each of of these groups is a "byte".
                - If the instructions call for "little endian byte order", then swap the order of the bytes. e.g. 02 2B -> 2B 02

                Similar to above instructions, except click on "10" for decimal and "16" for hexadecimal.

                Use google and type "555 in hex" (for example). You still have to swap the bytes.

                Calculate Checksum (CRC16):

                Here are scripts for for Windows, Mac and Linux which will help calculate the CRC using the the SDK.

                FIT CRC (Windows):
                FIT CRC (Mac/Linux):

                (Steps with a * in front are one-time only)

                * 1) Copy the attached file to the java/ folder in the SDK
                * 2) Extract the included file (fitcrc.bat) to the same folder. (Double click on the icon and select Extract All).

                3) Drag and drop the FIT file on to fitcrc.bat

                Mac/Linux (not tested on Mac)
                * 1) Copy the attached file to the java/ folder in the SDK
                * 2) Extract the included file ( to the same folder. (Double click on the icon)
                3) Open in the java/ folder
                * 4) In the terminal, type:
                chmod ogu+rx fitcrc*.sh

                5) To calculate the CRC, run with your FIT file, in Terminal. You may find it easier to copy the fit file to the same folder. Or you can drag and drop the file into the terminal window, and it should copy the full pathname of the file to the command line.

                The script will display output such as:
                Expecting next 2 bytes to be end of file CRC = 0xB258
                In this case, 0xB258 is your CRC. (0x is a prefix which indicates the number is displayed in hexadecimal, or base 16, and B258 is the actual number),

                In little endian, that's 58 B2. (Swap the bytes/2-digit groups.)

                If you don't get any output, then try the fitcrc-debug script instead, which might give you more information about went wrong.

                (If for some reason you want to calculate the CRC16 yourself, note that the CRC is calculated over all but the final 2 bytes of the file.)
                Last edited by WillNorthYork; 01-29-2019, 03:12 PM.


                • #9
                  You can try COUNTU Tempo, which is designed specially for sports metronome, including swimming, running, cycling, etc.


                  • #10
                    Another version is that when I used to swim pool marathons, I set my (long ago) watch to beep every 45s (or whatever). When I tumbled, I could hear hear the beep underwater, telling me whether I was ahead or behind my schedule. It worked fine.

                    I would be interested to do the same again on the garmin (vivo 3)


                    • #11
                      dslippy for that scenario I think you can set a recurring time alert on your Vivoactive 3.



                      • #12
                        I can see there doesn't seem to be any interest in the DIY solution for enabling the metronome in the pool activity, which is understandable. As I mentioned, I would've considered making it an easy-to-use script or web app, but only if there was interest.

                        If anyone still wants to use the built-in metronome for the pool activity, you can post your pool swim activity #SPOOL.FIT file (from the \GARMIN\SPORTS folder) in this thread and I'll enable the metronome for you. Make sure to make a backup copy, as you will need it if you want to disable the metronome in the future. You may wish to make a duplicate swim activity for this purpose.

                        Please include the following information in your post:
                        - Cadence (e.g. 180 BPM)
                        - Frequency (e.g. every 2, 3, 4, or 6 beats)
                        - Sounds (Tones, Vibes, or Tones+Vibes)