Have you looked into the soniclink interface for polar? I'm working on reverse engineering the audio signal being sent from the heart rate monitor, but if you have already done that, it would help considerably.
I posted this in SportsTracker and adresses the same issue. However there are some links that could prove interesting.
Hi, I managed to get SportsTracker installed on Ubuntu. I think it's a terrific app. However, I use an Polar S520. I managed to convert the sound recorded files to .hrm via this W32 app:
Unfortunately I don't get readable data for SportsTracker. Could there be future support for other Polar hrms?
Also I found this:
Since I am fairly new to Linux, I did not understand how to proceed with this.
Thanks, great work,
the link sent by Dennis (http://www.ieeta.pt/~tos/software/polar_s410.html) is very intersting for users of the SonicLink interface.
Unfortunately the program seems not to be able to output the exercise file data in HRM or SRD (raw) format.
So it would be great, when someone could add this feature to that utility.
Then it should be no problem to import this files into PolarViewer or SportsTracker.
The goal of my tools is just organizing and displaying the exercises, not downloading them. Although it would be good to integrate the download in my apps, but I want to add other features (statistics and so on) first ...
I am currently working on reverse engineering the protocol for the Polar RS200SD. I plan to port parts of the SonicLink program (http://www.ieeta.pt/~tos/software/polar_s410.html) to mono. And then implement support for outputting HRM or SRD files. Which format would be the best choice and can someone point me to the spec for them?
I would suggest you to output the binary format SRD. This is the native format of all the watches. Even if you would like to output HRM, you need to export SRD first and convert all the data to the HRM format (this was so for all other models).
I think there is no documentation about the SRD file format of the RS200SD. But I think it will be similar to the S710 format, but not the same. This documentation you can find at http://daveb.net
Another thing: the HRM file format generated by the Polar Windows software is quite buggy and it doesn't contain all the data of the watch, eg.g temperature is missing. So I would suggest you to use SRD.
BTW, the PolarViewer application is easily extendable, you just need to add a parser class for beeing able to display your downloaded exercises ...
Ok, I'll output in SRD format. I guess this is just the raw data? I reverse engineered some parts of the raw data already, so I guess I will just need to start implementing a parser for PolarView then.
Anyone else working on the RS200SD btw? Don't want to do work someone is already doing. :-)
I think you're the first one ...
I just took a quick look at the parser. I would like to implement my own parser class to separate things from PolarSRawParser. I was wondering if PolarSRawParser ought to be abstract with inheriting classes implementing stuff specific for S610(i), S710(i), S720i and S725. Then all the utility methods can be kept in the base class. That way my RS200SD parser can make use of those utility methods as well.
What do you think?
This would be the best solution for sure...
The reason why it's not done yet is that it's hard to determine which file format it is. It will be detected on details during parsing.
Unfortunately the s710 tool (for downloads) doesn't uses different file extensions for different models. This would be the most simple solution. Dave Bailey wanted to do this in the next version, but it has not happened yet for a long time.
But the abstract SRD parser class should be done quite easily and can be tested also easily, because I wrote test cases for the parser classes.
So it would be helpfull when you store the downloaded files with a special file extension, e.g. xxxx.s200 or so. So it would be very easy to read the file with the correct parser class.
Hi again. :-)
Work is progressing nicely with the parser. I can show basic data from my Polar RS200sd in PolarViewer now.
There are some things I would like to change in the GUI. First, it would be nice to hide the stuff relevant for cycle exercises only. Such as bike number. Another thing is that distance is shown with one digit of precision whereas I would like to show two.
Do I just send you patches against the current source code, or how is it best to do it?
Is it possible to query some read-only svn server to make diff patches from?
Seems the precision issue is not with the GUI but with the Distance property on ExerciseSpeed. How about we redefine Distance to be a float representing km instead of an int representing km / 10? This ought to solve the issue (or maybe an int representing m?).
your progress is very fast...
Here are the answers to your questions:
(1) How is the speed and distance data stored in he RS200sd? In all models until now it was km/10. If your model is more precise it would be no problem to change the distance attributes in the classes to meter (float is not a good idea).
(2) I think it's not necessary to hide labels in the GUI which are not available for some models, e.g. bike number for running watches. In this cases there will be no value displayed. Is it a problem ?
(3) There is no Subversion server right now, but the latest source is always available at SourceForge via CVS. You can also create patches against that and send them to me for applying them.
SourceForge will also support Subversion in the next weeks, I'm looking forward to it ...
Some answers to your answers. :-)
(1) Distance is stored as km/100 (probably because the model is used for running). I have not figured out how speed is stored yet, but I will get back to you on that one.
(2) Regarding the GUI I just thought it would be nice to hide fields that will never make sense for a particular model. Better usability in my opinion.
(3) Ok, I'll make patches agains the SourceForge CVS server.
just let me know how precise the speed is beeing stored in the exercise files. I will then change the data classes for that.
Just curious. Why is there PolarViewer source code under the SportsTracker application? Is it just to be removed?
The PolarViewer sourcecode in SportsTracker is for parsing recorded exercise files when adding new exercises. So the user don't needs to enter date, time, distance, heartrate, ... manually.
The PolarViewer sources are not complete there, it's just the parser and data classes. The GUI classes are not needed there.
Does this mean that the source needs to be updated in both source trees?
Yes. Each time I release a new SportsTracker I just copy the relevant classes to the SportsTracker sources. That's all, very easy ...
I've allready wanted to merge both application to one, but I've not done yet and I'm also not sure if that is the best solution. Most of the SportsTracker users don't own a HRM monitor and many PolarViewer users don't use a training diary.
So this seems to be the best solution now ...
I've changed the distance atty in classes ExerciseSpeed and LapSpeed from 1/10km to meter. So you can store your accurate data properly now.
BTW, I've applied your patch, please see my comments in the patch section.
It would be very nice when you also could provide a unit test class for your parser. This makes many things much more easier. For instance the distance change I've done today. So I can easily test that all classes are working correctly...
Yep, the parser will by fully unit tested. You use NUnit, right?
There are still a lot of details that I do not know about the RS200SD format though. So it will be some time till I get all details in place.
One more thing. I would like to add laps to the graph. So one could have the lap number on the x-axis and perhaps heart rate or speed on the y-axis. How hard would this be?
Yes, I use NUnit, a very nice tool.
To your lap diagram issue:
I think the best way would be to add a new diagram for viewing lap data. So the user could select in the diagram panel which kind of diagram he wants to look at.
It has not be done yet, because this feature is not so important for cycling people ...
How do you download from the RS200sd? I can't get Tom Oliveira e Silva's (decode_s410) prog to work for it - works with my S520 but not Rs200sd.
Is there a patch to fix this?
You need to contact Jacob Ilsø Christensen directly, his email address is <firstname.lastname@example.org>.
He's done the parser so he will also have a tool for downloading ...