Bootloader adalah sebuah program yang ada dalam sebuah mikrokontroller saat pertama kali miktrokontroller tersebut digunakan. Dalam sebuah Arduino, bootloader berfungsi agar IDE dapat mengupload program ke arduino melalui USB.Salah satu fungsi dari bootloader misalnya adalah pada kasus beragamnya jenis mikrokontroler yang yang masing – masing terkadang memiliki protokol yang berbeda-beda untuk dapat diprogram, sehingga memerlukan cara dan teknik pemrograman berbeda. Misalnya, antara mikrokontroler ATMega dengan STM32 jelas memiliki perangkat downloader dan software yang berbeda dalam memprogram.
Dengan menggunakan bootloader, seorang pengguna tinggal mentransfer binary firmware melalui komunikasi serial pada USB misalnya. Bootloader yang menerima data binary tersebut kemudian menulis ulang (overwrite) ke Flash Memory. Saat arduino booting atau pada kondisi RESET, bootloader akan dipanggil untuk kali pertama. Fungsi bootloader ini adalah untuk menerima sketches dari Arduino IDE dan menuliskan instruksi binary ke Flash memory. Inilah yang menyebabkan mengapa kala memprogram Arduino, programmer hanya perlu menghubungkan dengan komunikasi serial pada komputer dengan Arduino IDE (In Application Programming)
Komponen yang dibutuhkan untuk memprogram Bootloader:
1.PC/Laptop
2.Arduino Uno R3
3.Kabel downloader Arduino
4.Resistor 10k 1 buah
5.Kapasitor 22pF 2 buah
6.Crystal 16 MHz
7.ATMega 328p
8.Breadboard
9.Kabel Jumper
1. Buka program Arduino ISP pada Example.
4. Pada IDE tools pilih Arduino ISP sebagai programmer (dengan pemilihan ini maka secara otomatis IDE akan menganggap Arduino yang terkoneksi sebagai perangkat programmer ISP).
5. Pilih bootloader yang akan dimasukkan ke dalam Mikrokontroler. Untuk ATMEGA328 dipilih bootloader Arduino UNO