Friday, September 24, 2010

Controlling A Dot Matrix Printer Directly with Arduino

Lyndon Gray's 'The Burrow' calls for a dot matrix printer. However, my BAS120 printer module is broken. So I had to program an Arduino board to speak to the printer directly. Luckily, the protocol is very straightforward. I spliced the Centronics printer cable and soldered a header so I could easily breadboard the connections.

The Centronics connector is a 36-pin connection. Pin 1 is the 'strobe' signal (active low). Pins 2 to 9 are the data bits. Pin 11 is the 'busy' signal. Pin 33 is ground. The 'busy' signal is polled by the Arduino to see whether or not the printer is currently printing. If the printer is not printing, data can be set on the eight data pins. The strobe is then momentarily held low to send the data to the printer.

I then made a Max/MSP patch that takes data and sends it to the printer via a serial USB connection.




2 comments:

šumařˇˇˇ said...

Hi! its amazing what youre doing. Will you please publish more about the dot matrix sequncer stuff? Especially - how to connect/sync printer to ableton live? Do you use pure data? thx

Anonymous said...

This post gives me hope that I might be able to accomplish a similar goal! Thank you for sharing.

Could you clarify what kind of data you sent via the 8 data pins from your arduino? Thank you again.