4

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?

  • 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 at 8:37
  • 1
    @Spektre Back in the days, a standalone MCU without a MAX could do the job. ;) – tofro Jan 24 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 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 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 at 8:28
5

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

  • 1
    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 at 11:55
  • 3
    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! – Bruce Abbott Jan 23 at 23:02
  • 1
    This design should be the accepted answer. It does conversion between serial and parallel in one chip that does not need to be programmed, like the OP was looking for. The diagram looks pretty intimidating, but all the other blocks are just breadcrumbs, for level shifting, clock, interrupt logic, that kind of stuff. – Roland Jan 24 at 9:23
  • @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 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 at 8:43
6

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
    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 at 7:12

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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