Skip to content
/ schwinn810 Public

Software for Schwinn 810 (and also some Mio, Cresta, and RedClover) GPS sport watch with heart rate monitor (Linux, Windows, and Mac OS)

Notifications You must be signed in to change notification settings

mlt/schwinn810

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

News

12/5/2014

This project is well and alive! I set up a Google group for announces and such. Feel free to ask questions. I know that some had to register with GitHub just for that.

Latest binary build for Windows from intermediate dev branch is available in releases section. Note that it does not require VCP driver and should work with whatever Windows installed for you. Uninstall VCP driver if you installed it previously.

12/27/2012

Apparently binary hosting has been deprecated @github. If someone is capable of providing Windows (and Mac) binary builds, please create an issue. I might set up Amazon S3 for binaires. Though it may take a while.

About

There are inexpensive sport watches out there, however the software is limited to MS Windows and is quite ugly.

Plug'n'play on Ubuntu GNU/Linux video.

Idea

All looks like USBXpress Development Tools from Silicon Labs was used to communicate via USB-UART bridge cp2102.

It seems feasible to write a proxy and transcribe all communication between the software on Windows host and device behind USB-UART bridge.

Once protocol and data format are established, code can be written to fetch data.

There are choices as how to organize things. At first it seems natural to use a database to store all results. However the question is what DB to use? Or shall we use ODBC to support virtually all? If we use sqlite, we can access data with HTML5.

At the end I came to conclusion that there is nothing better than plain CSV files named after tracks. All can be enumerated, some deleted, are human-readable, and can be accessed from other software easily.

The problem would be how to get overall statistics? Like it would be sweet to use R to see trends in progress across multiple runs.

Vision

In the end I'd like to see everything modularized such that same code can be reused with GUI for download progress, or built into a larger app.

Implementation

Right now there are few independent components (with some code duplication like in download.py and settings.py :( )

  • download.py is the main program to extract tracks, laps, points
  • settings.py extracts all settings that can be fetched, like time zone threshold, user information, etc
  • babelize.cmd is a hook script that optionally can be called by donload.py. It contains commands to execute for each track fetched.
  • schwinn810.cmd is a convenience script to reduce amount of typing necessary to provide download.py with options
  • csv2tcx.py converts laps & points into a single TCX file (gpsbabel lacks laps support)
  • tcx2garmin, mmr_uploader are "templates" on how TCX could be uploaded automatically from babelize.cmd . For now, refer to source code.

Batch/shell scripts babelize and schwinn810 can be renamed for convenience.

Installation

Windows

Please follow this guide.

Ubuntu GNU/Linux

There is a ppa available with package for Oneiric Ocelot. Install as any other package. Use dpkg-reconfigure -plow schwinn810 to change settings.

Build

Just using up-to-date code

At these early stages, I'd recommend to use python source code and do not do compilation into binaries. However, if you don't feel like installing tons of stuff on Windows, refer to download section. I upload binary builds for MS Windows from time to time.

To make Windows redistributable

  1. Install Python 2.7 (preffered) or 3.2, pip, pyserial, cx_Freeze, and pytz.
  2. Execute cxfreeze --compress --include-modules serial.win32 download.py --target-dir dist Refer to setup.py and distutils manual on how to build

Tasks

At this point one should not expect an exact copy of software for other OSes.

  1. Code proxy and transcribe communication making it possible for others to develop software independently.
  2. Improve data format details.
  3. Write some python (?) code that dumps data from serial port into CSV
  4. Make it more unicsv-friendly so gpsbabel can convert data to GPX and/or TCX.
  5. Write some GUI, R code
  6. Export to various web sites Can someone help with dailymile.com ?
  7. Move command line options to a configuration file and make things debconf friendly
  8. Per user JSON-based configuration file and GUI to set things up (WIP)
  9. Watchdog to monitor device notification (when plugged) for Windows and Linux (WIP)

About

Software for Schwinn 810 (and also some Mio, Cresta, and RedClover) GPS sport watch with heart rate monitor (Linux, Windows, and Mac OS)

Resources

Stars

Watchers

Forks

Packages

No packages published