8

Two very common connectors used in the eighties were the Centronics parallel port (particularly used for printers) and the RS-232 serial port (particularly used for mice and modems).

Suppose you have a computer with one kind of port and a peripheral with another (particularly, a computer that talks RS-232 and a printer that talks Centronics). Is/was it possible to buy or build a widget to translate between them? (A widget simpler than a full-blown computer, I mean.) It seems to me that the parallel to serial translation would need some kind of shift register. I'm not so sure about the voltage issue. As I understand it, Centronics uses 5V and RS-232 uses 12V. Is there a way to translate between those?

8
  • 1
    today a single standalone MCU + MAX232 voltage convertor can do the job, the problem is on the PC side. on MS-DOS many apps used direct IO access so it would never work without real USART or LPT. On windows you need to write a device driver ... that is not cheap but possible so yes it is possible but LPT access on Windows is a bad joke... However there are plenty of cheap USB converters which more or less mimics LPT and or RS232 ...
    – Spektre
    Jan 23, 2019 at 8:37
  • 1
    @Spektre Back in the days, a standalone MCU without a MAX could do the job. ;)
    – tofro
    Jan 24, 2019 at 23:29
  • 1
    @tofro all the MCUs back in the days I know of (48,51) did have only TTL output not the RS232 voltage ranges. Which one did have RS232 compliant ports?
    – Spektre
    Jan 25, 2019 at 8:15
  • 2
    @Spektre We're talking "input" here, not output. Some diodes, resistors, and capacitors can make any TTL-port capable of catching an RS-232 signal without being fried. That's how it's done here.
    – tofro
    Jan 25, 2019 at 8:17
  • 2
    Definitly there's a reason for the MAX - sometimes it's hard to come by negative voltages in a circuit. But if you use case is receiving RS-232 only, can be done way simpler. The circuit in my answer below is done that way.
    – tofro
    Jan 25, 2019 at 8:28

4 Answers 4

7

This can be done with a UART such as the 6402. Here's an example that converts serial to parallel:-

Schematics of a Printer Adaptor

enter image description here

Unlike more modern UARTs the 6402 does not have any internal registers that need to be 'programmed' to set it up, so it can be used standalone - and it has separate parallel read and write ports which are easier to use in a 'dumb' hardwired circuit.

I built a circuit similar to this in the early 1980's, but today I would probably use a small microcontroller board such as the Arduino Pro Mini (clones of which sell on eBay for ~$2 each).

Here's a project on HackaDay that used an Arduino Pro Micro:-

Serial to Parallel Printer Interface

8
  • 3
    I'd use an Arduino too. But is that not a 'full blown computer' ? It has a full blown CPU. OP probably wants an RS232 chip soldered to a Centronics chip :-)
    – Roland
    Jan 23, 2019 at 11:55
  • 4
    The Arduino Pro Mini is little more than a bare ATmega328 MCU. The AVR core is nice, but hardly what I would call a 'full-blown' CPU (Harvard architecture so you can't run code from RAM, only 2k internal RAM and no external bus interface etc.). I use Arduino clones because they are cheaper than buying the parts separately and making my own boards. But a 6402 has its attractions too - more 'retro' and real vintage chips are only ~$10 each on eBay! Jan 23, 2019 at 23:02
  • @Roland Arduino is not a CPU nor MCU, Arduino is just framework ... You most likely have some Atmell ATMega 168 or 8 or 16 as a MCU (look at the MCU markings). And such chip is a full blown computer with peripherials and memory integrated...
    – Spektre
    Jan 25, 2019 at 8:26
  • @BruceAbbott look at AT32UC3A3256 I think that is much more to your liking ... TQFP package (still solderable at home conditions), 64K+32K+32K = 128KByte SRAM, 92 MIPS, but yes it is still HARWARD as most of the MCUs ... this one has many things like USB 2.0 (even host), USART, and much much more ... using it for years. Lately some old evaluation boards have entered the market so you still do not need to solder ... but the microchip style manufactoring has slow rates for supplies so you need to wait ...its a shame what Micorchip did with Atmell ... but may be its just transition time
    – Spektre
    Jan 25, 2019 at 8:43
  • The Arduino Pro Mini contains a CPU within its microcontroller so it's clearly a 'full-blown CPU', to quote yourself. But the Arduino Pro Mini is not a 'full-blown computer', to quote the OP, who I think by 'computer' meant the consumer machine you'd buy in a shop i.e. a desktop, laptop or tablet. In 2020, I'd put the Arduino Pro Mini in the OP's 'widget' category.
    – TonyM
    Sep 28, 2020 at 13:40
7

Yes, there were such gadgets that converted serial to parallel.

The attached picture shows a Miracle Serial to parallel converter for the Sinclair QL, courtesy of 1984. The QL had no ex-factory Centronics printer interface, and solutions that blocked the expansion port for connecting a printer only were not really what customers wanted, so the Centronics Interface was a cash-cow for Miracle Systems for years.

Inside, there's a small PIC16C54 MCU (ex-General Instruments, now Microchip) that does the serial-to-parallel conversion and feeds off the signal lines so it doesn't need an extra power supply. The rest of the circuitry apart from the MCU is just a handful of passives to generate the 5V MCU supply from the +/- 12Volts off the serial interface. (Here is a picture that has a detail view of the innards of a slightly different version)

enter image description here

5

This is only barely Retrocomputing. Almost all the printers I use today (and most people I know) are connected USB or networked. But ports for PCs are still available and as noted below, the companies I dealt with years ago for converters still sell them. But there aren't so many printers these days with serial or parallel ports now that 100M (or even 1G) network ports for printers are dirt cheap, so we'll call it Retro.

There were (still are!) plenty of options:

Add a port to the printer

For example, Okidata Microline printers would typically come standard with a parallel port but you could add a serial port card (I probably still have one around here somewhere). In more recent years I think they even had a network card that used the same interface slot, though I never bothered with that myself.

Add a port to the computer

With PC-compatibles this is trivial, but with other machines not always so easy. Plus there are situations (e.g., 6 terminals plus 2 printers all connected serial to an 8-port statistical multiplexer over a modem connection back to the host) where this is just simply not an option. Plus end-to-end serial has big advantages over parallel - 200 feet without any problem at all.

Converter

These have been available for a long time from Patton (sells nationwide but one of my favorites because they are nearby), B & B and Black Box - all of which still list parallel/serial converters on their web sites.

Voltage is, I think, the least of the conversion issues. The big factor is handshaking. Over the years, I found that parallel handshaking was very reliable but serial...not so much. It seems that some manufacturers just never got serial handshaking to work well, and I sometimes had to resort to large buffers (typically a little box with a Z80 (or similar), 64k of RAM and ports for in & out) to work around the problem. But I think the basic converters typically did their job without a full CPU - just a bunch of glue chips/logic to read a byte in one form and send it out as another.

2
  • 2
    Serial port to printers where, as pointed out above, often an option. Soem printers where even only serial. As long as you had pin matrix printers, the fast (for that time) serial ports of 9600 and above had no problem at all to send characters quicker than the printer printed...
    – UncleBod
    Jan 23, 2019 at 7:12
  • 1
    @UncleBod: Pin-matrix printers could accept graphics data much faster than they could accept text. A 9600bps interface would be decently fast, but on printers which couldn't buffer a whole line of graphics, 19200bps would offer somewhat better performance.
    – supercat
    Sep 28, 2020 at 14:47
2

The innards of above device depicted by tofro are completely different.

No PIC inside but a 74HC164 8-bit serial-in, parallel-out shift register:

The Miracle Systems Centronics Printer Interface (Duel Port Version)

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .