Programming Arduino Mini Pro with CP2102 USB-to-TTL serial converter

If you are looking for;

  • How to program Arduino Mini Pro with CP2102 USB-to-TTL serial converter 5 pins without DTR (reset pin)
  • How to program Arduino Mini Pro without using Arduino board as ISP

This post probably will help you.

Requires:

  1. Arduino Mini Pro (In this example I'm using Arduino Mini Pro 5v / 16Mhz version)
  2. CP2102 USB-to-TTL (Drivers for Mac, Windows, Linux or more..)

    USB view in system

    USB view in system

Connections CP2102 USB-to-TTL 5pins to Arduino Mini Pro:

  1. CP2102 USB-to-TTL: TXD (green) -> Arduino Mini Pro RX
  2. CP2102 USB-to-TTL: RXD (yellow) -> Arduino Mini Pro TX
  3. CP2102 USB-to-TTL: GND (brown) -> Arduino Mini Pro GND
  4. CP2102 USB-to-TTL: +5V (red) -> Arduino Mini Pro VCC

Uploading Sketch with Arduino IDE

I'm currently using Arduino 1.5.5. I configured it as below;

  1. Arduino IDE -> Tools -> Board -> Arduino Pro or Pro Mini
  2. Arduino IDE -> Tools -> Processor -> ATmega328 (5V, 16 MHz)
  3. Arduino IDE -> Tools -> Port -> /dev/tty.SLAB_USBtoUART
  4. Arduino IDE -> Tools -> Programmer -> AVRISP mkII
  • /dev/tty.SLAB_USBtoUART is the name of serial port shown on Mac OS X. On windows you should see comX (X is a number)
  • To find serial port name list, write on terminal;

The CP2102 USB-to-TTL hasn't 6th pin for auto reset Arduino board so you have to click on reset button on Arduino Mini Pro manually.

  • Click on upload sketch (green right arrow)
  • As soon as you see "Compiling sketch..." on status bar, click on reset button.
  • If your timing is good you'll see "Done uploading."

Boards that I've used.

Published on: 2015/02/14

7 comments on “Programming Arduino Mini Pro with CP2102 USB-to-TTL serial converter”

  1. Hai , I am using arduino mini pro Atmega 328 5v 16ghz with TTL 2021. I getting some error. I pasted below. Kindly guide me to solve this.

    Arduino: 1.6.7 (Windows 7), Board: "Arduino Pro or Pro Mini, ATmega328 (5V, 16 MHz)"

    Version 6.0.1, compiled on Apr 15 2015 at 19:59:58
    Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
    Copyright (c) 2007-2009 Joerg Wunsch

    System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"

    Using Port : COM14
    Using Programmer : arduino
    Overriding Baud Rate : 57600
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x6a
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x6a
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x6a
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x6a
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x6a
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x6a
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x6a
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x6a
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x6a
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x6a

    avrdude done. Thank you.

    Problem uploading to board. See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.

  2. Hi Vijayasarathi,
    I check your post and shorten error messages but leave the important last part which shows me the problem. I guess you have sync problem between your TTL programmer and Arduino. This is all I can say from here without seeing your connection. Also I don't know if your TTL board has 6 or 5 pin to communicate with Arduino. I it has 5 pin manually reset is need many test to find good time. Some times I try 3-4 times to upload a sketch because my timing between pressing upload button and reset is not good enough. I hope this help.

  3. I know that this is an old(er) post, but THANK YOU for this.

    That "... as soon as you see ... click on the reset button ..." is what did it for me.

    And it's hilarious that it needs to be done that way.

    THANKS AGAIN!

  4. Good posting! Worth to mention:
    1. Not only choose the correct board "Arduino Pro or Pro Mini", do not forget to choose the right option: 168 or 328, 5V or 3.3V
    2. To program: press the reset button AFTER the compilation has started, but BEFORE the compilation has ended. Release the reset button BEFORE the compilation ends and the upload starts. I have never experienced timing issues.
    Erik

  5. CORRECTION: timing issues MAY arise and can be prevented by PRESSING AND RELEASING the reset button NEARER THE END of the compilation cycle but still BEFORE uploading starts.

Leave a Reply

linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram