Giter VIP home page Giter VIP logo

diy_datalink_adapter's Introduction

DIY Datalink Adapter

Timex Datalink Notebook Adapter Emulator for the Raspberry Pi Pico and Arudino Uno


  • This is a modern microcontroller based replacement for the Notebook Adapter kit used by the Timex Datalink watch.
  • This, along with the original Notebook Adapter, eliminates the need for syncing the watch with an old CRT monitor.
  • You can use either a new Windows 10 machine or the original hardware, depending on which microcontroller you pick.
  • It's compatible with the original software (and PC hardware), or other third party software that can communicate with an original Notebook adapter.
  • Use just as you would with the official Datalink Notebook Adapter, following in-app directions (choosing to sync with the Notebook adapter).
  • Note: You may need to shield the watch sensor from interference, like modern LED lightbulbs or even monitors.

July 2023 Update! Now works in Windows 10

  • Instructions have been updated for using this "directly" in modern Windows with winevdm.

Two versions of this project

USB Raspberry Pi Pico version


  • A new simpler way for modern Windows users to sync their watch with just a Raspberry Pi Pico.
  • No hardware tinkering required unless you are using the Pico W, which requires an external LED.
  • You can run this "directly" on a modern Windows OS (like Windows 10) with winevdm.
  • If you prefer, you can use a virtual machine running a legacy Windows version.
  • You can also 3D print a case for this version.

DB9 Serial Arduino Uno version


  • The original project to directly replace the serial notebook adapter.
  • This is primarily intended for use with legacy hardware running older versions of Windows.
  • If you have a serial port or a USB to serial adapter, you could also use this version with a Virtual Machine or even modern Windows with winevdm.
  • Some assembly required.

Raspberry Pi Pico Version

Requirements

  • Original model of Raspberry Pi Pico if you want to just use the onboard LED. (Pico W users must use external LED, see below).
  • USB cable (with data line)
  • Download of DIY_Datalink_Pico.uf2
  • Either winevdm on your modern Windows OS or a Legacy Windows Virtual Machine (tested with Windows 98 SE in VMWare Workstation 16)
  • Timex Datalink watch (tested with Datalink 150)
  • The original Timex Datalink softare (2.1d preferred and tested)
  • No other hardware requirements for the original Pico, as it uses the built-in LED.
  • Note: External LED on GPIO pin 18 connected to 1k resistor on GND is required for Pico W, but is optional (and may work better) on the original Pico. The internal LED hardware changed from a GPIO pin to go through the Wi-Fi chip on the Pico W. Because of this, it does not support the low-latency blinking that is required for this project.

Using the Raspberry Pi Pico Version in Windows 10 with winevdm

  1. Connect the Raspberry Pi Pico to the host PC while holding down the Pico's reset button. This should mount the Pico as a USB drive.
  2. Drag and drop DIY_Datalink_Pico.uf2 onto the Pico's root folder, it should immediatley unmount itself and restart as a USB serial device.
  3. Drag and drop the installer (SETUP.EXE or TDL21D.EXE) for Timex Datalink into winevdm's otvdmw.exe and complete the installation.
  4. Drag and drop the TIMEXDL.EXE you previously installed (example: to C:\DATALINK) into winevdm's otvdmw.exe.
  5. Use the Timex Datalink software as normal, but make sure you choose the Notebook Adapter during the tutorial/setup.

Error: Could not load 'VBRUN300.DLL' required by 'TIMEXDL', error=2

If you receive an error about VBRUN300.DLL missing, you may need to manually extract the file from the installer using something like 7-zip.

  1. Right click on TDL21D.EXE and under 7-zip > click Open archive.
  2. Right click on SETUP.EXE and click Open Inside.
  3. Drag and drop VBRUN300.DLL into C:\DATALINK
  4. Try again

If you only have SETUP.EXE (i.e. the floppy version), you can just right click on it, and under 7-zip click Open archive, then drag and drop VBRUN300.DLL into C:\DATALINK and try again.

Workaround for Using the Raspberry Pi Pico Version in VMware Workstation

  1. This assumes you have a working Windows 98 virtual machine setup in VMware Workstation. You should also be able to use Windows 95.
  2. Determine which COM port is for the Pico on the physical/host machine. Example: COM7 (Unsure? Is your host machine running Windows 10? Watch Windows 10's Device Manager before and after you've unplugged the device. Note the differences).
  3. If your Windows 98 virtual machine is already powered on, shut down the virtual machine.
  4. Add a virtual serial port via Player > Manage > Virtual Machine Settings or right click on the Windows 98 virtual machine.
  5. Click "Add" (in the bottom left hand corner), select and add a Serial Port.
  6. Set the Serial Port to use the Physical Serial Port you determined earlier. Example: COM7
  7. Note that at no point during the process should you need to physically unplug the Pico. If you have, you may need to start over.
  8. Ensure "Connected" is unchecked in VMware Workstation.
  9. Ensure "Connect at power on" is unchecked.
  10. Start the Windows 98 Virtual Machine.
  11. Open the Timex software inside Windows 98 (make sure you choose to output to the Notebook Adapter).
  12. Intentionally fail the first device check with a sync or test.
  13. Go to Player > Manage > Virtual Machine Settings in VMware Workstation.
  14. Select the virual serial port you added earlier.
  15. Click "Connected" to enable it.
  16. Retry the Timex software sync.
  17. Timex software should now recognize your device.
  18. You should also see the LED blinking on your Pico.
  19. Place the watch 1.5 inches away from the LED. Be sure to shield the watch from external light. Example: Try using a toilet paper tube.
  20. If your watch is set to sync mode, you should hear beeps from the watch!

VMware instructions originally provided by MuddledBox. Thank you!


If everything is correct, you should see a blinking LED light on the Pico when syncing.

3D Printed Case

  • Shilbo has designed and printed a case that not only holds the watch and Pico at the right distance, but also shields the light from interference from modern LED lighting!

Arduino Version

Requirements

  • Arduino Uno (this should be compatible with other Arduino boards or similar microcontrollers, but it's only been tested on an Uno R3)
  • Arduino software to upload the .ino file to an Arduino Uno
  • Software libraries for Arduino (see below)
  • RS232 TTL hat (I used Anmbest MAX3232 3.3V to 5V DB9 Male RS232 on Amazon)
  • Red LED (with 1k resistor on GND between LED's ground wire) Note: You may need to try a clear LED if red doesn't work.
  • 4-6 short wires with Dupont connectors that are male on one end, female on the other
  • Null modem cable to connect TTL adapter to PC
  • Windows 9x PC or virtual machine with serial port and Timex Datalink software installed (verified with 2.1d). Windows 3.x or even Wine may also work, but are untested.
  • Timex Datalink watch (tested with Datalink 150)
  • Optional: USB to serial adapter for use with a virtual machine. It doesn't have to involve a DB9 connector, you can use a USB to TTL adapter directly without TTL hat. But you'll need additional Dupont wires with male on both ends.

The links above are specific to the US, and may not be available internationally. Even for US shoppers, the links will likely be inaccurate over time as things go out of stock. I recommend using Adafruit and Aliexpress for alternate sources that ship worldwide. If you can, try to find the same products I've recommended, as they have been tested with the project.

Libraries Used (Arduino Version)

This currently requires three Arduino libraries, add them with the Library Manager in the Arduino software.

  • AltSoftSerial (tested with version 1.4.0)
  • DigitalIO (tested with version 1.0.0)
  • SafeString (for millisDelay, tested with version 4.1.15)

Connecting it all (Arduino Version)

Connect the Arduino Uno to RS232 TTL adapter using wires with Dupont connectors. Add an LED with 1k resistor. Power the Arduino Uno via USB. Connect null modem cable from the PC to the TTL adapter.


  • Connect pin 9 on the Arduino Uno to TX on the TTL adapter (Note: RX and TX labels may be swapped on some TTL adapters)
  • Connect pin 8 on the Arduino Uno to RX on the TTL adapter (If the software isnt seeing the adapter: try swapping RX and TX)
  • Connect 5V on the Arduino Uno to VCC on the TTL adapter (Warning: some TTL adapters may accept or even require connecting 3V instead)
  • Connect any GND on the Arduino Uno to GND on to serialthe TTL directlyadapter
  • Connect pin 12 on the Arduino, Uno to the postive/longer leg on the red LED
  • Connect any GND on the Arduino Uno to a 1k resistor and other end of resistor to the negative/short end on the red LED (you can just twist these together in a pinch)
  • Connect USB type B to power source (does not currently use USB for data/communication)
  • Connect null modem cable between TTL adapter and PC
  • If you're using a virtual machine, pass through the COM port to your VM. It's better not to pass through the USB to serial device directly. This is verified to work in VMWare Workstation.

Troubleshooting (Arduino Version)

  • If the software isn't seeing the adapter, try swapping RX and TX. You should get a blink from the LED when the software is trying to send.
  • Sometimes the Dupont connectors won't make a good connection. You might need to bend the male connectors a little to make better contact. Check with a multimeter or continuity tester to be sure.
  • Know that while they look the same, null modem cables are different from serial cables. You may need to adapt a serial cable with a null modem adapter, or just try a different set of cables.
  • When sending the sketch to the Arduino, check for errors. You should see an "Done uploading" message if everything went smoothly.
  • If you're ever having issues, try using a terminal program like PuTTy (version 0.61 works in Win9x) to check for signs of life. When typing x it should echo x, if you type ? it should return a version number.
  • If your software doesn't like the adapter, make sure you're using the final version, 2.1d. The earliest versions don't support the adapter at all.

Special Thanks

  • Antti Huhtala
  • excsniper on the Arduino Discord 🦆
  • Selzby and leandromarceddu on the unofficial Pico Discord for their hints and encouragement
  • PhiLho on a Processing.org forum post for their bitwise info
  • Shilbo for providing a 3D printable case for the Pico version
  • MuddledBox for providing step-by-step instructions in VMware Workstation

Disclaimer

I am not a professional programmer. This is my first Github project. Please be kind. 😬

Timex, Datalink, and DATA LINK are the registered trademarks of Timex Corporation. This project is not associated with or sponsored by Timex.

diy_datalink_adapter's People

Contributors

famiclone6502 avatar

Stargazers

 avatar Timothy Costigan avatar Sean Clancy avatar MuddledBox avatar Willy Hardy avatar  avatar  avatar Daniel Wiggins avatar  avatar Peter Jaric avatar Silent700 avatar  avatar  avatar Sadie May avatar Tyler Whittaker avatar Marcin Dąbrowski avatar Naveen Prashanth avatar  avatar Gabor Leitner avatar Christian W. avatar Jeff Armstrong avatar DaOfficialWizard avatar JimFyyc avatar

Watchers

 avatar Kostas Georgiou avatar David Erhart avatar  avatar  avatar  avatar  avatar

Forkers

timlump

diy_datalink_adapter's Issues

LED will not light on Pico W

Hello, Thanks for creating this project. I am attempting to use the Raspberry Pi Pico version of it to communicate with my Datalink 100 watch. I am running the Datalink software in Windows ME with VMware 16. After considerable effort I have managed to get the Datalink software to recognize the Pi as a serial device and give me the "Auto-calibration is successful" message. However, the LED simply does not light up when it's supposed to be sending information. I have checked that the LED is functional with another script. Any help would be appreciated. Thank you!

PICO LED not detected by watch sensor.

Hi :)

I tried the Pico out and the script went in well, the VM (or DOSBOX) detects the the serial passthrough fine. The Datalink Software also works well in the sense that the device is detected as a Datalink adapter and the green LED starts to flash.

The problem is that the LED is not picked up at all by my watch as it may be too weak or wrong intensity. To the human eye seems fine and bright though.

Technically everything appears to work well, the Pico led flashes at what looks like to be the right sequence. However it may be to weak or wrong type for the watch to pick up. It is possible that different batches of PICOs have different LED types if yours worked well.

I am using the same model PICO as yours, not the W wifi one.

If my theory that not all LEDs are the same for the same model Picos is correct - May I suggest assigning a couple of of the GPIO ports/holes for +/- so that a peripheral LED can be attached. Yeah it would lose the 'no extra hardware needed' feature but it would still be a minor requirement and work around if anyone encounters the same issue.

Edit: After I wrote the above, I gave it several other goes and got it to work. My theory of 'weak' LED might be sound as I can only get it to work by literally pressing the watch sensor into the LED and even so, it has to be at a particular angle to the 'circle' of the sensor. It is not super practical as it only has a sweetspot of like 1mm so its really hard to find the same angle again and held very still - But it works :)

The Arduino version still works well and is very forgiving of angle/distance so I don't think its the watch in this case.

Once again - Great work!

Timex Notebook Adapter not found error

Greetings,

First of all, thank you very much for working on a replacement for the Timex Datalink adapter. It is something very much needed as for many bulky CRTs are not an option

Sadly, I have ran into an issue: When choosing 'Serial' in the Timex Win95 application, I get a "Timex Notebook Adapter Not Found" error. It appears that the laptop doesn't recognise the arduino as an adapter.

I am using a Thinkpad 380D running Windows 95 and the arduino is connected though the DB9 serial port.

As far as I can tell I have followed the instructions to the letter including adding the Libraries. Everything is connected according to your instructions - Checked several times. Not sure what could be wrong, any help would be appreciated.

New issue: How to make melodys for Timex Datalink 150

Hello. I was playing with the watch software, and i was trying to make some melodys for the watch. I have the software for linux the name of the software is datalink-1.0.0 if someone needs it, i will upload it. It uses SVGA Library.

So, i was playing with the ORGINAL Timex Datalink Software, and the melodys for the Timex Datalink 150 are coded with SPC Format. I think the melodys are 4 bit, so in the SPC File are poliphonic melodys so it uses MIDI format i think.

So - how to make such a melody. Using what? And how to code it for it to work? I dont want any help with uploading it to the watch (At the moment)

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.