How to upload sketches to Arduino UNO chip using PL2303 USB To RS-232 Converter

PL-2303HX provides a convenient solution for connecting an RS232-like full-duplex asynchronous serial device to any Universal Serial Bus (USB) capable host. PL-2303HX highly compatible drivers could simulate the traditional COM port on most operating systems allowing the existing applications based on COM port to easily migrate and be made USB ready.

By taking advantage of USB bulk transfer mode, large data buffers, and automatic flow control, PL-2303HX is capable of achieving higher throughput compared to traditional UART (Universal Asynchronous Receiver Transmitter) ports. When real RS232 signaling is not required, baud rate higher than 115200 bps could be used for even higher performance. The flexible baud rate generator of PL-2303HX could be programmed to generate any rate between 75 bps to 12M bps.

PL-2303HX is exclusively designed for mobile and embedded solutions in mind, providing a small footprint that could easily fit in to any connectors and handheld devices. With very small power consumption in either operating or suspend mode, PL-2303HX is perfect for bus powered operation with plenty of power left for the attached devices. Flexible signal level requirement on the RS232-like serial port side also allows PL-2303HX to connect directly to any 3.3V~1.8V range devices.


There are two ways to upload a sketch using a PL2003 USB to RS232 adapter, both can be used with gigino board, too.


The manual Way

Manual Reset (Press Switch Reset)

1. Connect the circuit as shown in figure.

2. Install driver for USB TO RS232 and  check the number of comport.

3. At Arduino IDE software

     : Tools>>Board>> Arduino UNO

     : Tools>> Serial Port >> Com X (number on your PC)

4. Click "Verify button"  wait until  'Done compiling'.  

5. When you need to upload sketch.  

Press Swith reset and hold it,  Click "Upload button" and count x seconds (the time up on windows and PC you use, for my testing with XP windows took 3 seconds). After that, Release Switch.

If you choose the good time for your system, you will see " Done uploading". Yor are done!!! 

If you quickly or slowly release switch, it cannot upload, you need to try again with the best time for you.


The Automatic Way

Auto Reset (Software Reset)

1. Connect the circuit as shown in the figure below. (You need to solder the wire from PIN        number 2: DTR_N of PL2303 chip and connect to 0.1uF and connect to PIN number 1 of UNO.

2. You can upload normal sketches automatically.










You may also like...

18 Responses

  1. Peter says:

    Thank you!
    I spend hours to find out why it didn't work, and finally the 3 seconds did the job!!!  (on linux)

  2. Dali says:

    Where to get UNO bootloader? its work with Duemillanove bootloader?

  3. admin says:

    You can find optiboot here:
    I don’t know if it works with 2009 but it could work.
    Let me know if it works with 2009 if you try it

  4. moony says:

    Hi, I tried to upload the sketch "blink", LED 13 lights up about 3 times but then I get the error:
    "avrdude: stk500_recv(): programmer is not responding" any idea?
    I tried both manual and automatic resetting..

  5. admin says:

    Are you sure the arduino bootloader has bene correctly burned into the atmega chip?

  6. moony says:

    @admin: may be the chip, it wasn't always readable correctly (not even the ID with low speed). Maybe my chips are all bad.

  7. moony says:

    I'm trying now with a chip, that came with the arduino bootloader. Still that error "programmer not responding".
    Should I be able to measure the clock, as the chip gets powered?
    Can I also use an 8MHz crystal?

  8. moony says:

    It has to be 16MHz, or the whole timing for communicating with uart is wrong right?

  9. admin says:

    Hi moony, if you use a different crystal you should reconfigure the UART.
    You have to choices
    1. You have to use a 16 Mhz crystal
    2. You have to burn a new bootloader working at 8MHz

  10. moony says:

    great it works!! With a 16MHz crystal and ceramic capacitors, instead of plastic capacitors (although same value if I read it right).

  11. Adokas says:

    Hi !

    I always get the error "avrdude: stk500_getsync(): not in sync: resp=0x00" the atmega chip never answers altought a friend was able to write sketches on it with the arduino as isp sketch. When I put leds on the Rx and Tx wires they never blink…What should I do ?

  12. admin says:

    Hi Adokas,

    are you sure the bootloader has been correctly burned onto the chip?

    What chip are you using?



  13. Shashank Patel says:

    I spent days figuring out why I couldn't upload sketch. Thanks man. This worked in the first try.

  14. DonSargento says:

    Thank you very much!!!!! 😀
    Finally someone that explains correctly the manual method.

    Now it worked perfectly, after several tries and a couple of give ups.

  15. DonSargento says:

    BTW: Those several tries and give ups happened before using your technique. Using your method worked in the first try.


    Thanks again.

  16. DonSargento says:

    TIP that worked for me using the Manual Way:
    – On your Arduino IDE, go to Preferences
    – Check Show verbose output during: UPLOAD
    – Release the reset button as soon as you see something like:
        avrdude: Send: 0 [30]   [20] 

    Always works for me.

  17. uyarmam says:

    Great article, just whɑt I needed.

  1. January 7, 2014

    […] 1 How to upload sketches to Arduino nv […]

Leave a Reply

Your email address will not be published. Required fields are marked *