Arduino                                                          Home :





Boot Loader


Bootloader is a small program that runs at first when you power on a CPU. This program is not only used for Microcontroller but also for general purpose CPU in PC (Refer to Boot Sequence to see how a Bootloader works in PC). What it does on Arduino board ? What it does for Arduino board can be described as follows.

    i) Power On Arduino Board (or Press Reset Button)

    ii) The AVR chipset execute the Bootloader program

    iii) The Bootloader is montoring the serial port and waiting for a specific signal for program download for a few seconds

    iv) If it detects the signal, it start downloading the program (*.hex) into program memory

         If it fail to detect the signal for a certain time (a few seconds), it start executing whatever is already in the

         programming memory



Where is Bootloader located ?


Where is the Bootloader located ? If you are using the Arduino board, the bootloader comes out preloaded in FLASH memory as indicated below.




Where can I get the Bootloader binary file and source code ?


In most case, you wouldn't need to care about this when you use an Arduino board because the Bootloader is preprogrammed in the microcontroller. However, in some reason (for example, for study purpose or to program an empty AVR chipset) if you want to get the bootloader binary or source code, you can find it in bootloader folder. In case of Arduino IDE installed on my PC, the bootloader binary and source code are found in the following folder. As in this screen capture, you would see many different types of bootloader and you need to figure out which bootloader to use for the controller or board that you are using. For example, if you are using Arduino UNO, you would use 'optiboot'.


    C:\Program Files (x86)\Arduino\hardware\arduino\avr\bootloaders




Reference :


[1]  Arduino Reset (Arduino Playground)

[2]  Arduino Bootloader, What is it?

[3]  Arduino: What is a bootloader? (Quora)

[4]  Everything You Always Wanted to know about Arduino Bootloading but Were Afraid to Ask  

[5]  Programming Arduino with avrdude

[6]  AVR Tutorial - Starting out with avrdude