Today my Garmin Forerunner 110 produced a .fit file that GPSBabel does not want to convert. I'll attach the (small) file, and I've posted it to Google Drive in case the list strips attachments.
$ gpsbabel -D6 -i garmin_fit -f <attached_file.fit> -o gpx -F xxx.gpx
GPSBabel Version: 1.4.4
fit: header len=14
fit: protocol version=16
fit: profile version=135
fit: starting to read data with fit_data.len=8928
.....fit: got data message at fit_data.len=8927 ...local message type 0x2
.....fit: got definition message at fit_data.len=8926 ...local message type 0xB
fit: Definition message reserved bits not zero
In my attached example file, this byte happens to be 0x40. To me, this looks like probably some kind of flag. However, I don't know what it means. Maybe the right thing to do in this case is print a warning that a reserved bit is set, and then proceed as usual? My proposed patch (attached) does this.
P.S., I've filed a bug with Fedora; I couldn't find a bugtracker for
gpsbabel so I hope this mailing list is the appropriate place. The Fedora
bug is here: https://bugzilla.redhat.com/show_bug.cgi?id=989851