1 hour ago, Scott Robison said:
I've not been thinking about this as long as you have, but it seems to me (now that I'm doing the math for the first time) that 50 KB/sec is 400000 bps, which means one bit every 20 clock cycles. I'm assuming this isn't interrupt driven. One bit per 20 cycles seems doable if all you want to do is read bits, but assuming you want to do something useful with the bits, that just seems (again, based on intuition and not necessarily logic) that is just not achievable.
Also, what you’re describing is exactly the reason I thought to build an external UART in the first place.
The reason I chose to do this with a microcontroller is that anyone can build this with just DuPont wires and an Arduino or Raspberry Pi. But I may yet end up switching to a solution using a hardware bit shifter. That will require PCB or breadboard work, though, which defeats the purpose of this design.