6

Both for fun and for artistic projects I'm trying to connect an old dot matrix printer, the Panasonic KX-P1170, to a certain old computer. In such old computer, which is the only one I have with a serial port, I installed a Linux operating system, which works quite fine.

I'm trying now to make that printer work.

I used CUPS to try to manage it, up to now. CUPS recognizes that there is a printer connected to the serial port, and it lets me install it. The issue is that apparently there isn't any available driver.

I had a little success while using the Epson 9-dot driver (that printer is apparently compatible with an Epson FX-86e/FX-800 driver): trying to print a text document the printer first printed some wrong symbol and then stopped printing totally.

After that I went looking for a .ppd file which could work with my printer. Turns out that there is an OMNI driver for Panasonic KX-P1150. A close model I guess, but still it's not working at all. I see that there is also a driver for KX-P1180i, again a clase model I suppose, but that doesn't work as well.

So now I'm not sure how to proceed. Is there a way to write my own driver for this printer, starting from the KX-P1150 one? How would you proceed?

  • 1
    Serial printers don't do all the fancy stuff raster printers have to do. I have never hooked one up to Linux, but the first thing I would try is to just copy a very short (less than 512 characters to start with) straight ASCII file directly to the device file for the printer. I would not allow any characters greater than 127 decimal for the first few tests as their interpretation is less standard. If you're lucky, flow control will be handled in hardware and you won't have to do anything. That's you start with a very short file. – Joe Sep 9 '17 at 8:03
  • 1
    If that works, all your "driver" has to do is just pass the characters through. Of course, if you try to send it something like UTF-8 or another multibyte character set, bad things will happen, so you would have to avoid doing that or make your driver significantly smarter. If flow control is an issue (buffer overflows with lost content), then your driver would have to do things like look at the RS-232 line states like DTR and RTS, ... to wait for the printer to be ready for more output. I don't know how to access them, but it's probably not rocket science. – Joe Sep 9 '17 at 8:13
  • 1
    I searched for rs-232 Linux and found lots including en.wikibooks.org/wiki/Serial_Programming/Serial_Linux blog.mypapit.net/2008/05/… teuniz.net/RS-232 No idea about how to tell CUPS about any of that. But you have to get it to work at all first anyway. – Joe Sep 9 '17 at 8:29
  • 1
    Your printer will undoubtedly not be happy with Linux newline characters by themselves. See kb.iu.edu/d/acux for some easy ways to change newlines (ASCII 0x0A) to the carriage return/linefeeds it will need (0x0D0A). Eventually, you'd probably want your driver to do this automatically for you. – Joe Sep 9 '17 at 8:49
5

KX-P1170, to a certain old computer. In such old computer, which is the only one I have with a serial port, I installed a Linux ope...

I know this is an old thread, but what the heck... maybe it will be useful to someone who stumbles in.

Are you sure that the KX-P1170 is a serial port printer? If the connector on the back is a 36 pin connector with spring clips to hold it on, it's Centronics, which is a parallel port.

Serial (RS-232) is +/-12V signalling one bit at a time, parallel 0/+5V signalling eight bits at a time.

Those Panasonics (also sold as a Raven) were really good printers, and there probably was an optional serial port available for them, but they're definitely natively parallel printers.

If does have the optional serial port and you want to use that (longer cable runs), serial is more difficult to set up - breakout boxes, baud rates, stop bits, parity - and won't give you as many features. Test using the native parallel port first.

Use the 36 pin Centronics cable to connect to the DB25 connector on the back of the PC. Make sure parallel port (LPT) is enabled in BIOS, set for auto. ECP and EPP might be helpful but try with auto first.

An old dot matrix (or its cousin, the daisy wheel) printer is amazing for log files, one-at-a-time label printing, and annoying the heck out of your cat, so good luck and enjoy.

***** EDITED; Added the following:

By the way guys: you DON'T need a driver to get an old dot matrix printer to work. Don't complicate it yet.

$ cat testfile.txt > /dev/lp0

(Might have to be root). It should spit out simple text. The printer should be able to work to tail log files and other stuff by writing directly to /dev/lp0.

Tailing a log file is a great use for dot matrix and daisy wheel printers, because they'll write each character or line instantly - great if your system is crashing, or you want log files that cannot be externally hacked!

Once that's working, then look at drivers in CUPS. Raw should work, but most dot matrix printers had some graphics capabilities. Try models similar to yours, know that Panasonics were also sold as Ravens (this will help you find ribbons too!).

If you don't see your printer listed, almost all consumer/office dot matrix machines of the 1980s and 1990s were "Epson compatible" (like the way laser printers advertised "HP compatible"), so you'll probably get some simple graphics and text features by setting your software to use the Epson MX-80 (and possibly FX-80) drivers.

Find the manual for the Panasonic online. It has a parallel port which you also might have damaged connecting to the serial port on the computer.

  • >> KX-P1170, to a certain old computer. In such old computer, which is the only one I have with a serial port, I installed a Linux ope... – Lawrence Wade Mar 11 '18 at 13:22
  • thanks for your reply; I'll be sure to try your solution in a few days, and will let you know if I solve something ;) – il mietitore Mar 14 '18 at 17:31
  • @ilmietitore: So, any update? – Psychonaut Oct 1 '18 at 13:38
1

You do have a windows driver for your printer, right? It seems that some people succeeded in converting the windows drivers into .ppd files. Here is an advice from Novell

How to create CUPS Postscript Drivers

It is a pretty old article, but it would be interesting if you can manage something like this. Also there is a utility called NdisWrapper for Debian, which allows to use Windows printer drivers.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.