question about bootloading

You can program the ATMega on your Arduino board with the Arduino IDE if the chip has a bootloader on it. When you are done and happy with your project, you can just pop the ATMega out off the board and use it as a standalone on another board (link: http://itp.nyu.edu/physcomp/Tutorials/ArduinoBreadboard). It will then run its program once powered on. After power-on there's a short delay from the bootloader that still sits on the chip along with your code.

You can then put a new ATMega onto the board and start programming this one. Remember: this only works if the chip has a bootloader on it, so you have to purchase one that says so.

To be more flexible when buying ATMegas you can then use an ISP programmer to burn a bootloader on an ATMega without bootloader. This works via the Arduino board's ICSP header and is also supported by the IDE. If you don't want to buy an extra programmer you can follow this tutorial: http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html. If you follow it step-by-step you can then burn a bootloader on any new ATMega just using your Arduino board (without an additional ISP programmer). I did it and it works really fine.

What's nice if you have an ISP programmer or use the method above is, that you can directly burn hex-files onto your ATMega, so you don't need to have a bootloader on the chip. This saves about 1kB of memory (the size of the bootloader) and also removes the seconds of delay at powerup, so if you are ready to finish a project and want to get the ATMega work on its own you just directly burn your sketch as a hex-file onto the chip and done.

Hope this was not too confusing,

Otacon2k