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.
54 thoughts on “Python Resurrects Dot Matrix Printing”
And this is a good thing?
Does not need to be good or back, as long it is a hack (hack-a-day, remember?)
It’s preserving human heritage. Some day Palo Alto will be a UNESCO site and people won’t know what a dot matrix printer is so they’ll call it a ceremonial artifact.
If you want a great reference, go find “Motel Of Mysteries” by David Macaulay…. my favorite from that was the ‘ceremonial point’
“That will teach him to buy stuff in the parking lot of a fast food joint.”
I bought my last car in the parking lot of a fast food joint! What could possibly go wrong :o
TBH I try to line up craigslist deals in fast food parking lots, there’s usually people, cameras and wifi while u wait.
All of the police departments in my area encourage people to do trades in their parking lots. They’re well-lit and monitored.
The most important rule of staying safe when buying things at fast food joints….
Just don’t buy the food!
” It is getting harder to find home laser printers”
*looks to right* Uh, huh. Sure.
LOL. Yeah. I have a new one (bought this year) upstairs and another old one downstairs (10+ years old). Getting too old to run upstairs every time I need to print something :P
Inkjets are a ripoff IMO. Razor blade marketing model.
I love mine. Amazing that one with a scanner can be had for $100 or so (if I’m remembering correctly). Toner cartridges aren’t cheap, but way less per page than an inkjet it seems.
I would not consider them a ripoff if they didn’t clog up after some time of non-use. But they do, and then you have to buy new cartridges, even if the old ones are not empty yet. Of course, that’s only for HP printers. So that makes HP a ripoff.
Epson printers are better in that sense. However, IF the head clogs up, what are you going to do? Replace the printer? Well, you can actually buy cleaning sets on EBay, and clean them. But it’s really messy, and Epson does not make it easy to reach the places you need to reach for cleaning the head. And in that sense, again, Epson is a ripoff as well.
Epson would have the best printer ever, if they would take the head cleaning into account. Making it possible to clean the ink channels with cleaning fluid without making a mess, and taking only a few minutes of work. Or better yet: automate it. Why are there no ‘ink’ cartridges with cleaning fluid, and a way of collecting the used cleaning fluid without making a mess?
Hmm. Epson would be making the best inkjet printer ever, if they would implement my idea. Remember that you read it here first. :) Epson: if you do take my idea, at least give me kudo’s for it, please.
>Hmm. Epson would be making the best inkjet printer ever, if they would implement my idea. Remember that you read it here first. :) Epson: if you do take my idea, at least give me kudo’s for it, please.
Ya but then they would have to charge you $100,000 for the printer to make up in lost ink sales
Heads are removable on an Epson. Pop-out and run through a cleaner.
A search on Newegg return literally hundreds of examples of under $200 laser printers.
Try finding them in local retail. I also only have laser printers. But either way, not really the point of the article so….
inkjet printers are not occasional use printers, you need to use the damn things a few times a week!
laser printers can sit for weeks or months between prints, they don’t dry out!
For me this is the fricking golden age of laser printers!
For less than 300 bucks you get an OKI 4c 1200dpi laser with duplex and a MPfeeder that takes 320g cardboard up to 1.3m length. That would have set you back about 20 grand back in the 90s…
Geez. The presentation felt as if it was a revelation to him that printers use commands codes to print graphics. Since I grew up routinely putting code in my programs to send escape sequences to control printers and serial terminals, I now feel old. Also, is it really that remarkable that the printer had built-in fonts and would print ASCII text directly? I believe most printers today (inkjet, laser, or otherwise) still do that.
Neat to see people using “old” technology but I used to play with old dot matrix printers when I was a kid & remember being able to simply output text to the parallel port to control it.
I’m guessing “Commodore’s wacky ASCII-like standard” is PETSCII
Whereas the rest of the world used Epson control codes, except (typically) for the monstrous Walters(?) one my dad bought. So no graphics for us :(
OI! Don’t give the printer manufacturers ideas! I love my laser and detest inkjet printers. To me, laser and LED is the future. I had to rummage around eBay for a Centronics compatible dot matrix recently to print from my homebrew computer. It’s simpler than a USB one to interface and the manual that came with it was far better than you get nowadays!
I ditched my HP laserjets (I have a few) as well as a Canon colour laser for a reliable and cheap-to-run inkjet. What mythical thing is that you ask?
Just an Epson WF-2510 low-cost inkjet, a real cheapie,and a few years old now. We run it all the time. It prints work documents, entire manuals from bitsavers,and every fortnight we run off 50-odd copies of 4-page craft club newsletters (with lots of colour photos), it does photocopies and scans.
The secret is to fit a Continuous Ink System to the printer. This is a four-ink reservoir with a flat set of tubes to the CIS cartridge. It has a button on it to fool the printer into thinking it is an OEM cartiidge.
Honestly – it’s the best thing we’ve ever used, and it get used all the time. It almost never even does a head clean, last time was a couple of months ago.
My tip is, when buying an inkjet, do _not_ buy one _unless_ you can fit a CIS to it. Simply search eBay for your desired printer model and ‘continuous ink system’ before you spend any money. Never buy cartridges again, just top up from the cheap bulk ink bottles every once in a while. Order two of black.
Your continuous run system is cool but I think the real secret is that you run it all the time. How many do that with their inkjets? Most people printing things for professional reasons would have a laser printer. Most of us non-professionals don’t print very often.
Left to sit inkjet print heads gum up and stop working. Leave your inkjet unused for several months then go try to print something and you will probably see why I harbor an unhealthy hatred of inkjets!
try a couple of weeks, depending on climate!
on the upside my HP is great with glossy photo paper
Old printers are easy, most LPT dot matrix, laser, and some early inkjets will literally take raw ASCII over the LPT port and spit it out on the paper. Literally typing ECHO HELLO WORLD > LPT1: at the DOS prompt will print HELLO WORLD on the paper. If you are lucky enough to have one of these types of printers then the Print Screen key on your keyboard will literally do what it says. You hit that key in DOS and it will dump all the ASCII text on the screen out the LPT port and presto a printed screen.
Adding on to this, the old printers were literally computers themselves, they had a CPU, RAM and ROM that could process the raw ASCII and print it out. Newer printers these days have little to no actual processing control in them, relying on the host PC to process what is to be printed into the bitstream that the print head is expecting and control for when to advance the page. The only type of modern printers that still have some of this local processing would be multi function machines that can scan and print a copy without a host PC attached. Since these types of machines would need to be able to process the scanned image and then print it out all on its own.
If you really want to get into printers that had a hefty amount of local processing power, look for some old PostScript compatible printers, They usually have built in fonts and some have memory slots for expansion fonts. You can send raw ASCII to them with formatting information, think somewhat like HTML, specifying what font, what size and where on the page it is to be printed. The printer then renders the entire printed page on its internal CPU and then prints out the page.
Yeah, I used to have a postscript dot matrix. Man, was that slow…
Yeah, they used to have Windows Printers, they were regular printers with lobotomies. Prints had to be pre-processed on the computer, which was really stupid when your CPU was a 486 or Pentium 200.
In the early days of Macintosh, the computer had an 8 Mhz 68000 CPU and 0.5 MB of RAM (a Fat Mac). The first laser printer for it, the original Laserwriter, had a 12 Mhz 68000 CPU and 1.5 MB of RAM.
Yah, but the article addressed that. This thing didn’t speak ASCII!
Don’t get me wrong. Had it been me I would have just placed a micro between the computer or whatever data source and the printer’s LPT port and set it to translate ASCII or UTF-X into the printer’s native character set and called it done. What he did though while much harder also gave him total control so he can do his own fonts and even graphics.
Dot Matrix printers still have a place.
I’m sorry but at least for people like me who only occasionally print something inkjets just plain suck. If you let them sit without using them they gum up or maybe just the chip inside the cartridge decides it’s time to force you to buy more. Either way it seems like every time I try to use one I have to buy new ink cartridges and/or print heads even though I get nowhere near using up the actual ink.
Also, inkjet ink is an overpriced scam!
And it bleeds if the paper gets moist at all, even just by trying to take it outside on a humid day.
Then there are laser printers. A good laser printer is awesome! But… expensive.
Now dot matrix printers are slow, noisy, not that great of quality and usually black and white. But… they can be had cheap, as can ink ribbons. They do print perfectly readable text and they usually don’t mind sitting for months and yet come to life and print just fine on the very first try without a trip to bleed one’s wallet dry at the local office supply store.
I would definitely recommend a dot matrix to someone who only needs to print text for personal use and is on a budget. For all others it’s got to be laser. Inkjet printers could go burn in hell if there was one along with their manufacturers who have turned them into the worthless scam that they all are.
And dot matrix makes cooler looking ASCII art!
dot matrix printers are expensive, as much as they were back in the 80’s!
I’m pretty sure only C.Itoh are the only ones still making them
as an aside thermal printers never went “out of vogue”
Why would you buy something like that new?
It’s not like you have a choice with triplicate forms
I am not familiar with triplicate forms but that sounds like the kind of thing that might indicate you are personally in a position where the second half of this statement is aimed at you.
“I would definitely recommend a dot matrix to someone who only needs to print text for personal use and is on a budget. For all others it’s got to be laser.”
Do you fill out these “triplicate forms” for things that are for “personal use”?
40 years on and I am still digging mailing list labels out of friggen printers!!
Another hint that you are not talking about “personal use”. Unless you have on hell of a christmas card list!
Actually though, I have known of low budget departments of universities that did a lot of things outside the formal acquisitions process (it was the only way to survive) and used dot matrix printers for some tasks well into the naughts. I don’t know that they ever stopped, I just moved away.
I’m a tech whore, I do what I’m paid for!
(that includes assembler,weird hardware that no one else remembers, like recovering data from MFM harddrives…)
MFM hard drives. Awesome! Good memories! I still want to attempt to force an MFM and a Parallel IDE drive to work on the same computer at the same time just to finally win that battle!
I have an old Tandy 1000 with a flaky MFM that works sometimes, doesn’t others. I want to replace it with a CF card hanging off of an IDE adapter. I tried to burn XTIDE to an EEPROM and run that from the network card to make it work but no luck. One day I will dig this project out and complete it.
Then I will probably list it on craigslist or ebay because while the nostalgia feels good I do NOT want a permanent retro-computing hobby! Keeping up with the more current stuff consumes enough time, money and space!
Now that is a name I hadn’t seen in years!
I have a bad feeling about this…
Huh. I thought OkiData would be the last dot matrix standing. Did they stop producing them already?
Not that I would recommend purchasing an OkiData. Don’t get me wrong, those things are bullet proof! But part of the reason to purchase a Dot Matrix is BUDGET. At the price of a used Oki one might as well go laser!
I’ve had some great used Panasonic dotmatrix printers. One printed B&W images almost as nice as a low end ink jet (before it gums up). There was a multi-color kit available though I never managed to get that.
A Panasonic or maybe an Epson IF you can find an inexpensive Epson in good condition would be my first choices.
Epson still makes dot matrix printers. We just bought another one at work a few weeks ago to print address labels on continuous pin-fed labels. And what’s even better is they aren’t just continuing to make old models from years ago. They just recently released a new model, the Epson LQ-590 II. A dot matrix printer designed in 2018…
WTF kind of rock have you been living under? decent B/W laser printers can be had for new around the $100-150 price point. I bought a B/W Brother laser a decade ago and the thing is STILL on its starter cartridge and works just like the day it came out of the box.
As for inkjets, they still suck a** for people who might only print a couple prints a month because of the nozzles plugging up or chips in the cart expiring them while there is still plenty of ink left, but the issue with ink running if the page gets wet has been a solved issue for YEARS, well maybe unless you get the most bargain bin printer you can find or use really cheap inks to refill your carts. A lot of inkjet inks are pigment based rather than water based dyes these days and are pretty much permanent on the page once dried.
Not that there’s anything wrong with reimplementing pbmtoepson but …
This reminds me of my own project; a HAT for a Raspberry Pi which captures the printer data direct from a centronics port, and converts ESC/P2 (and PCL) to a PDF and then prints it to a modern printer connected via CUPs under Linux – http://www.retroprinter.com
I have been using dot matrix printer since a long time and i must say itsreally accessible and good to use.
I am trying to get an OKI Microline 280eco, 9 Pin Printer to work with a python script running on a programmable router. It has to be done this way specifically for many reasons. I can’t get it to work at all so any help would be great.
Please be kind and respectful to help make the comments section excellent. (Comment Policy)