External programmer vs using bootloader?

I read the articles on both but I still don't understand what the difference is.

Any body want to summarize?


External programmer:

An "External programmer" is an extra bit of hardware that connects between a PC and the Arduino. It connects to the AVR microcontroller using the 6 pin port labelled "ISP". http://en.wikipedia.org/wiki/In-System_Programming, using a protocol known as STK500, defined by Atmel.

The programmer then communicates to the microcontroller using SPI (Serial Peripheral Interface). This allows the microcontroller to be programmed in situ.

The Atmel AVRISP mkII In-System Programmer http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3808 is an example External programmer.

A bootloader:

A bootloader is a small piece of software that runs on the microcontroller when it is reset ie. 'boots' (as in begins from the bottom) which also allows the microcontroller to be programmed in situ, but without the need for the external programmer hardware (mentioned above).

It basically sits there waiting for a new program to be downloaded, and loads it into memory not used by the bootloader.

Hence the name 'boot' 'loader', or bootloader.

as in begins from the bottom

"Bootloader" comes from the phrase "pull oneself up by one's bootstraps".

Ah very well explained. I appreciate it.

I was planning on building an Arduino board, and using a MAX232 for interfacing. Therefore I wouldn't need an external programmer, but I would need a bootloader to be burned to the chip.

One question though.

To burn the bootloader initially, would I have to use an AVR programmer or can I burn it to the chip via serial?

You need one real programmer to program the bootloader in a new chip, or just buy one with the bootloader already programmed, there are a lot of vendors that carry this, like sparkfun or ladyada.

That would make sense. So say the pre-burned ATMega I buy has an older bootloader on it, can it be updated via serial? Or is it a one shot deal? You get what you get? Or....


If you have various you can mount one breaduino/boarduino, load the ISP sketch and leave it as your standalone programmer, now you can buy avr's without the bootloader and you can program the bootloader at home.

Ah okay thanks.

You need one real programmer to program the bootloader in a new chip


In addition, an Arduino will work…