I have been researching about the reason why we have a second MCU in arduino UNO for a while now. finally i understood that its been use as USB to serial converter. the question that really bug me now, why is the boot-loader is burn on the main ATmega328 not Atmega16U2 ?

1 Answer 1


The purpose of the bootloader is to get the firmware through the serial port and burn it into the flash. The 16U2 has no access to the 328's flash. The job has to be done in the 328 itself.

  • The normal AVRProgrammer dose not require a bootloader to burn the code to any ATmega, why then the Atmega16U2 need the help of the bootloader ?. cant just do the job as any other AVRprogrammer ?
    – Akkilah
    Jun 20, 2015 at 10:25
  • It probably could, but it would need to be connected to more lines of the 328, it would also need more complex firmware, doing double duty of USB to serial interface and ISP programmer. Jun 20, 2015 at 10:56
  • @Akkilah: It is also worth noting that the 16U2 replaces an FTDI that was used in previous versions of the Arduino board. Jun 20, 2015 at 11:11
  • so the more complex firmware that need to be used, it will be used in the 16U2 not the 328 , did I understood u correctly ?
    – Akkilah
    Jun 20, 2015 at 11:16
  • worth nothing ( the replacement of FTDI with 16U2 ) in sense that we will still need the use of boot loader and there is no advantages that happen because of the replacement ?
    – Akkilah
    Jun 20, 2015 at 11:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.