Using a CP2102 on Arduino

I recently bought a cheap USB to TTL adapter from Hong Kong on eBay.

USB to TTL is needed to program Arduinos without an on-board usb chip like the LilyPad or clones like the Diavolino (my favorite).

Sadly, it doesn't work out-of-the-box on OS X and most likely on other systems too.

Connections

Most connections are straightforward:

  • GND to GND
  • RXD to RX
  • TXD to TX
  • 3.3V or 5V to VCC.

The Problem with the Reset Pin

The autoreset feature which resets the Arduino right before the program gets uploaded from the IDE doesn't work. In order to upload a program, you have to press the reset button on the Arduino right when the upload starts.

The more widespread USB TTL cable from FTDI Chip does this automatically.

The Solution

The dongle from eBay features a reset pin, but connecting it to the reset pin on Arduino doesn't do anything. It turned out that this pin resets the CP2102 and doesn't carries the reset signal from the Arduino IDE.

The CP2102 exports the signal on the DTR line. There is no male pin for it, just a soldering pad on the board. Simply solder a male pin to the DTR line and connect it to the reset pin of the Arduino.

Pictures

top-reset.png dtr.png