I have just started using Arduino boards and I am not sure what the programmers are. I read that you can use a bootloader or a programmer to run your code on an Arduino board. I also read that running with a programmer does not take up any memory space for the bootloader and does not take any time to go through the bootloader.

My question is then, why should I not upload my code during development using a programmer?

  • 1
    you definitely can do that if you want ... it is unclear why you think otherwise .... also your question is bogus because it is asking for a reason about something that does not exist – jsotola Feb 8 '20 at 2:14

The bootloader is a 'program' that resides inside the Atmel IC and makes that IC an 'Arduino'. The bootloader takes care that a sketch can be retrieved by UART (via the USB) and stored inside the Arduino.

The programmer is an external hardware device that can upload a sketch without using the bootloader. Another Arduino can also be used as programmer.

In both cases, when a sketch is loaded, it can be run by the Arduino. The programmer does not need a bootloader, so the memory that normally is taken by the bootloader can be saved.

You could use a programmer, but normally there's plenty space for a sketch. Note, it's not the SRAM memory that is saved, only the Flash memory. And if you are reaching the limit of the Flash memory, you should either optimize it, or move to an Arduino with more Flash memory.

Also, the bootloader is much more easy to use, since you can upload the sketch (to the boatloader) with the Arduino IDE. Programming can be done too by the IDE but is less trivial.

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