EP44 and an FTDI USB to serial convertor to print from Windows 10

Finally  got a CHIPI-X10 instead of some cheap knock-off of something else. Works on the Sipix printer. Now, can I get it to print to the Brother EP44 — which, when  I tried the cheap knock-off, actually started behaving funny.

Note: Once I figured out how to print to the EP44 using the FTDI, I tried the same config using a cheapo cable (CH340 chip), and was able to get that to work. Minimising the receive/transmit buffer size seemed to work again. The cheapo cable had baud settings as low as 75, which is in its favour. So the message seems to be that the cheap cable can work, at least on Windows, but you have to get the settings right and you have to go beyond the documentarian when working on obscure old hardware. Experimenting is tricky — I worry about ruining equipment. And the cheap cable does seem flakier — printer does some funny behaviour…

First, I’ll try using the hardware serial port on another machine, to check the printer and the printing method, then I can try the dongle.

OK, hardware port on Linux and it prints.

Now, plug CHIPI into Windows 10 machine, then null modem cable into CHIPI then DE9 to DB25 adapter into null modem then that into the EP44.

Set EP44 to 300 baud, 7 bit, even parity.

Try to add it using Windows Printer dialog.

Using Device Manager, our FTDI unit has provided us with COM2.

We can set baud (say 300 — the smallest the FTDI will cope with), data length and so on to match the printer, and set Xon/Xoff to on, as the EP44 documentation suggests; but the data outstrips the printer and it does not print the whole document. It’s like the Xon/Xoff stuff is not working. Cannot go down to 75 or 110 baud — the printer supports these, but they are too old and slow for a modern serial port to support.

Eventually fixed that too. Here is my batch file to set the port to handshake properly — can then print from the CMD.EXE command line (probably PowerShell, but I would not know) by typing or copying the file to the port:

REM This seems to set the FTDI COM2 port to 
REM print with effective handshaking.
REM May need to make sure files have EOL that meshes
REM with what the printer expects.
REM unix2dos or dos2unix can help here.
REM If printer is expecting CR+LF, need DOS line endings.
REM Once the port is set up, and the printer to match, simply:

REM type filename.txt > com2:

mode com2: baud=300 parity=e data=7 stop=1 to=on xon=on odsr=off octs=off dtr=hs rts=hs idsr=off

I found that the transit got ahead of the printer and documents would be incomplete. if I wanted to print the whole Windows printer test page, I could only do that if I used these settings, then went to Device Manager to reduce USB transfer sizes to the minimum (64 bytes). So here is the Windows printer test page. Seems funny how many drivers it needs:

And I can also print (text) from Windows applications, like Notepad, suggesting that the EP44 is perfectly usable with Windows 10 in 2021! Not bad for a serial thermal portable typewriter/printer from 1984 or 1985!

The saga does not always continue

Printing to the EP44 — doing it properly

I rigged up a dodgy way to print to the Brother EP44 using a simple three-wire cable. The problem with that is the printer cannot keep up with the serial port and the text starts to go funny.

Later, trying to play with it as a terminal device, I made a null modem cable and plugged a DE9 to DB25 adapter on it because the EP44 has a DB25 plug. I tried using that as a print cable, and because it has the full complement of wires for flow control, if I set the printer spooler to use XON/XOFF (software) flow control, I can print using lp without using a script that sends one line at a time — the printer can use the extra wires to signal to the computer to wait (buffer full).

screenshot showing the menu giving flow control options -- xon/xoff is software control
Using the CUPS interface at http://localhost:631 to set the options on the Brother EP-44 printer

The end result is that printing to the machine is very simple — if the full null modem cable is used. The 24-pin typeface is quite nice and very readable, and the only disadvantage really is the thin thermal paper (fax roll) that I have to use.

Printing from GUI applications does not work unless (like, say, nedit) they call lp to send the job. Using the CUPS browser interface to set up the printer works, but I have to use lp to send the job. Maybe I can figure it out, but it’s not really important.

The EP44 is a very portable printer. Works for ages off its batteries, or can even be run from the 5V output from a USB powerpack, if you don’t mind butchering a USB cable, as shown on YouTube.

It’s just a curiosity, but an impressive little one.

Here is setting it up using a hardware serial port, /dev/ttyS0.

  • Printer set to 1200 baud, 8 bit, no parity.
  • Open CUPS web interface
  • Add Printer
  • Serial Port #1
  • Set as in picture above
  • name it ep44
  • Make: Generic
  • Model: Generic Text-Only Printer (en)

Can set some defaults (TAB size, whether continuous or roll of paper, and so on). Don’t bother printing from the GUI, but open a command line, and…

$ lpstat -a
ep44 accepting requests since Mon 22 Feb 2021 17:22:12 AEDT
$ lp -d ep44 some-text-file.txt

Works a treat. Remember to set the printer so that line endings ar CR/LF, to absorb the unneeded line feed. Set it to typewriter codes to do underline and super/subscript using ESC codes. Otherwise, 7 or 8 bit. Need tor read the manual! (Can find it online with a web search.)

The future is 1984!