Tech FAQ
Welcome Guest,Register Now
Log In

Tech FAQ


  • There used to be a C++ sample CSV convertor project in the SDK, where did it go?
    • It was intended as a demo app only and was not being maintained in parallel with the Java CSVTool.  It was removed from the SDK package as of version 6.00 to avoid confusion from differing behaviour from the Java tool.  The C++ encode and decode demos remain unchanged.  Contact support if you need access to this demo.

  • The Java CSVTool used to produce _sessions.csv, _laps.csv and _records.csv files. Where did they go?
    • Previously the CSVTool automatically produced specialized output when converting FIT files containing lap, session or record messages such as activity files.  This output was not flexible and has been replaced with a more general filter feature allowing users to generate .csv files containing arbitrary combinations of messages found in the binary source file.  If the previous behaviour is still desired, batch files have been provided with the CSVTool (FitToCSV-lap.bat, FitToCSV-record.bat and FitToCSV-session.bat) that may be used to generate similar output.  


  • How will consumers of my FIT data know what timezone my times are in?
    • Timestamp fields are deliberately defined as UTC time so that they may be conveniently displayed in the local time if so desired.  In some instances it is useful to know the UTC offset when the file was generated (possibly different from when it is decoded).  This can be accomplished by logging a single message containing both a local_timestamp and a timestamp field.  This will establish the UTC offset of the file.  Presently these fields are predefined for activity and monitoring messages.

  • What languages are supported?  What tools are available?
    • Presently C, C++ and Java versions of the SDK are supported.  C# will be publicly available soon.  Demo apps for Encode and Decode are provided as a starting point for using the SDK.  Sample .FIT files and a Fit  CSV conversion tool are also provided.

  • Will my decoder be compatible with future data?
    • Yes, although new versions may define new information, the FIT format is self describing.  Existing FIT compliant decoders will be able to decode future data.

  • I am implementing the XXX file, do I have to follow the file format exactly?
    • Yes, all required messages and fields must be included in your implementation to be compliant.  Please refer to the Fit File Types Document  for further details on required and optional messages and fields.

  • Can I use data from both BigEndian and LittleEndian sources?
    • The SDK will interpret data files using the endianness defined in the file header.  Data is then automatically converted to the endianness of the decoding runtime system.

  • Why should I use a 14 byte header?
    • By choosing to include the header CRC it is possible to calculate the file CRC as data is stored to the FIT file.  At the end, when the data size is known it is possible to insert this value into the header and recompute the header CRC only resulting in a correctly formatted file.  If the header CRC is not used it is necessary to compute the CRC of the entire file and update the footer CRC.  For larger files this could be computationally significant.

  • What is FIT?
    • FIT is a compact binary format designed for storing and sharing data from sport, fitness and health  devices.  Many useful standard formats are provided or it may be customized for a specific application.   Even though it is customizable it remains highly interoperable, FIT data may be interpreted by any other FIT compliant system.