A couple of months ago, I had a request from a friend to produce a paper tape as an RSVP to a wedding invitation that he’d received on floppy disk. I dug out my old Facit 4070 in my collection and set to seeing if I could interface it with something modern. This blog post chronicles the results.
Connection from Facit 4070 to Arduino Mega for code:
Facit 4070 D -> Arduino Mega Pin
1 -> A8
2 -> A9
3 -> A10
4 -> A11
5 -> A12
6 -> A13
7 -> A14
8 -> A15
9 -> D9
10 -> D10
11 -> D11
12 -> D12
25 -> GND
I didn’t actually use pin 12 (Punch Ready) in the end, as it was proving unreliable, so I just used timings – a quick and dirty solution was all that was needed, and eventually it proved robust enough with delays in sending the data.
The code was written to take commands from a menu system to set up the arduino and then punch data. The menu is as below:
Facit 4070 printer arduino interface ==================================== ? - show this information a - punch message in ascii b - punch message in EIA code c - clear message d - display message e - punch message in ebcdic (no parity) f - advance tape 10 spaces and punch feed holes h - punch message human readable m - enter message o - toggle odd or even parity p - turn on/off parity s - advance tape 10 spaces v - show version information
To use it, you send an ‘m’ followed by your message. You then can select if you want parity or not, and odd or even parity if you’re using ascii. Following that, you can send an ‘a’, ‘b’, ‘e’ or ‘h’ depending on what character encoding you want to use.