Copyright 1996-2002 - Karl R. Hakimian and David Fries This is the README file for the datalink library. This software is in no way associated with or supported by Timex. Do not contact them for help with this software. Datalink 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 2 of the License, or (at your option) any later version. Datalink 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. You should have received a copy of the GNU General Public License along with datalink (see COPYING); if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ========================================================================== This is the datalink library for Linux. It uses the SVGAlib to send data to the Timex DataLink watches. You will need SVGAlib installed and the development headers and libraries for SVGAlib to compile against. The original author is Karl R. Hakimian , I have extended the program to work with the Timex DataLink Ironman Triathlon watch. I do not have the ability to test the original model 70 or model 150 watches and I have only tested the SVGA output program. The original watches and serblink (serial blink) program may have been broken with my code changes, I have no way to test them. The watch has a Motorola 6805 microprocessor in it with the ability of the model 150 or 150s version to write and run programs on the watch. Compiling: Type make depend to make the dependences. $ make depend Then just type `make` on the command line. $ make Installing: Type `make install` on the command line. % make install The default locations of the installed programs are: /usr/local/lib/libdatalink.so.1 /usr/local/lib/libdatalink.a /usr/local/include/datalink.h /usr/local/bin/svgablink /usr/local/bin/serblink /usr/local/bin/setwatch Please note that the svgablink must be installed setuid root to use the SVGAlib and change to graphics mode. If you install as root the default is to install setuid root. If you are concerned about security I suggest you have it setuid root and executable by the group and not executable by the world. Include only those in the group who has a reason to run the program and you trust. I do not know how much the original author has put into making it secure, I know I haven't done anything along those lines. If you have patches to fix any problems please email me (David). Running: The short version: Copy datafile from the source directory, make any changes. Hit mode on your watch until you get to the "COMM READY V4.0" screen. Run setwatch with the following arguements `setwatch -all datafile`. If you have the model 70 or model 150 you have to add the option -model150 or -150, or -model70 or -70 to the setwatch program. The long version: Make a directory called .datalink in your home directory, copy the datalink file from the source directory to that directory, follow above directions adding any of the options to send specific data to the watch. Find all bugs, fix all bugs, send all patches to me (David). Suggestions: I have found my 15" monitor seems to send the data without any problems, but my 19" monitor tends to corrupt some of the phone data. All of the packets have crc data in them, but the watch does not indicate the data is bad, so check to make sure everything was transfered correctly. I may need to add code to adjust the spacing of the lines on the monitor, I'm not sure what the problem is here. Running anything in the background can cause the program to not function correctly. SVGAlib appears to be polling the video card to determine when the verticle sync occurs and if it misses it because something else is running the watch may not get the data correctly. I don't know how much of a problem this is, I just noticed it on development of my additions. Improvements, suggestions, patches, comments e-mail me. I am also interested in how many people find this useful, please e-mail if you just plan to use it, I would like to hear from you. If you work for Timex or have any influence, I would like some documentation on these watches. I have none. I am aware there is a software development kit that Timex put out, but I am also told it contains only information on how to use their equivalent of the datalink library. I do not need this. I need documentation of the protocol and watch capabilities, that is what I need. The protocol was decoded by taking a light sensitive circuit, placing it in from of a CRT screen that was flashing data from the Timex software, recording it with a sound card, and useing software I wrote to turn it back into data. Then figuring out by hand what it means. When doing any transfers the chronograph and timer is stopped. This is just so you know. David Fries dfries@mail.win.org August 25, 1999