Parallel IO with fast data transfer to PC?

I would like to build a USB interface for a 1980s vintage SSTV scan converter (Robot 1200C). You don’t need to understand what that last bit means :wink: The device in question has two IO ports; an 8-bit INPUT port with two handshaking lines (BUSY and STROBE) and a separate 8-bit OUTPUT port, also with BUSY and STROBE handshaking lines. My present system uses a parallel port interface which has tri-state buffers to multiplex the PCs single bi-directional port into the separate input and output ports which the device uses. It works fine but parallel ports are becoming scarce now and I would love to get some kind of USB interface working.

So, I was thinking of a Mega Arduino, with one 8-bit output port, one 8-bit input port (both with two handshaking lines) and one USB or serial connection to a PC, which would run VB.NET software to handle the data transfer. The Robot 1200C can transfer 196KB of data in around 8 seconds, so if my math is correct, the common serial port speed of 115200 bps would not be fast enough. It would need to run around twice that speed to get close.

So the main question is, can an Arduino exchange data (both directions are required at the same speed, but not at the same time) with a PC at a sustained rate of at least 230400 bps?

Thanks for your help.


imho yes, but it depends.

I have run sketches for a few weeks that reported at 230400 and even 345600 (using putty at the PC to log the data).
==> Arduino Forum

230400 is the baudrate, can you tell how many bits need to be transferred per second. 10, 100, 1000?

I need to transfer 196KB (that's KILOBYTES, not bits) in around 8 seconds. I guessed that dividing the bits-per-second by 10 would give something near the byte-rate. I will check out your link - many thanks.

According to the datasheet, at 16MHz 250000baud has a very low error (supposedly 0%)–it’s probably the most reliable high-speed rate you can have.

For the implementation of this device, you should note that the Arduino (Mega) pin layout does NOT match the 8-bit registers that are used to read each pin, so for maximum speed you might want to look into the “direct port manipulation” commands and wire the system that way.

The 250000 baud sounds interesting. Anyone know if a modern PC will support this speed - particularly via a serial-to-USB adapter?

The common FTDI USB to serial chips are quite happy until a few megabaud, and I’ve used mine reliable at 250kbaud for some time now.

Even USB 1 in low bandwidth mode supports about 1.5 Mbits/sec. I think you're pretty safe at those speeds with any decent modern PC.