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

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 :( )

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)