Let's Make Robots!

USB <--> UART TTL

Cheap and easy USB interface for programming and communicating with microcontrollers

My work with ATmega microcontrollers was based mostly on ATmega168 and ATmega328 with Arduino bootloader on custom boards. For programming and communication through UART between the ATmegas and PC I have used commercial USB <--> RS232 adapters and custom RS232 <--> UART TTL boards with MAX202 and MAX3232.

I did not buyed FTDI based ones because I think those are too expensive and I did not found old Nokia communication cables like Ro-Bot-X detailed on a tip here.

I was commited to buy some interfaces from yourduino but few days ago I have found (searching for something else, actually) a USB <--> UART TTL adapter based on CP2102 and for a little more then 4$ a piece and I've buyed 2. What those boards miss is the Arduino style reset for programming microcontrollers so I've modified them :)

Here are the modifications:

  • drill a 0.8mm hole between the top (unpopulated) connector and the right (populated) connector;
  • cut the trace that goes to the pin marked RST somewhere between the drilled hole and the top connector;
  • solder a 100nF capacitor from the pin 1 of the top connector and the RST pin - I have used two pieces of wire insulation on the capacitor pins.

and two images with original and modified boards:

front view

back view, the red X is the place where I've cut the original trace

The interface connected to an ATmega168 on the breadboard - worked OK:

Cable connections for ATmega168/328:

  • interface's RST pin should go to the ATmega's pin 1 (Reset) - only for programming;
  • interface's RX pin should go to the ATmega's pin 2 (RX);
  • interface's TX pin should go to the ATmega's pin 3 (TX);
  • interface's GND pin should go to the ATmega's GND pin.