Skip to content

jkua/wheelwriter-interface

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Low-level IBM Wheelwriter interface

This project is to build a low-level interface for an IBM Wheelwriter typewriter. This builds on work by tofergregg, RussellSenior, and jim11662418 who figured out the internal serial communication bus and the protocol it uses.

This project was built and tested on an IBM Wheelwriter 3. Likely this will work on at least Series I Wheelwriters (3/5/6), and possibly later models as well.

Architecture

This project consists of:

  1. Hardware interface module - this attaches to the back of the Wheelwriter as the OEM printer option did, and connect to the 10-pin option connector located behind the 70 mm-wide hinged panel on the top rear of the typewriter. The core electronics are an Arduino Nano RP2040 Connect and a custom shield to interface with the Wheelwriter's option connector.

  2. Arduino Wheelwriter driver - this communicates with the Wheelwriter over the serial bus and provide low-level control of the typewriter, including platen and carriage positioning and typehead imprinting.

  3. REST service - the built-in WiFi connectivity on the Nano supports a REST server which allows a modern computer, smartphone, or tablet to control the typewriter via the interface module.

  4. Client software - this software will demonstrate the use of the REST API

Related work

IBM-Wheelwriter-Hack by Chris Gregg/tofergregg is what initially inspired me to look into Wheelwriters. His videos on YouTube showed his work on reverse engineering the Wheelwriter's bus with a logic analyzer in about 2017. His implementation bit-bangs a TX line to drive a N-channel MOSFET.

Be sure to check out his Smith Corona typewriter to printer conversion!

Ryan Jarvis/Cabalist provided a complete printwheel mapping for US language printwheels.

Russell Senior made the connection that this is an Intel 8051 9-bit serial bus in mode 2 and provided a great wiki page describing a great deal of the command set.

jim11662418 created implementations for the 8051 compatible Dallas Semi DS89C440 and STC Micro STC15W4K32S4 that are very nice.

MicroCoreLabs created an Lattice FPGA implementation and an Arduino Leonardo implementation. Both implement a serial port that translates an ASCII character stream to motor controller commands. The Arduino implementation directly uses the ATmega32u4's UART an interestingly toggles the transmitter off when not sending. Here's a YouTube video of the FPGA version running.

CadetWriter is an effort by Dave Babcock and Stephen Casner to interface to a Wheelwriter 1000 by instead sitting between the keyboard and the logic controller. This work was developed to build a general-purpose ASCII terminal.

About

Low-level IBM Wheelwriter interface

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published