Getting the IBM 6715 Actionwriter 1 to print.

IBM 6715

This took a bit longer that I had expected. Sorry, I got distracted.

So, by blatantly stealing information from Computer-Magazine - Wenn der Atari ST mit der Gabi anbandelt (Teil 1), which discusses the Triumph Adler Gabriele 9009 typewriter and the corresponding computer interface box named IFD, I managed to write a little proof of concept program that can talk to the Actionwriter and make it print things under computer control.

(Note that there is a part 2 which talks about the computer interface side of things)

Let's start with a bit of background to explain what is happening. The original Triumph Adler Gabriele 9009 typewriter, on which the IBM 6715 is based, had a special feature port, and one could buy an adapter device called IFD that would interface standard parallel (Centronics) and serial (RS232) computer printer interfaces to this feature port. IBM apparently sold a similar interface device for the Actionwriter under the product name IBM 5002 Printer Option. Unfortunately, other that the name, I have not been able to find any online information about this device.

The feature port is based on RS232, but uses 5V TTL level signalling. It operates at 4800 baud, and it uses a very specific control protocol based on a set of 2-byte commands.

To print a character, you have to convert the ASCII/UTF-8 code to a daisy wheel position code, and then send this code, along with a second byte indicating hammer strength and a few option bits, to the feature port. In addition, there is a set of command sequences to perform various special functions, such as - control the interface (initialize, release, etc) - set horizontal and vertical step sizes - move the carriage horizontally - move the roller vertically

My little program works, but only barely. I suspect that the USB-RS232 adapter that I use is perhaps not doing RTS/CTS hardware flow control the way that the IBM expects it, so I had to explicitly put in timed delays to avoid overrunning the input buffer of the poor little 8031 microcontroller.

With that caviat, I have been able to successfully print some test texts on the typewriter.

Any time the program fails to provide adequate delay though, it overruns the input buffer and the typewriter gets 1 byte out of sync on the 2 byte commands, which leads to all sorts of "funny" behaviour of the typewriter. (Once I had to very quickly reach for the power switch as the typewriter kept loudly banging the carriage against the end stop.)

So my next plan is to grab an unused Raspberry Pi Pico and use its UART to have more precise control over the behaviour of the various RS-232 interface pins.

circuit board