Were I in your shoes I would replace the Adafruit FT232H Breakout with a Teensy. They are both presented to the host computer as a serial device. Using a Teensy (or something similar) would allow you to move some / most / all of reading the tape closer to the hardware that is actually reading the tape. This would allow you to much more easily manage motor speed, perform buffering, whatever else you may need to do to reliably read the tape.
With the FT232H Breakout all of the code would reside in the host computer. Anything that is time critical (e.g. checking the “sync hole” sensor before the “sync hole” has moved past the sensor) is trivial with a device like a Teensy but can become challenging from a host computer through a USB / serial port.
So, for your three bullets…
If the buffer needs to be bigger, buy a bigger Teensy.
The breakout (boards that use a serial converter) has a maximum baud rate; probably about 2 Mbps. The Teensy communicates with the host at 12 Mbps. The higher rate makes it easier to manage buffering.
Buffering will make the system more efficient. But, given the speed at which a strip of paper can be reliably moved, I suspect buffering will not make much difference.
Flow control is important. Were I in your shoes I would…
-
Data is read from the tape into a circular buffer. When the buffer is full, reading stops.
-
Data is read from the circular buffer to the host computer. When the buffer is not full, reading resumes.
With one wrinkle…
- Include a mechanism for passing error codes in the same stream as data.
At 12 Mbps I doubt the paper tape can be moved at anything close to that speed.