I recently found an interesting use of the many Arduino boards that I have. You can use your Arduino board as a bridge to connect serial devices to the computer, without even writing a sketch. How cool is that? 😉

Before I tell you how you can do it, let me explain about virtual COM ports and how Arduino uses them.

Virtual COM ports

The ATmega328 microcontroller used in the Arduino board supports UART TTL (5V) serial communication. You can connect the microcontroller to the serial port in your computer (with appropriate logic level converters) and can interface with it.

But these days, most computers don’t have a serial port. So the Arduino team when they designed the board, placed another IC to channel this serial communication over USB. In pre-UNO boards this is handled by the FTDI FT232RL IC and in UNO it is handled by ATmega8U2 IC. In your computer, you will have to install corresponding drivers and the device will appear as the virtual COM port.

Holding the processor in RESET mode

The serial to USB(TTL) IC (either FTDI FT232RL or ATmega8U2) is connected to Arduino pins 0 and 1. If we hold the processor in RESET mode, then all its GPIO pins will me in tri-state, effectively removing it from the circuit and you can directly interface the serial to USB IC with your device.

To hold the processor in RESET mode, just connect the RESET pin (which is active-low) with the ground. This will hold the processor in RESET mode.

Interfacing the serial device

Now you can connect the serial device to the Arduino pins 0 and 1. You should however note that the Rx pin (pin 0) goes to the Rx of the device and Tx pin (pin 1) goes to the Tx of the device and not the other way around.

In your computer the device will appear as a Virtual COM port. You can connect to it using programs like screen or hyper terminal.

I didn’t had a serial device handy with me, so I used a another Arduino as a serial device to test this. I wrote a small sketch which was printing something in the Serial every few seconds and then when I opened the virtual COM port using screen, I was able to see its output.

This is a neat trick and might be useful if you have to interface some serial device like a GPS or a Bluetooth module with your computer.

Happy hacking 🙂