Arduino does not cease to amaze.

Recently, I was chalking out plans for my first project with my new GSM-GPRS module (my birthday gift actually 🙂 ). My friends very intelligently chose a board with a four-wire serial interface rather than the conventional 9-pin RS-232 connector interface. This choice is intelligent because it is better to interface the board with a microcontroller for a more appealing project.

But, to get started with it and to practice AT commands, I need to interface this board with a computer. What do I do? I don’t have a USB to RS232 converter at hand. Moreover, even if I get one, taking out wires from the connector to the module will involve tedious soldering.

This is where Arduino is a life-saver. Arduino already has a USB-to-Serial conversion circuit on-board which it uses to interface with the PC. In case of Duemilanove and few lower versions, it is the FT232 chip and in case of Uno and its revisions, it is the ATmega8 controller. You can directly use these without writing a single line of code or downloading any kind of sketch onto Arduino.


1) Connect the RESET pin on your Arduino to GND. You are basically keeping the controller in the reset mode at all times. All controller pins are tri-stated.

2) Connect the RX and TX pins of your Arduino to the TX and RX pins of your device (a GSM-GPRS module, a Zigbee module, an I/O card, an LCD, a controller – anything with an RS232 serial interface)

3) Start the Serial Monitor and watch the data ring in and out!

But, why did it work?


Arduino uses the RX and TX pins to program the microcontroller. As a result there is a short between the RX-TX pins and the TX-RX pins of the converter in between (FT232 or ATmega8). With the controller pins tri-stated, any activity on these pins is mimicked at the other end.

A simple solution, isn’t it?