Created: 2012-03-23 16:05
Updated: 2018-10-07 17:30



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.


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.


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.


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.


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.


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

  • is the main program to extract tracks, laps, points
  • 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 It contains commands to execute for each track fetched.
  • schwinn810.cmd is a convenience script to reduce amount of typing necessary to provide with options
  • 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.



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.


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 --target-dir dist Refer to and distutils manual on how to build


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 ?
  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)
Cookies help us deliver our services. By using our services, you agree to our use of cookies Learn more