when you change atmel328p chip for a new, clean one, you need to flash a boot loader in it..
but why do you need to use external programmer? why arduino guys just don't make a possibility to flash a boot loader the same way you load a program in your arduino?
biely123:
why arduino guys just don't make a possibility to flash a boot loader the same way you load a program in your arduino?
Because you need an ISP programmer to do that. You can't just snap your fingers and say "Alakazam! You can now burn the bootloader without a programmer". The only way this would be possible would be to incorporate an ISP programmer into the Arduino board. That would mean more complexity and cost for something that is very rarely done. Why would they bother to do that?
If you like burning bootloaders so much, just spend a whopping $2 to buy a Chinese 6 pin USBasp from eBay. Problem solved.
The only way this would be possible would be to incorporate an ISP programmer into the Arduino board.
ok so that smaller chip (atmega 16u2) on the board is not ISP programmer? It is what then? it can somehow copy your code from pc to at328 so I was thinking it is like ISP programmer...
The main problem that comes to my mind for this is that you'd need data lines connected from the SPI interface pins to the 16u2 if you wanted it to be able to program via ISP to burn the bootloader. No matter how you did this, there would be ways that this would interfere with using it for other purposes - working with SPI devices and/or using those pins for other purposes would have additional caveats.
Since burning the bootloader is something that 95+% of users will never have to do (and you can buy 328p's pre-loaded with Optiboot), and you can do it with a second arduino using Arduino as ISP, I think the Arduino team made the right decision to not compromise the design for the sake of this functionality.