Downloading programs to Arduino

I have used the standard little Arduino board for quite some time now, and therefore always sent my sketches via pins 0 and 1.

Now I want to strike out for the larger world and do in-system programming via the FTDI path. I have not found a clear explanation of the difference between these methods, so I could use a little knowledge on this subject.

  1. Does FTDI programming involve the Optiboot bootloader, or is it effectively a "native" method of programming the Atmel chips?

  2. If I go through the FTDI port, do I still have access to the Serial function in a sketch? It would seem not, since the chip's RX/TX pins are not involved.

  3. I read that it is good to power the chip from the FTDI port when programming, to guarantee a correct 5 v. reference. I am putting the Atmel 328 in a rather power-hungry circuit, and I don't want to pull the FTDI supply voltage down too much. How sensitive is the FTDI programming to power supply voltage discrepancies?

I thank you in advance for any help you can provides with these questions.

John Doner

  1. Serial port programming requires a bootloader. The USB/Serial device that is used is just the tool in the middle. I like using this one, just to avoid soldering the FT232R:
    http://www.mouser.com/ProductDetail/mikroElektronika/MIKROE-483/?qs=%2Fha2pyFaduhQ%2FrcyPs7PmGdeFG1B7qIuGl16liNH8Zb3mCcKALPhoQ%3D%3D

  2. You still have access to the Rx/Tx pins - there is a 1K resistor from the FTDI chip to the pins, it provides some isolation, if you build your board the same as an Arduino.
    Do you have a Duemilanove? Or an Uno? If an Uno, you do not have an FTDI chip.

  3. Power must come from somewhere when programming. If you are powering via the Barrel jack, then power >7.5V will power the FTDI chip, in place of the USB power.