Can an Arduino be used to read data from a serial port? People often use Arduinos to send data over serial to other peripherals (flashing firmware onto modules, etc) by pulling RES to ground,  connecting the TX and RX pins to the device being programmed, and then sending data to the Arduino over serial. As an alternative, one could also remove the ATmega instead of grounding RES.  

That being said, there should be no reason why one could not receive data from a connected device in the same way. However, no matter what I try, I never succeed in using an Arduino to relay serial input from another device over USB.  

I have even tried setting up a simple echo to no avail (even though the TX and RX LEDs flash):

Is it even possible?
Yes, it can, and the wiring diagram you have drawn works perfectly for me using minicom in Ubuntu.

The majority of serial communication is bi-directional anyway - especially when using it to program a device.

There is absolutely no difference between interfacing the built-in USB->UART adaptor to an external device of your choice and interfacing it with the ATMega328P chip. Just because the ATMega328P chip is on the same board doesn't make it in any way special - it is just a UART interfaced device.

If your setup is not working you can try:


Physically remove the ATMega328P chip to see if that is interfering even when held in reset
Check for software that may be interfering with your communication, such as the notorious ModemManager.