mlt / schwinn810

Software for Schwinn 810 (and also some Mio, Cresta, and RedClover) GPS sport watch with heart rate monitor (Linux, Windows, and Mac OS)
https://github.com/mlt/schwinn810/wiki/Windows
14 stars 6 forks source link

How to get started on Windows? #5

Closed nc54 closed 12 years ago

nc54 commented 12 years ago

I have a Schwinn 810. I am a windows 7 user but don't have a clue how to download and use this software. I'm new to github and I am not a developer. Are there instructions anywhere?

On a side note - may or may not be helpful. I have figured out how to directly access the database created by the schwinn software. The data can be easily converted to CSV, then anyone with some programming skills can convert the data to GPX or TCX etc. I don't have the programming skills to do it but it should be quite simple. I'd like to see it in a simple to use GUI program. I'd be happy to provide the method and password to access the hidden database.

nc54 commented 12 years ago

Yes, I had downloaded everything together when I deleted all existing instances.

mlt commented 12 years ago

Yes, I had downloaded everything together when I deleted all existing instances.

I presume in overall you did it twice over entire history of this issue? First time when there was an unnecessary call to open and another time when I fixed packaged pytz.

I just downloaded and unpacked a version from github and tested it. It works as expected.

C:\123\schwinn810_win32_e37a681_pytz\schwinn810_win32>dir /w
 Volume in drive C has no label.
 Volume Serial Number is 58D0-C78A

 Directory of C:\123\schwinn810_win32_e37a681_pytz\schwinn810_win32

[.]                        [..]
0421101.laps               0421101.points
0421101.track              babelize.cmd
bz2.pyd                    csv2tcx.exe
download.exe               library.zip
pyexpat.pyd                python27.dll
schwinn810.cmd             select.pyd
settings.exe               simplejson._speedups.pyd
tcx2garmin.exe             unicodedata.pyd
yaml.dll                   _ctypes.pyd
_hashlib.pyd               _socket.pyd
_ssl.pyd                   _yaml.pyd
              22 File(s)      9,049,620 bytes
               2 Dir(s)  26,813,685,760 bytes free

C:\123\schwinn810_win32_e37a681_pytz\schwinn810_win32>csv2tcx --tz America/Denver 0421101 > 0421101.tcx

C:\123\schwinn810_win32_e37a681_pytz\schwinn810_win32>dir /w
 Volume in drive C has no label.
 Volume Serial Number is 58D0-C78A

 Directory of C:\123\schwinn810_win32_e37a681_pytz\schwinn810_win32

[.]                        [..]
0421101.laps               0421101.points
0421101.tcx                0421101.track
babelize.cmd               bz2.pyd
csv2tcx.exe                download.exe
library.zip                pyexpat.pyd
python27.dll               schwinn810.cmd
select.pyd                 settings.exe
simplejson._speedups.pyd   tcx2garmin.exe
unicodedata.pyd            yaml.dll
_ctypes.pyd                _hashlib.pyd
_socket.pyd                _ssl.pyd
_yaml.pyd
              23 File(s)     10,698,962 bytes
               2 Dir(s)  26,811,498,496 bytes free

C:\123\schwinn810_win32_e37a681_pytz\schwinn810_win32>
nc54 commented 12 years ago

I just downloaded and started fresh. Before I was getting an empty TCX file now I'm not getting one at all. You have been very helpful, but I fear I am becoming quite a bother. So I understand if you don't have time for this. I re-red the entire issue, I'm not sure what I am missing. Looks like the most recent file on github is 2 months old - older than the one with the open fixed. http://dl.dropbox.com/u/19832238/Capture111.PNG

On Tue, May 22, 2012 at 9:14 AM, Mikhail Titov < reply@reply.github.com

wrote:

Yes, I had downloaded everything together when I deleted all existing instances.

I presume in overall you did it twice over entire history of the this issue? First time when there was an unnecessary call to open and another time when I fixed packaged pytz.

I just downloaded and unpacked a version from github and tested it. It works as expected.

C:\123\schwinn810_win32_e37a681_pytz\schwinn810_win32>dir /w
 Volume in drive C has no label.
 Volume Serial Number is 58D0-C78A

 Directory of C:\123\schwinn810_win32_e37a681_pytz\schwinn810_win32

[.]                        [..]
0421101.laps               0421101.points
0421101.track              babelize.cmd
bz2.pyd                    csv2tcx.exe
download.exe               library.zip
pyexpat.pyd                python27.dll
schwinn810.cmd             select.pyd
settings.exe               simplejson._speedups.pyd
tcx2garmin.exe             unicodedata.pyd
yaml.dll                   _ctypes.pyd
_hashlib.pyd               _socket.pyd
_ssl.pyd                   _yaml.pyd
             22 File(s)      9,049,620 bytes
              2 Dir(s)  26,813,685,760 bytes free

C:\123\schwinn810_win32_e37a681_pytz\schwinn810_win32>csv2tcx --tz
America/Denver 0421101 > 0421101.tcx

C:\123\schwinn810_win32_e37a681_pytz\schwinn810_win32>dir /w
 Volume in drive C has no label.
 Volume Serial Number is 58D0-C78A

 Directory of C:\123\schwinn810_win32_e37a681_pytz\schwinn810_win32

[.]                        [..]
0421101.laps               0421101.points
0421101.tcx                0421101.track
babelize.cmd               bz2.pyd
csv2tcx.exe                download.exe
library.zip                pyexpat.pyd
python27.dll               schwinn810.cmd
select.pyd                 settings.exe
simplejson._speedups.pyd   tcx2garmin.exe
unicodedata.pyd            yaml.dll
_ctypes.pyd                _hashlib.pyd
_socket.pyd                _ssl.pyd
_yaml.pyd
             23 File(s)     10,698,962 bytes
              2 Dir(s)  26,811,498,496 bytes free

C:\123\schwinn810_win32_e37a681_pytz\schwinn810_win32>

Reply to this email directly or view it on GitHub: https://github.com/mlt/schwinn810/issues/5#issuecomment-5849681

mlt commented 12 years ago

I fear I am becoming quite a bother

It is okay as long as you are making a progress.

Looks like the most recent file on github is 2 months old - older than the one with the open fixed.

I don't know how to make it more clear http://imagepaste.nullnetwork.net/viewimage.php?id=3945 . Try to convert existing track data by manually calling csv2tcx as I described above. The reason that you are getting .. unrecognized argument: Runs ... is because you are missing quotes around the arguments that you supply to that executable so that full file name gets split by spaces into separate arguments like csv2tcx --tz America/Denver "C:\...\Document\My" "Run\..." while only 1 file name shall be given. Anyway try to convert it manually first (not called from babelize.cmd as a result of schwinn810.cmd execution).

P.S. Also you may find it more convenient to use something like Far Manager to navigate in folders and to view/edit files. It is also easier to edit the command line. Ctrl+Enter will copy highlighted file name into command line and Ctrl+O will turn panels off/on which makes easier to edit the command line and see the result.

hadeone commented 12 years ago

First of all GREAT WORK on this project.

I was able to get everything running great on Win7 64 using your windows instructions and notes from this thread.

I manually execute csv2tcx and it makes a tcx file with all the data. The only problem that I haven't figured out yet is an issue with the time or timezone.

When I upload my tcx to trainingpeaks.com it shows a long flat line from 0:00 to whatever time the run started (which is also wrong but the duration is correct when using America/Denver as the timezone). When using the US/Eastern tz the long line from 0:00 is still present and the duration is now 5:00 hr as opposed to 1 hr.

This is a minor inconvenience as my chart is unreadable due to the long time frame since that long line is introduced. I can just graph the data by distance and it looks fine so if no one has a quick fix for my problem or can tell me what I did wrong it's no big deal.

Thanks again for your efforts mlt! Getting HRM data off this watch and on to a chart is great and makes the watch an even better deal!

mlt commented 12 years ago

Hey, @hadeone ! You are welcome!

The only problem that I haven't figured out yet is an issue with the time or timezone.

Have you tried to open resulting TCX in a text editor? Do time stamps make sense? I've noticed that for instance Garmin Connect requires time to be in GMT and did not like when I had a local time zone offset specified according to ISO 8601, e.g. it may not like 2012-04-15T08:52:07-05:00 but would accept 2012-04-15T13:52:07Z. Though I believe I left the latter format to be produced by csv2tcx.py.

if no one has a quick fix for my problem or can tell me what I did wrong it's no big deal.

If what you see in a text editor looks about right, try maybe some other online services to see if it is just trainingpeaks does not like something particular. Try comparing time stamp formats with those in a legitimate file that shows up correctly, and maybe post both time stamps in here. Does it show 0:00 in trainingpeaks again if you leave out --tz America/Denver leaving it default to Central Time Zone?

I didn't try that particular site but it worked okay for MapMyRun and Garmin Connect. Otherwise you could upload binary dumps produced with --debug option (both download.py and settings.py) as found in your TEMP folder for me to look at using sendspace, dropbox or something. Just rename it after each run otherwise those will get overwritten.

Also would you mind sharing your SET->PROD.ID reported by watch as well?

hadeone commented 12 years ago

I am new to TCX files but this is what I think a timestamp looks like at the top of my file :

< Activities > < Activity Sport="Running ">

<#Id> 2012-05-30T19:19:00-05:00 <#/Id>

< #Lap StartTime="2012-05-31T00:19:00+00:00">

then they continue like this: <#Time>2012-05-31T00:19:54+00:00<#/Time> ... <#Time>2012-05-31T00:19:58+00:00<#/Time> ... etc. (dont mind the #, I added them in so the text would show)

Is this timestamp format created by download.exe or by csv2tcx ?

It still shows 0:00 if I leave out the --tz when running csv2txc.exe.

E000000000000000000001-020 is the PROD.ID shown by my watch.

I will work on getting a dump if none of the info above is helpful, will also try Garmin Connect and let you know the outcome.

Thanks again!

PS. is there a way to delete the data from the watch after downloading it or should I just do it on the watch itself?

mlt commented 12 years ago

timestamp looks like in my file : 2012-05-31T01:20:53+00:00

So trainingpeaks really wants to see Z instead of +00:00. I'll see how to change that.

Is this timestamp format created by download.exe or by csv2tcx ?

download.exe deals with .points, .laps, and .track only in local time zone as reported by a watch. It is csv2tcx that does the job of putting all to TCX.

E000000000000000000001-020 is the PROD.ID shown by my watch.

eh ... what? What brand is it? Schwinn? Are those really all zeros??? E.g. mine is

e111204
002882
1110162
01-020

I will work on getting a dump

No need, thanks. I'm pretty sure it is all about TZ formatting. Some folks don't respect standards. Last time I tried it, resulting TCX did validate just fine against Garmin's XSD which says all time stamps shall be of xsd:dateTime which in turn mentions ISO 8601. So it should be fine in theory to use local zones.

hadeone commented 12 years ago

It's a Schwinn and it does show all zeros. I got it as a "display model" but it's probably some kind of refurb. Who knows what they did to it.

BTW on the Garmin Connect site everything imports fine, but I prefer training peaks because their chart overlaps all the data.

Like I said before if it's not a quick fix I can live with it the way it is. You already did enough for everyone that was frustrated with the crappy software this watch came with.

mlt commented 12 years ago

if it's not a quick fix

It probably is. Please update

hadeone commented 12 years ago

You got it! Works perfectly now!

Thanks for everything!

mlt commented 12 years ago

You are welcome! I guess I can close it.

nc54 commented 12 years ago

I took a breather for a couple of weeks on this. Came back today, Downloaded the latest versions, (but did not unpack them) using the old files the TCX worked, and uploaded fine to strava.com. I don't feel like I did anything different, but I probably needed to step away from it for a bit. Thanks for putting up with me.

nc54 commented 12 years ago

So it works but I have to manually run the csv2tcx. You have said that it breaks up the "my" and "Documents" into two separate arguments. I get that, but I don't get how to fix it. I have tried doing documents\MyRuns (and creating the folder) just to see if it would work, but it does not.

Currently using %~dp0\csv2tcx.exe --tz America/Denver "%1" > "%1.tcx" in babelize and SET "DIR=%USERPROFILE%\Documents\MyRuns which seems to fix part of the problem. I no longer get unrecognized arguments, but I still get " The system cannot find the path specified

Right now I'm pretty content that I can access the data, even if I have to manually run csv2tcx but it would be convenient to do one click and be done with it. Hadone, care to share your babelize and schwinn810.cmd I'd like to see what you have different.

mlt commented 12 years ago

Downloaded the latest versions, (but did not unpack them)

What do you mean by saying did not unpack? Some previous binary versions missed time zone data rendering csv2tcx.exe (but not py) useless.

Do you get KML and GPX files from gpsbabel provided you have it installed and set path correctly?

it would be convenient to do one click and be done with it

I see you like an idea of minimal number of clicks? :-)

nc54 commented 12 years ago

Since I last wrote, I deleted all files and downloaded the most recent.
I thought I was careful to copy the paths over for GPSbabel from the first time, but It looks like somewhere along the line of downloading new versions I did not.

Correct path is now there and It works, getting all files Including TCX, but I do have to use "MyRuns" instead of "My Runs" and is fine by me. I am still getting "the system cannot find the path specified error" (just one now and not two). Path to 7-zip looks good and I don't see any ill effects. So I think I'm good. Thank you so much.

BTW NTIM the Percentages are still all funky.

nc54 commented 12 years ago

OK, so I had only changed the path to GPSBabel in babalize, now that I changed it in schwinn810.cmd I get no errors.

mlt commented 12 years ago

Good to hear you see no errors now!

BTW NTIM the Percentages are still all funky.

Do point numbers appear correct if you open your dot points file in let's say MS Excel as coma separated file? Those are in the second column from the right. I suspect it is an artifact of Python 3 to Python 2 rollback as integer division results in integer in the latter while print function expects a float and as a result garbage is printed. I can't test it right now but I've uploaded a version with the possible fix.

I thought I was careful to copy the paths over for GPSbabel from the first time, but It looks like somewhere along the line of downloading new versions I did not.

I encourage to use different names for your own particular configuration and keep babelize.cmd and schwinn810.cmd as templates. As you may have noticed there is no requirements what name of schwinn810.cmd should actually be. The same applies to babelize.cmd as it is only mentioned in schwinn810.cmd (or whatever you've called it). Perhaps I should rename those to .sample so it would be safe to overwrite all the stuff while updating.

nc54 commented 12 years ago

Do point numbers appear correct if you open your dot points file in let's say MS Excel as coma separated file?

Second column from the right titled "No" looks like an unique number starting at 33554433 increasing by one with each row.
But really, not a concern for me.

mlt commented 12 years ago

Second column from the right titled "No" looks like an unique number starting at 33554433

That is not quite right. It should start from 1. It means I have incorrectly decoded the meaning of some fields. And my guess how to correct percentage issue was wrong.

Could you please share a binary dump using a Dropbox or something? You can get a binary dump named schwinn810.bin in your temporary folder (presumably %USERPROFILE%\Local Settings\TEMP) if you add --debug option to download.exe in your schwinn810.cmd. Please follow up on issue #10 if you are willing to help improve this software. While I can revert to using just a word (2 bytes) instead of a double word for point number, I'm curious why adjacent word is non-zero like on most devices.

I suspect that there might be 3 bytes dedicated to elevation (measured in cm). Does it report wrong elevation? For 2 bytes, maximum elevation would be 655 meters, while in Denver I truly believe it is more than that. 33554433 in hex is 0x2000001 . So my (already second) guess would be there are 3 bytes for elevation and 3 bytes for point number. Thus since you have 2 over there it would mean extra 2*65536 cm (1310.72 meters) shall be added to elevation reported as of now.

nc54 commented 12 years ago

I am not sure if elevation is correct, I think Strava auto corrects bases on Topo data. Dump posted to issue #10

On Thu, Jun 14, 2012 at 3:17 PM, Mikhail Titov < reply@reply.github.com

wrote:

Second column from the right titled "No" looks like an unique number starting at 33554433

That is not quite right. It should start from 1. It means I have incorrectly decoded the meaning of some fields. And my guess how to correct percentage issue was wrong.

Could you please share a binary dump using a Dropbox or something? You can get a binary dump named schwinn810.bin in your temporary folder (presumably %USERPROFILE%\Local Settings\TEMP) if you add --debug option to download.exe in your schwinn810.cmd. Please follow up on issue #10 if you are willing to help improve this software. While I can revert to using just a word (2 bytes) instead of a double word for point number, I'm curious why adjacent word is non-zero like on most devices.

I suspect that there might be 3 bytes dedicated to elevation (measured in cm). Does it report wrong elevation? For 2 bytes, maximum elevation would be 655 meters, while in Denver I truly believe it is more than that. 33554433 in hex is 0x2000001 . So my (already second) guess would be there are 3 bytes for elevation and 3 bytes for point number. Thus since you have 2 over there it would mean extra 2*65536 cm (1310.72 meters) shall be added to elevation reported as of now.


Reply to this email directly or view it on GitHub: https://github.com/mlt/schwinn810/issues/5#issuecomment-6340928

mlt commented 12 years ago

I am not sure if elevation is correct, I think Strava auto corrects bases on Topo data

I'm confident now about elevation.

Could you try to pioneer #9 for Strava auto-upload if you have time and would like to? The goal is to get all your data off the watch right into Strava with a single click.

nc54 commented 12 years ago

Ha, you know what a fan I am of the single click. I'll give it a try if you have the patience. The competing aspect is really fun, but I'd like to find something that can cue me in on how to better train. Do you know of anything? I looked at trainingpeaks, but its overblown and require a fee to use.

On Thu, Jun 14, 2012 at 4:12 PM, Mikhail Titov < reply@reply.github.com

wrote:

I am not sure if elevation is correct, I think Strava auto corrects bases on Topo data

I'm confident now about elevation.

Could you try to pioneer #9 for Strava auto-upload if you have time and would like to? The goal is to get all your data off the watch right into Strava with a single click.


Reply to this email directly or view it on GitHub: https://github.com/mlt/schwinn810/issues/5#issuecomment-6344849

mlt commented 12 years ago

Do you know of anything? I looked at trainingpeaks, but its overblown and require a fee to use.

I'm using MapMyRun. However I don't like it much as it can't really related courses nearby thus you are always a leader of your own uploaded track :( Who would use someone else's course when you got one right off your device??? Also it has tons of ads.

AFAIK dailymile does not respect many features of TCX. I did not use either Strava or TrainingPeaks. But I heard from a friend of mine that Strava does recognize common parts of the course thus making it really possible to compete. I don't know if it is a feature of their app for iOS only and whether it would work with uploaded stuff.

I tend to think that Garmin Connect is not bad (example) just to visualize stuff. I did not pay attention to the terms of their service though whether it is okay to use it without Garmin devices.

While I'm interested in finding out what is the best out there, it does not really belong to either this software directly or this issue in particular.

nc54 commented 12 years ago

I signed up a garmin connect account and noticed that I can turn elevation correction off. You are correct, elevation is way off.

On Thu, Jun 14, 2012 at 5:09 PM, Mikhail Titov < reply@reply.github.com

wrote:

Do you know of anything? I looked at trainingpeaks, but its overblown and require a fee to use.

I'm using MapMyRun. However I don't like it much as it can't really related courses nearby thus you are always a leader of your own uploaded track :( Who would use someone else's course when you got one right off your device??? Also it has tons of ads.

AFAIK dailymile does not respect many features of TCX. I did not use either Strava or TrainingPeaks. But I heard from a friend of mine that Strava does recognize common parts of the course thus making it really possible to compete. I don't know if it is a feature of their app for iOS only and whether it would work with uploaded stuff.

I tend to think that Garmin Connect is not bad (example) just to visualize stuff. I did not pay attention to the terms of their service though whether it is okay to use it without Garmin devices.

While I'm interested in finding out what is the best out there, it does not really belong to either this software directly or this issue in particular.


Reply to this email directly or view it on GitHub: https://github.com/mlt/schwinn810/issues/5#issuecomment-6345840