UNO as ISP?

i tried google all day and i am still unsure if i can use UNO as ISP. if possible how? . Basically to burn bootloader and program other atmel chips. All i found out is using another Duemilanove +UNO board to burn bootloader for UNO. If i dont wish to buy the Duemilanove and other AVR programmer.. is there other way to burn UNO bootloader into raw ATmega chips?

So can someone update me on that... if UNO as ISP is possible? and any other related/links would be appreciated.
sorry if this question is being ask thousand of times i did my best in searching.

(deleted)

Thank for the positive reply.. do you mind explaining it further or link me to a tutorial/site to go about doing it?

You can run Examples->ArduinoISP on any Arduino.

The one thing they forget to tell you is to disable auto-reset on the Arduino running ArduinoISP.

http://www.arduino.cc/playground/Main/DisablingAutoResetOnSerialConnection

Note that they recommend a 10uF capacitor to ground for the UNO since the 110 ohm resistor to +5v may not work.

spycatcher2k:
Yes - at can be done using the UNO. You need to disable reset, but thats easy to do cap from +5 to reset.

The cap goes from Reset (+) to Ground (-). This keeps the reset high, briefly, when the USB chip tries to pulse it low.

For pre-UNO boards you can use a 110 ohm resistor between Reset and +5v to get the same effect but apparently the UNO USB chip has more drive than the FTDI chip on earlier models and the 110 ohm pull-up might not be strong enough to keep the signal high.

ok thanks. just to sum it up, all i have to do is

  1. disable autoreset ,
  2. following the tut on http://arduino.cc/en/Tutorial/ArduinoISP
  3. hook up the circuits as shown in 2)
  4. Am i ready to be able to use arduino UNO as ISP to burn the bootloader onto an AVR ?

Anyway why does the http://arduino.cc/en/Tutorial/ArduinoISP show this note:
"NOTE: Currently, you cannot use an Arduino Uno as an ISP programmer because the optiboot bootloader does not support this sketch. A revision for this is in progress."
i found some thread about optiboot fixer or something. do i have to do something from that to make UNO as ISP?
Thanks for clearing up my doubts. :~

UNO doesn't have FTDI chip, so is impossible to use it as ISP

(deleted)

For pre-UNO boards you can use a 110 ohm resistor between Reset and +5v to get the same effect but apparently the UNO USB chip has more drive than the FTDI chip on earlier models and the 110 ohm pull-up might not be strong enough to keep the signal high.

For pre-Uno boards you don't need to disable the autoreset at all- it just works which probably explains the omission of any mention of it it the documentation, they haven't updated it for the Uno. Can't see the drive having much to do with it, the auto reset signal is in both cases transferred through a titchy 100nF capacitor against a 10K pullup. The bootloader doesn't affect very much, you can program a Duemilanove 328 with the Uno bootloader and vice-versa, you just need to change the board settings to reflect the bootloader. It doesn't affect the need for disabling the auto reset, The Uno with a Duemilanove bootloader still needs it disabling, and the Duemilanove with the Uno bootloader doesn't.

  • Bootloaders supplied with Arduino 0022 at least, earlier ones may have issues.

UNO doesn't have FTDI chip, so is impossible to use it as ISP

Obviously never tried it, it does work, provided you disable the autoreset. The FTDI chip doesn't really enter into the equation, other than for talking to the host, the (main) Atmega on the target is programmed by the (main) Atmega on the host.

I knew that we can use Arduino 2009 as avr isp because it has the FTDI. And
because UNO doesn't has it, we can't use it as avr isp.

I'm happy that is wrong, and I hope the there is a way to write bootloader on blank chip, or to load sketches on chip without bootloader.

Bah, now I've been messing with bootloaders, I'm back to the issues (sketch amnesia) with the Uno bootloader, back to opti-fix....... :wink:

If you have problems running ArduinoISP on an UNO (which has the 'optiboot' bootloader), try this patch to ArduinoISP:

http://code.google.com/p/optiboot/issues/detail?id=21

  case '0': // signon
    static boolean signon_done = false;
    if (!signon_done)
        {
        empty_reply();
        signon_done = true;
        }
    break;

johnwasser:
You can run Examples->ArduinoISP on any Arduino.

http://arduino.cc/en/Tutorial/ArduinoISP

The one thing they forget to tell you is to disable auto-reset on the Arduino running ArduinoISP.

Arduino Playground - DisablingAutoResetOnSerialConnection

Note that they recommend a 10uF capacitor to ground for the UNO since the 110 ohm resistor to +5v may not work.

That's very interesting!

So with an uno I must only use a 10uF capacitor, without the 110ohm resistor?

xelendilx:
So with an uno I must only use a 10uF capacitor, without the 110ohm resistor?

That is what I think they are saying.

Thanks, I will try it!

pluggy:

  • Bootloaders supplied with Arduino 0022 at least, earlier ones may have issues.

you means that the bootloader on the arduino acting as isp must be at least the bootloader provided with the 0022 revision of the ide?

I've burned bootloader on a blank ATmega328P using Arduino UNO as
ISP. I've used ArduinoISP sketch without applying any correction to code!

GianfrancoPa:
I've burned bootloader on a blank ATmega328P using Arduino UNO as
ISP. I've used ArduinoISP sketch without applying any correction to code!

hey..i am going to burn bootloader on my new ATmega328P using my UNO soon. Do you just follow the tutorial on http://arduino.cc/en/Tutorial/ArduinoISP only. You make no change to the connections/circuits/code?

  1. Load ArduinoISP sketch (0022) without changes
  2. Follow only this tutorial: http://arduino.cc/en/Tutorial/ArduinoISP
  3. Put in the Arduino that acts as ISP a capacitator of 10 uF (long pin on reset, short on GND)
  4. Select Burn Bootloader - w/ Arduino as ISP

i got untill this step from http://arduino.cc/en/Tutorial/ArduinoToBreadboard and i dont know which to select :

To burn the bootloader, follow these steps:

  1. Upload the ArduinoISP sketch onto your Arduino board. (You'll need to select the board and serial port from the Tools menu that correspond to your board.)
  2. Wire up the Arduino board and microcontroller as shown in the diagram to the right.
    3. Select "Arduino Duemilanove or Nano w/ ATmega328" from the Tools > Board menu. (Or "ATmega328 on a breadboard (8 MHz internal clock)" if using the minimal configuration described below.)
  3. Run Tools > Burn Bootloader > w/ Arduino as ISP.

i dont have the ATmega328 on a breadboard (8 MHz internal clock) at my Tools > Board menu?? Did i miss out anything/steps? thanks.