WillNorthYork, could you please upload the tutorial again? Seems that it was deleted. This is the only forum I found which seems to solve the issue! Thanks in advance
found this in my info logs dated 28 jan 2018
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
From WillNorthYork
Some people have asked me how I edit FIT files. It's a bit technical, but it's doable with a few free/trial tools.
You need a hex editor, the FIT file SDK (www.thisisant.com/.../fit), and the ability to calculate a CRC16 value. I also like to use a comparison tool such as Beyond Compare (available for PC and Mac).
1) Set the custom bike wheel value using your Garmin watch (e.g. 555).
2) Convert settings.fit to a CSV file (this is part of a sanity check), using FitToCSV from the SDK.
3) Open the CSV file and locate the custom bike wheel value (e.g. 555).
If this value occurs more than once, it's easier if you change it to a value that does not occur anywhere else in the CSV.
4) Make a copy of settings.fit (e.g. settings-mod.fit).
5) Convert the current wheel value (e.g. 555) to 2 bytes hexadecimal.
e.g. 555 (decimal) = 02 2B (hex). Note that the FIT file format uses "little-endian byte order", which means that the bytes will be swapped. In this case, 555 = 2B 02 (little endian)
6) Convert the desired wheel value (e.g. 63) to 2 bytes hexadecimal (little endian). e.g. 63 = 3F 00
7a) Open settings-mod.fit in a hex editor
7b) Search for the existing wheel size (2B 02). (If you find more than one occurrence of this number, pick a different number and start over)
7c) Replace the existing wheel size with the desired wheel size (3F 00).
7d) Save settings-mod.fit
8) Calculate the CRC16 of the contents of settings-mod.fit, except for the final 2 bytes (which are the existing CRC).
I use a little program I wrote (based on example code in the FIT sdk). You could also make a copy of settings-mod.fit, delete the final 2 bytes, and use a generic CRC application like those linked below.
The old and new CRC16 will be different for everyone (it depends on the exact contents of your settings file.)
9) Take the CRC16 from step 7 and flip the bytes. e.g. 76 52 becomes 52 76. Take this number and replace the final two bytes of settings-mod.fit. Save settings-mod.fit
10) Convert settings-mod.fit to CSV. (The conversion will fail if the CRC is wrong).
Compare the 2 CSV files, as a sanity check to make sure that everything went right. The only difference between the two files should be the wheel size.
Quick guide for converting decimal 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
Mac:
Similar to above instructions, except click on "10" for decimal and "16" for hexadecimal.
Windows tools:
Hex editor:
www.hhdsoftware.com/free-hex-editor
Calculate CRC16:
www.hhdsoftware.com/.../checksum-calculation-overview.html
Beyond Compare:
www.scootersoftware.com/
Mac tools:
Hex editor:
ridiculousfish.com/.../
Calculate CRC16:
www.macupdate.com/.../hash
Beyond Compare:
www.scootersoftware.com/
happy & safe sporting
Hi OnlyTwo! I have a garmin 920xt device. I have also seen the tutorial you send me. Thanks much, I will try it!
guess from 735xt onwards the firmware was adapted to go below 100
when stuck, give a yell
one note, it is not the latest updated version of the procedure ! there were some tweaks
happy & safe sporting
Hi Volve, I am experiencing the same problem you had. Need to set up a 47mm wheel size on a speed sensor in the 920XT. Tried the procedure from WillNorthYork below, but I guess I'm failing to understand step 8 onwards... Do you have an updated version you could share or eventually help me understand how to calculate the CRC16 ? many thanks!