Skip to main content
edited tags
Link
Leo B.
  • 20.7k
  • 5
  • 50
  • 157
added 14 characters in body
Source Link
EBCDIC
  • 353
  • 1
  • 6

I recently rescued my Tandy CGP-115 plotter from the attic and had the idea to try and drive it from a modern machine.

I have a FTDI CHIPI-X10 RS-232 adapter and installed drivers on a MacBook.

I have assembled a lead (DE-9 female to 4-pin DIN), according to what I've been able to read up about the TRS-80Tandy Color Computer serial port, as per the following:

  • TXD - pin 3 -> DIN pin 4
  • GND - pin 5 -> DIN pin 3
  • CTS - pin 8 -> DIN pin 2

I believe I have the correct Python code to send data to the plotter:

import serial
import time

ser = serial.Serial(port='/dev/tty.usbserial-FT2XIBOF', bytesize=serial.SEVENBITS, baudrate=600, rtscts=True, dsrdtr=True, stopbits=serial.STOPBITS_TWO)
ser.write(b"Hello, world! This is a message from a MacBook in 2020.\n")
#ser.write(b"ABCDEFGHIJKLMNOP")
ser.flush()
time.sleep(5)
ser.close()

Something seems to be not right - when I send the following:

ABCDEFGHIJKLMNOP I get the following: AJKLMNOPIJKLMNOP. Occasionally this comes out right.

Likewise Hello, world! This is a message from a MacBook in 2020. prints as something like:

Hello, world! This is a messaa i 
                                 2020.

2020.

2020.

So something's up, obviously, arguably something to do with the handshaking. Have I wired the cable correctly? I have tried the parallel port and that appears to work fine. (And why the echoing of the last few chars? Could that be electrical rather than logical?)

I have also tried wiring other pins to DIN pin 2 in case I've misunderstood the handshaking: DSR, DTR, DSR/CTS together, even RXD, with similar results. Sometimes the printing is delayed for a second or two, suggesting the sender timed out the handshake and just flushed the data anyways. I've also tried various combinations in the code, serial.EIGHTBITS, rtscts=False, dsrdtr=False, without success.

Any advice much appreciated.

I recently rescued my Tandy CGP-115 plotter from the attic and had the idea to try and drive it from a modern machine.

I have a FTDI CHIPI-X10 RS-232 adapter and installed drivers on a MacBook.

I have assembled a lead (DE-9 female to 4-pin DIN), according to what I've been able to read up about the TRS-80 serial port, as per the following:

  • TXD - pin 3 -> DIN pin 4
  • GND - pin 5 -> DIN pin 3
  • CTS - pin 8 -> DIN pin 2

I believe I have the correct Python code to send data to the plotter:

import serial
import time

ser = serial.Serial(port='/dev/tty.usbserial-FT2XIBOF', bytesize=serial.SEVENBITS, baudrate=600, rtscts=True, dsrdtr=True, stopbits=serial.STOPBITS_TWO)
ser.write(b"Hello, world! This is a message from a MacBook in 2020.\n")
#ser.write(b"ABCDEFGHIJKLMNOP")
ser.flush()
time.sleep(5)
ser.close()

Something seems to be not right - when I send the following:

ABCDEFGHIJKLMNOP I get the following: AJKLMNOPIJKLMNOP. Occasionally this comes out right.

Likewise Hello, world! This is a message from a MacBook in 2020. prints as something like:

Hello, world! This is a messaa i 
                                 2020.

2020.

2020.

So something's up, obviously, arguably something to do with the handshaking. Have I wired the cable correctly? I have tried the parallel port and that appears to work fine. (And why the echoing of the last few chars? Could that be electrical rather than logical?)

I have also tried wiring other pins to DIN pin 2 in case I've misunderstood the handshaking: DSR, DTR, DSR/CTS together, even RXD, with similar results. Sometimes the printing is delayed for a second or two, suggesting the sender timed out the handshake and just flushed the data anyways. I've also tried various combinations in the code, serial.EIGHTBITS, rtscts=False, dsrdtr=False, without success.

Any advice much appreciated.

I recently rescued my Tandy CGP-115 plotter from the attic and had the idea to try and drive it from a modern machine.

I have a FTDI CHIPI-X10 RS-232 adapter and installed drivers on a MacBook.

I have assembled a lead (DE-9 female to 4-pin DIN), according to what I've been able to read up about the Tandy Color Computer serial port, as per the following:

  • TXD - pin 3 -> DIN pin 4
  • GND - pin 5 -> DIN pin 3
  • CTS - pin 8 -> DIN pin 2

I believe I have the correct Python code to send data to the plotter:

import serial
import time

ser = serial.Serial(port='/dev/tty.usbserial-FT2XIBOF', bytesize=serial.SEVENBITS, baudrate=600, rtscts=True, dsrdtr=True, stopbits=serial.STOPBITS_TWO)
ser.write(b"Hello, world! This is a message from a MacBook in 2020.\n")
#ser.write(b"ABCDEFGHIJKLMNOP")
ser.flush()
time.sleep(5)
ser.close()

Something seems to be not right - when I send the following:

ABCDEFGHIJKLMNOP I get the following: AJKLMNOPIJKLMNOP. Occasionally this comes out right.

Likewise Hello, world! This is a message from a MacBook in 2020. prints as something like:

Hello, world! This is a messaa i 
                                 2020.

2020.

2020.

So something's up, obviously, arguably something to do with the handshaking. Have I wired the cable correctly? I have tried the parallel port and that appears to work fine. (And why the echoing of the last few chars? Could that be electrical rather than logical?)

I have also tried wiring other pins to DIN pin 2 in case I've misunderstood the handshaking: DSR, DTR, DSR/CTS together, even RXD, with similar results. Sometimes the printing is delayed for a second or two, suggesting the sender timed out the handshake and just flushed the data anyways. I've also tried various combinations in the code, serial.EIGHTBITS, rtscts=False, dsrdtr=False, without success.

Any advice much appreciated.

Source Link
EBCDIC
  • 353
  • 1
  • 6

How can I send RS-232 serial data to a Tandy plotter reliably?

I recently rescued my Tandy CGP-115 plotter from the attic and had the idea to try and drive it from a modern machine.

I have a FTDI CHIPI-X10 RS-232 adapter and installed drivers on a MacBook.

I have assembled a lead (DE-9 female to 4-pin DIN), according to what I've been able to read up about the TRS-80 serial port, as per the following:

  • TXD - pin 3 -> DIN pin 4
  • GND - pin 5 -> DIN pin 3
  • CTS - pin 8 -> DIN pin 2

I believe I have the correct Python code to send data to the plotter:

import serial
import time

ser = serial.Serial(port='/dev/tty.usbserial-FT2XIBOF', bytesize=serial.SEVENBITS, baudrate=600, rtscts=True, dsrdtr=True, stopbits=serial.STOPBITS_TWO)
ser.write(b"Hello, world! This is a message from a MacBook in 2020.\n")
#ser.write(b"ABCDEFGHIJKLMNOP")
ser.flush()
time.sleep(5)
ser.close()

Something seems to be not right - when I send the following:

ABCDEFGHIJKLMNOP I get the following: AJKLMNOPIJKLMNOP. Occasionally this comes out right.

Likewise Hello, world! This is a message from a MacBook in 2020. prints as something like:

Hello, world! This is a messaa i 
                                 2020.

2020.

2020.

So something's up, obviously, arguably something to do with the handshaking. Have I wired the cable correctly? I have tried the parallel port and that appears to work fine. (And why the echoing of the last few chars? Could that be electrical rather than logical?)

I have also tried wiring other pins to DIN pin 2 in case I've misunderstood the handshaking: DSR, DTR, DSR/CTS together, even RXD, with similar results. Sometimes the printing is delayed for a second or two, suggesting the sender timed out the handshake and just flushed the data anyways. I've also tried various combinations in the code, serial.EIGHTBITS, rtscts=False, dsrdtr=False, without success.

Any advice much appreciated.