Giter VIP home page Giter VIP logo

crane_gps_watch's Introduction

Crane GPS Watch client for Linux and Windows

Copyright (C) 2014-2015 [email protected]

Build Status Donate

Crane GPS Watch client is an unofficial, alternative open source Linux and Windows program for downloading GPS tracks from different GPS watches.

The program provides an alternative to the "GPS Master" software which is usually shipped with the watch. It does not provide many of the features of "GPS Master", but works cross platform and from the command line.

Supported watches and firmware version:

As the watch is commonly rebranded, the following watches might just work:

I guess that all GPS watches delivered with "GPS Master" software work. Please understand that this tool will not provide firmware updates for your watch. Check for updates with the original software.

Krippl Watches is probably the importer/brander of the Crane watch. The site lists several other re-brands of the GPS watch:

  • ASCOT
  • TWINS
  • Runtastic

Communication protocol: http://www.usglobalsat.com/downloads/SiRF_Binary_Protocol.pdf

Output format:

The TCX format is used instead the popular GPX format, for the following reason: The GPS watch is able to record workouts where only heartrate is available, no GPS. It is not valid to create GPS records without coordinates. In TCX, this is possible.

If you require a different output format, have a look at gpsbabel. The program can convert between many different formats (e.g. GPX). Or file a feature request.

Lap information is not yet stored in the output file. This is being worked on. mru00#8

USAGE:

crane_gps_watch_client --help  # show the help screen

crane_gps_watch_client 
    [--clear]                  # delete workout info on watch.
    [--output "filename"]      # override default filename, write single file for all tracks.
    [--epo "epo-file"]         # download epo data
    [--split]                  # write file for each track.
    [--device "/dev/tty..."]   # override default device file / com port.
    [--to_image filename]      # write watch data to file <for testing>.
    [--from_image filename]    # read watch data from file <for testing>.
    [--verbose]                # write debug output to console. repeat to get more output.

As default, the output file is written in the current working directory. The filename is created from the current time and date. Use the --output option to specify a different filename.

--split makes the program write a single .tcx for every track currently stored on the watch. Default is to write a single .tcx file that contains all tracks. When this option is used, the --output option is ignored. The files are written in the current directory. The filename is taken from the start time of the workout track. If a file already exists, it will be overwritten.

The --device option is used to specify the device file, default is 'auto'. 'auto' enables the automatic port detection. If auto-detect does not work for you, please file a bug report.

--clear clears the workouts from the watch after they are successfully transfered.

--epo allows you to download EPO data (MTK7d.EPO) for AGPS. This feature is still in development. I still don't know the proper way to obtain MTK7d.EPO files. The article https://geekblog.kevredon.org/?p=556 lists one server.

Enjoy!

Disclaimer:

Please note that I (the developer) am not affiliated with any of the manufacturers listed. The protocol is implemented completely clean-room only by observing the behaviour of the watch, without any attempts to infringe copyrighted material. The original software and firmware was not reverse engineered in any way.

All trademarks mentioned belong to their owners, third party brands, product names, trade names, corporate names and company names mentioned may be trademarks of their respective owners or registered trademarks of other companies and are used for purposes of explanation and to the owner's benefit, without implying a violation of copyright law.

This software is distributed under the GNU General Public License. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details or file COPYING.

Bug reports & Feature requests:

Please report problems, bugs, feature requests and success messages either via the github issue tracker or mail.

If the generated output files are wrong, please create an image (--to_image) and send me the image with a description of the expected output.

I can only test 32bit executables, but users built and run successfully on 64bit. If you have issues on 64bit systems, please report them.

Installation:

Crane GPS Watch client uses make to build:

## Clone source code archive from githup repo:
git clone https://github.com/mru00/crane_gps_watch.git

## or download Zip file:

wget https://github.com/mru00/crane_gps_watch/archive/master.zip
unzip master.zip


cd crane_gps_watch


## build the software
./configure
make

## install the software
sudo make install

Make sure you have the rights to access the serial port. Usually you have to be member of the dialout group (debian based distros) or uucp (Arch Linux). Consult a search engine to find a solution for other distros and let me know so I can update this documentation.

make check can be used to run the test suite. The test suite requires additional programs to be installed: xmllint from libxml2-utils.

See INSTALL for details. Note that it is possible to install without root rights, use the ./configure --prefix=... option.

Please also have a look at .travis.yml, which describes a full build for the Travis-CI platform, including all dependencies.

Cross compilation for windows:

The program also works under windows. Windows installers are available in the release directory.

The program works using Wine, except access to the com port. The testsuite on Travis also builds and checks the windows executable with the same testcases.

To build for windows, use mingw-w64:

sudo apt-get install mingw-w64
./configure --host i686-w64-mingw32 --build i686-linux-pc
wine ./src/crane_gps_watch_client.exe --help

Auto import

The script requires the package python-pyudev to be installed.

This repository also ships the scripts gps_watch_monitor.py and gps_watch_onconnect.sh.

gps_watch_monitor.py is intended to be auto-started with your X session. To enable auto-start copy the file gps_watch_monitor.desktop (usually in /usr/local/share/crane_gps_watch_client after installation) to ~/.config/autostart.

It monitors the UDEV bus for new connections on the USB bus. If the watch is connected, it will start gps_watch_onconnect.sh in a terminal window.

gps_watch_onconnect.sh can start the client to import the files, and execute additional tasks. To customize the default behaviour, copy the script (usually /usr/local/share/crane_gps_watch_client/gps_watch_onconnect.sh) to your home as: ~/.gps_watch_onconnect.sh and modify it to your needs.

TODO:

WIP:

  • get more details about the watch itself (manufacturer, architecture), firmware upgrade server...

In testing:

  • AGPS download
  • Auto-scan for serial port
  • clear watch memory

Low-prio:

See Also:

GPS Software:

Technical links:

Similar projects:

  • Kalenji gps watch reader, support for W Kalenji 300, CW Kalenji 700, On Move 500, On Move 700, Kaymaze 700
  • crane-gps-watch, reverse engineering repository of this project, written in perl, easy to hack&test stuff.

Uses:

Thanks:

  • Yarema
  • Wolfram
  • Peter
  • All contributors!

crane_gps_watch's People

Contributors

ajfclark avatar andreaskern avatar knedlyk avatar mru00 avatar omalashenko avatar rsabitov avatar sagb avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.