$ lsusb # not much shownBus 005 Device 005: ID 2341:0001 $ find /sys/devices/pci0000\:00/ -name '*tty*'/sys/devices/pci0000:00/0000:00:1d.3/usb5/5-2/5-2:1.0/tty/sys/devices/pci0000:00/0000:00:1d.3/usb5/5-2/5-2:1.0/tty/ttyACM0$ for ix in $(find /sys/devices/pci0000:00/0000:00:1d.3/usb5/5-2 -type f); do echo "$(basename $ix):" ; cat $ix ; done...idVendor:2341idProduct:0001...manufacturer:Arduino (www.arduino.cc)product:Arduino Unoserial:649383233313513181C0...uevent:MAJOR=166MINOR=0DEVNAME=ttyACM0$ stty 2000000 inpck -ixon -icanon -hupcl -isig -iexten -echok -echoctl -echoke min 0 -crtscts </dev/ttyACM0$ ./writeread_bonus /dev/ttyACM0 2000000 ./ttester 3>myout.txt stdalt opened; Alternative file descriptor: 3Opening port /dev/ttyACM0;Got speed 2000000 (4107/0x100b);Got file/string './ttester'; opened as file (102400).write_thread_function spawned EAG: 0, WR: 1, WF: 0, read: 102400, FRD: 59, TOU: 14080, OBS: 18944, RB/s: 14622.06, WB/s: 13019.38 +++DONE+++Wrote: 102400 bytes; Read: 102400 bytes; Total: 204800 bytes. Start: 1286748859 s -251915 us; End: 1286748861 s 708822 us; Delta: 2 s 960737 us. 2000000 baud for 8N1 is 200000 Bps (bytes/sec).Measured: write 34585.98 Bps (17.29%), read 34585.98 Bps (17.29%), total 69171.97 Bps.
Well, to start with the 8U2 is a 16MHz AVR, so its UART probably completely tops out at 2Mbps (and perhaps at the 1Mbps max of a non-U2X configuration.) And then all of the arguments that people have made about how few cycles a 16Mhz AVR will have to run 2Mbps async will apply twice. Or maybe 4 times.
There are lots of hits on "LUFA AVR Throughput." Have fun