Friday, August 10

Python Resurrects Dot Matrix Printing

These days a printer — especially one at home — is likely to spray ink out of nozzles. It is getting harder to find home laser printers, and earlier printer technologies such as dot matrix are almost gone from people’s homes even if you’ll still see a few printing multipart forms in some offices.

[Thomas Winningham] bought an old Commodore dot matrix printer in a fast food parking lot for $20. How hard could it be to get it working? How hard, indeed. Check out the video below to see the whole adventure. The principle behind the printer is simple enough. The head has one or two rows of pins each controlled by a solenoid. The head moves across the paper and your job — should you decide to accept it — is to make the pins push out at the right spot. An ink ribbon like a typewriter uses — oh yeah, more vanishing tech — leaves ink on the paper where it gets punched by the pin.

You don’t usually think about all this because the printer’s firmware takes care of everything. But a printer this old had a lot of issues including Commodore’s wacky ASCII-like standard. Despite all of this [Thomas] did a great job and was able to accomplish:

  • Dithering with GIMP, ImageMagick, and Pillow
  • Mapping printer pins to NumPy matrices
  • Python integration with CUPS using Tea4CUPS
  • Custom fonts using NumPy and the Read-Font library (ported to Python 3)

That will teach him to buy stuff in the parking lot of a fast food joint.

By the way, if you are patient, you only need one pin to print from a Commodore or any computer, for that matter. Like just about everything else that makes noise, someone will try to make music with dot matrix printers, too.

No comments:

Post a Comment