Title: Return to the Matrix
Date: 20190425
Tags: computers
========================================

The 'dot matrix', that is.

For a long while, I've had a multi-function HP printer that I got free or for
$100 with a laptop or something.  It's pretty typical as modern ink jet printers
go.  Crappy proprietary utilities, binary drivers that mostly only support
Windows (and Mac in this case) and no care given towards *nix support.

It's fine as a cheap option.  But it's been getting on my nerves the last few
years as every time I go to use it, the ink will have dried up.  It's been
costing me at least $100 a year to keep it fed.  Sometimes more.  It's usually
just so I can print a couple pages.  It's main use is to print my tax forms so
once again, I recently had to buy ink for it.  Another $100+ dollars and when I
got home and opened the boxes, I only then realized I bought the wrong color
cartridge.  Of course HP makes the cartridge boxes all identical except for the
number.  I had an off by one error :(

That was the last time.  No more money for HP.  I started looking for a printer
that I could rely on.  Three things came together in my head.  Commercial/
industrial environments, old school tech, and retro computing.  What's wrong
with a dot matrix printer?  Why don't we have those anymore?  A recent post in
the Altair community was about someone looking for an Altair 8800  compatible
printer and mentioning Oki Data (or just Oki).  I knew of Oki as being a
supported printer back in the Altair 8800, through C64 days.  After that
everything seemed to move to bubble/ink jet and beyond.  I looked and found Oki
still selling dot matrix printers.  They market them to industry which is
appealing to me because industrial buyers care about how equipment actually
works, unlike products for the consumer market where they only care about how
long the list of "features" is, how big a number some irrelevant metric has, how
cheap it is, or maybe the artwork on the box.  The Oki website for their dot
matrix printers lists things like life expectancy in Mean Time Before Failure,
and functionality using real numbers and measurements and units of actual time.
The printer doesn't just come with a 1..2..3.. quick start guide and a
registration card to harvest your information to sell to advertisers, but
includes a 180 page reference document for the supported control command sets
and even snippets of BASIC code to show how to program the printer yourself.  No
drivers needed, you can write your own.

One of the big things I wanted was support from OpenBSD.  There's some gotchas
there, mostly because I know squat about printing for *nix and don't want to
have to use CUPS.  You can, however, simply copy or cat a file to the device and
the printer has it's own fonts and can print away without any configuration at
all.  Doesn't get any easier than that.  You can cat standard-in to the device
and use it like a typewriter.  Basic usage like that works easily with lpd.  For
more advanced usage, there are tools to translate files to PostScript then to a
supported command set with a PPD and foomatic-rip.  I haven't gotten it to a
point of smooth functionality for any arbitrary file, yet.  There is also
support in Ghostscript.  I'm not sure, yet, which is the better option or if it
matters.  Or if I should just break down and install CUPS to integrate
everything.

Sure it has some caveats:  It's only black and white.  While you can get a
single sheet paper feeder, without it, you need pin feed paper (aka continuous
feed), or to hand feed sheets in one at a time.  It's slower than ink jet at
high quality and way slower than laser.  But it does what it does damn well, the
sound is nostalgic, and replacement ink ribbons are just $12.