HRM File Format
Overview
The Polar S7xx heart rate monitor comes with Windows software to download and display workout data. That’s nice, but for those of us that don’t use Windows, it’s really not going to work.
Dave Bailey, a physicist turned to the dark side of programming like me, has written software to download and display workout data on Linux. Unfortunately, the format he uses to store data is not the same as the format used by the Windows software.
In a different section, I describe my attempts at creating software to add support for the Windows format to the Linux utilities, so as to make transition between the two operating systems easier.
Here, you’ll find all I found out about the Windows file format, called HRM after the extension .hrm
General: Format and Conventions
First the good news: the HRM file format is plain text, and you can look at your workouts in any text editor. The format actually follows the conventions of .INI files, with sections delimited by square brackets (‘[]’), like in the following example:
<span size="-2">[Params] Version=106 Monitor=12 [ExtraData] [Summary-123] 0 0 0 0 0 0 180 160 80 70 </span>
The bad news next: HRM does not capture all the data recorded in a workout session. It records almost all of it, though.
More news: HRM is a variable format, meaning that it looks slightly different depending on what you were recording on a given workout. To give you an example of what I mean, if you turn off altitude data, you’ll have one less column in the data section. Since you can turn on and off a lot of features, this means that parsing is a bit of a problem.
Sections are always stored in a fixed sequence, starting with Params and ending with HRData.
Sections
Since there is no official documentation, all of the following are guesses. Since some of them are wilder than others, I decided to put those items in italic that seemed more off the mark than others.
[Params]
This section is always at the top of the file and contains the general parameters for the workout.
The comments you added in the software to this particular workout.
[IntTimes]
No information available.
[ExtraData]
No information available.
[Summary-123]
This section deals with the heart rate zones and with how much of the workout you spent in any of them.
[Summary-TH], [HRZones], [SwapTimes]
No information on these is available at this time.
[Trip]
Summary information about the trip. This contains the following items in order. Items are not described in any detail, they are just listed in fixed order. Current information about this section is surely wrong. If you have more information, please add it to the forum.
[HRData]
This is the set of core data as coming from the monitor. This is structured as one sample per line, with each line containing information in the following order:
- heart rate
- speed
- cadence
- altitude
- power
Unrecorded items are just omitted from the list. To know which items were included, you need to understand the SMode field above.
SMode
This bit field indicates what items were recorded and how. Here is a lineup of bits: