 


 
  	
         
		General
        
             
			I haven't worn a watch in years, but got this one because it is
            programmable.  Really wanted the Palm OS watch and then the MS
            Spot watch, but the 
          	Palm OS watch never came and the Spot watch has
            no SDK :(.  Besides, you have to recharge those watches almost
            every day and they're very big.  This watch has just enough
            memory and speed to be useful. 
             
			
			Update:  Ok, the Palm OS watch is out and looks pretty nice, but it's not 
            waterproof and only the battery only lasts a few days...
            	
             
			The watch is programmed via proprietary USB connector on the
            left side (shown above) using Timex software (which you should
            download to get the latest version). 
          	
             
			You switch between programs using the "mode" switch in
            the upper-right corner.  You input data with the
            "Start/Split" (bottom) and "Stop/Reset"
            (lower-right) buttons and the crown.  The crown can be rotated
            in either direction, pushed in, or pulled out. 
          	
             
			Programming is done in assembly language.  This is no fun,
            but probably a good idea anyway due to the limited memory.  You
            write your "app" to be a state machine and in this way
            divide your program into up to 20 states.  This is done because
            the Timex OS only copies one state at a time into RAM because it is
            so small.  The code for each state is limited to 900 bytes (the
            RAM is actually 2 kB, but the Timex OS uses the rest).  
            Fortunately, Timex has provided an SDK that eases the pain of 
            writing an application.
          	
             
			You will have to join the 
            Yahoo group to find other developers 
            and their code.  Google usually finds nothing...
          	
             
		
		Pros:  Only $61 at WalMart, relatively thin, nice look, 
            long battery life.  Cons:  small memory size, have to 
            program in assembly, no FPU or floating point support of any kind, 
            
          	no emulator (have to test apps on real 
            watch).
             
			
			Update:   Paulo Marques, Pierre 
            Delore, and Paulo Costa have created a very nice emulator for the 
            Datalink watch.  This is very useful for debugging and seeing 
            the internal workings of the system.  It is free to use and you 
            can download it from the "files" section of
            
            Datalink Developer Yahoo Group.
            	
         
		Links
        
         
			Timex DataLink Main Page: 
        http://www.timex.com/datalink/ 
          	
         
			Timex Developer Page:
        
        http://www.timex.com/developer/datalink/ 
          	
         
			Timex Data Link USB discussion forum: 
        http://groups.yahoo.com/group/timexdatalinkusb/
         
          	
         
		
		Timex Datalink USB Developer forum: 
        
        http://groups.yahoo.com/group/timexdatalinkusbdevelop
          	
         
		Display
        
         
			

         
		
		Note that the upper Dot-Matrix is actually 12x5, despite what the 
        documentation says!
          	
         
		CPU:  8-Bit SEIKO EPSON S1C88349
        
             
			Specification table for Seiko Epson (click to expand):  
          	 
 
             
			Supply Voltage:  1.8 to 3.5 VDC for low speed/power
            operation 
          	
             
			Clock Frequency:  32 kHz in low speed/power operation, 4.2 
            MHz in normal mode, 8.2 MHz in high speed mode
          	
             
			
			Note:  the M851 OS uses 2 CPU clocks; 32.768 kHz for for 
            normal operations, 2 MHz for high speed ops.  Timex says to 
            limit use of high speed as it drains the battery.
            	
             
			Memory:  48 kB internal ROM and 2 kB internal RAM (up to 2
            MB external ROM/RAM)
          	
             
		
		Special Features:  1 buzzer output (sound), 1 SVD (supply
            voltage detector), LCD driver, Serial I/O, 2 Comparators, various
            timers.  
          	
         
		External Memory
        
             
		
		User data is stored in an external EEPROM chip.  It is a 
            Microchip®
            
            24LC256 (I/SN version), 32 kB, 400 kHz max, 5 ms write speed 
            chip, good for 1 million write cycles.
          	
         
	
	Programming the S1C88 in Assembly
        
             
			Fortunately, Timex has provided a nice SDK that makes 
            programming relatively simple.  Most of your program will 
            probably be calling macros defined in the Timex SDK header files.  
            To get started, simply run the "M851 WristApp Wizard", which will 
            build a skeleton program for you based on your desired number of 
            states and resources.  Then, edit the source files (.asm) using 
            some kind of text editor.  When you are done, run the "M851 
            WristApp Builder", open the script file for your app (.scr), and 
            push the button to build your app.  Then, use the "WristApp 
            Installer" program to download to the watch.
          	
             
			You will probably have to become familiar with the 
            CPU register 
            names and instruction set. 
          	
             
			You will also have to become familiar with the
            Timex API. 
          	
             
			There's no floating point support, so I had to write my own!  
            Tried doing IEEE-754 floats, but the code was getting too big, so I 
            switched to s16e7 floats. 
          	
             
		
		You can see pieces of my code here