debrouxl / tilibs

TILP (formerly GtkTiLink) can transfer data between Texas Instruments graphing calculators and a computer. It works with all link cables (parallel, serial, Black/Gray/Silver/Direct Link) and it supports the TI-Z80 series (73..86), the TI-eZ80 series (83PCE, 84+CE), the TI-68k series (89, 92, 92+, V200, 89T) and the Nspire series (Nspire Clickpad / Touchpad / CX, both CAS and non-CAS)
http://lpg.ticalc.org/prj_tilp
63 stars 23 forks source link

Feature request: UART/serial cable #72

Closed Heath123 closed 1 year ago

Heath123 commented 1 year ago

Is it possible to repurpose the link cable as a generic UART/serial (not sure what the right terminology is) cable? This would be useful for connecting it to my Casio calculator and maybe for other things as well

debrouxl commented 1 year ago

In libticables, the GrayLink is the closest thing to normal serial communication. But first of all, are you using a Casio calculator model not covered by https://p7.planet-casio.com/en.html ?

Heath123 commented 1 year ago

I don't own a Casio link cable, I was wondering if my old SilverLink TI cable could be repurposed as one, since it has the same physical connector at the end (a 2.5mm jack)

I am using a Casio CG50 which supports USB communication but custom addins can't receive data from a PC over USB (yet, until the proper drivers are developed on the calculator side)

I'm not asking for a full implementation of the p7 protocol, I just wanted to get some kind of raw data over the connection

debrouxl commented 1 year ago

The SilverLink might be repurposable as a Casio link cable, if the electrical signals are compatible enough (voltage tolerance, waveforms, etc.). However, since the SilverLink's standard firmware only speaks TI's specific SilverLink protocol on the USB side and TI's half-duplex classic protocol on the proprietary 2.5mm stereo-jack-like connector side, in order to make a SilverLink speak Casio's protocols on both sides, custom firmware and reflashing thereof looks like a hard requirement... in which case you could arguably be better off using a documented microcontroller with an open development environment: Arduino, STM32-based board, or similar :)

The fx-CG50's MSD interface is mostly a boon for users, but no standard USB protocol covers all operations which make sense on a graphing calculator, e.g. MSD is a poor fit for remote control.

Heath123 commented 1 year ago

Oh, I hoped this library had direct enough control to make that possible, thanks for answering though

debrouxl commented 1 year ago

Direct bit-banging on classic DB9 and DB25 ports is what the BlackLink / "$4 cable" and ParallelLink / "$5 cable" do, but they implement TI's half-duplex protocol, not anything else. Such physical ports are getting harder and harder to find on real computers; not only many USB / RS232 adapters do not support low-level bit-banging, but a number of PCI(e) adapters do not provide the right kind of low-level access either. With the USB ports, basically, the effective solution is a microcontroller running software speaking (some USB protocol) on the one side and (UART or arbitrary bit-banged protocol) on the other side.