Burn Bootloader -> w/ Arduino as ISP option

Thanks! That was what I was looking for :slight_smile:

Did anyone got this method to work with ATMega328? I have tried a couple of times, but have not had any luck so far.

Yes.
I made it work by sort of mixing the nice Avrdude tuturial:
http://www.ladyada.net/learn/avr/avrdude.html
with the atmega 328 fuse settings from this tutorial:
http://blog.modifiedelectronics.com/2009/08/arduino-atmega328-fuse-settings.html

Basically I set my fuses to:
EXTENDED: 0xFD
HIGH: 0xDA
LOW: 0xFF
And the lockbit fuse to 0xCF.

and then using the really excellent ADAboot bootloader from http://www.wulfden.org/TheShoppe/freeduino/ADABOOT.shtml. Though you can use any compatible bootloader you want to. But this is really nice, boots almost instantly!

Well some verify / out of sync on verify errors did pop up sometimes, but it seems to work. Probably due to a different read-back of some fuse bits as I understand it. I used the megaISP linked above.

Others have seemingly succeeded with different fuse settings: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1268700386/0

Hello, im using an Arduino that came with an Atmega328, will using this tutorial of using the Arduino as an ISP "ArduinoISP" allow me to burn the bootloader to an Atmega8 just as easy or do i need to change something?

Im choosing Atmega8 because of its price, to make standalone school projects, which needs less than 8kb in program memory.

Thanks in advance!

Thanks raron, I will have to give this method a try then.

@AlphaZeta: Do you have any updates on this? I am trying the same but I get a

avrdude: Expected signature for ATMEGA328P is 1E 95 0F

  • Double check chip, or use -F to override this check.*

message. Is the LED on pin 9 supposed to pulse when the arduino is doing nothing? I am running the circuit as in the Tutorial "Arduino as ISP"

Thx.

Hi lundnul,

No, I haven't tried again. Now I am getting so used to using the bitbanging method and it has been working extremely well for me.

But you need a programmer for this, right? Are you doing this under MacOS?

So far I have succeeded in running avrdude directly with the -F option to ignore the signature. I try to burn the ATmegaBOOT_168_atmega328_pro_8MHz.hex which comes with Arduino. Unfortunately I get a verification error now.

Anyone with an idea?

Thx.

No, you don't need a programmer for this. In fact, this method pretty much turns your Arduino into a programmer. You can find out more information here (Arduino Playground - AvrdudeFTDIBitbang,
http://doswa.com/blog/2009/12/20/avrdude-58-with-ftdi-bitbang-patch-on-linux/,
On ATMega328 Bootloading With FTDI Bitbang Method – Kerry D. Wong)

Thanks!

Though I am still a bit confused:

I need to run a compiled version of avrdude and I need to install the D2xx driver instead of the VCP driver?

I am trying this http://doswa.com/blog/2009/12/20/avrdude-58-with-ftdi-bitbang-patch-on-linux/ on MacOS but I am stuck with the Makefile, did you go the same way?

Well, if you are using the bitbang method, you will have to modify the avrdude source file to accommodate the FT232 chip and thus you do need to compile your own avrdude from the source.

I know that under Linux you do not need to install additional drivers, but I am not quite sure if you need to under Windows. Maybe someone else can answer this one?

Anyone who tried this under MacOS?

Hi, can some please one tell me how to use the new Uno as ISP to boot clone Atmega 328 chips?

Thank you

I just successfully burned bootloaders onto some ATmega644/644P chips with my Uno using a Mac so I'd thought I would give some simple steps to get yours working. Before you start, check out this link http://arduino.cc/en/Tutorial/ArduinoISP or if you plan to burn a bootloader to a breadboard setup http://arduino.cc/en/Tutorial/ArduinoToBreadboard Once you read that you will have the basic understanding of what to do. But in case that doesn't explain it well enough for you here are the steps:

  • First, simply upload the ArduinoISP sketch up to your existing Arduino.
  • Next, connect your existing Arduino to the microcontroller your want to burn. Make sure you connect it correctly, you may need to look online for the datasheet of the microcontroller to confirm the pinout. Also, don't make the mistake of forgetting to connect the Vcc and Ground of your microcontroller! I did this and caused 2 hours of frustration. >.<
  • Next, you need to set up the software. This depends on the chip you are going to burn and how it is set up. For a ATmega328/168 with a 16MHz external clock you need to select "Arduino Duemilanove or Nano w/ ATmega328" from the Tools >> Boards menu. If you have no clock use "ATmega328 on a breadboard (8 MHz internal clock)" this means you will need to download the configuration file called breadboard.zip http://arduino.cc/en/uploads/Tutorial/breadboard.zip and copy the contents of the boards.txt file to the /Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/boards.txt file on you computer. DO NOT REPLACE YOUR EXISTING FILE. Append the information of the downloaded file to the end of the existing file.
  • Finally, go to the Tools >> Burn Bootloader menu and select w/ Arduino as ISP. It should work. If it doesnt after a couple of tries please post the error message and I will see why it isn't working.

I hope this helps my fellow Mac users! If you have any remaining questions please let me know!

P.S. if you don't know how to get to Arduino's internal files you just go to your Applications in Finder and right click the Arduino application icon and click "Show Package Contents".


Hello mr_mac3,

Thanks for the short but to the point tutorial. Now, once I have successfully burned the bootloader how do I copy any sketch to the newly burned chip? I'm a bit confused since I'm using the new Arduino Uno. The part that gets me confused is that the ArduinoToBreadBoard page says:

"Once your ATmega328p has the Arduino bootloader on it, you can upload programs to it using the USB-to-serial convertor (FTDI chip) on an Arduino board. To do, you remove the microcontroller from the Arduino board so the FTDI chip can talk to the microcontroller on the breadboard instead."

And the UNO does not have this FTDI chip. Am I safe to assume that it will talk to the chip (atmega328P-PU) on the breadboard regardless using the same connections?

Again thanks for the bootloader part!

Hi obbi13,

Once you have a boot loaded chip, all you have to do is remove the Atmega 328 from the UNO and replace it with the new burned chip and you are ready to upload any sketch.

After you load the sketch place it in breadboard according to this link:http://itp.nyu.edu/physcomp/Tutorials/ArduinoBreadboard

And you are ready to go...

Make sure you are placing the IC correctly instead of reverse.

I borrow this thread cause I've got a similar question.

Is there any way I can upload a sketch to an Atmega 328 on a breadboard through an UNO SMD-version?

Should work. The one caveat seems to be the auto-reset; it has to be disabled. Folks have reported that a low-value resistor sometimes works. When the resistor doesn't work, a capacitor has to be added. There was a recent discussion in one of the Hardware sections. Search there for details.

I'm kinda new to this and the forums and information I've found covering this tend to conflict. If I have an atmega168 without anything on it, and an arduino uno, can I use the uno to burn the bootloader to the atmega168? If so, how?
Sorry this might be a little less confusing, I bought an atmega168 from mouser, I'm assuming there is no bootloader already on it. I would like to be able to write to it (for example have it make an LED blink), is there a way to do that using the arduino uno?
Thanks

Yes. The description is six posts above this one.