Membuat Arduino Bootloader Burner Station

Di beberapa forum dan group Arduino yang saya ikuti, banyak yang bertanya tentang Arduino Bootloader. Bagaimana caranya untuk ‘burning bootloader’ yang benar? Apa yang dapat dipakai untuk ‘burning bootloader’ ?

Jawabannya: Banyak cara yang dapat dipergunakan untuk hal tersebut. Di website official Arduino dijelaskan cara menggunakan Arduino sebagai ISP sehingga bisa dipergunakan untuk ‘burning bootloader’, link-nya di sini. Di salah satu tutorial yang dibuat oleh SparkFun, dijelaskan juga cara ‘burning bootloader’ ini (lihat di sini). Di sana dijelaskan 2 cara untuk hal tersebut: 1) Menggunakan 2 buah Arduino Uno. 2) Menggunakan Pocket AVR Programmer.

Cara-cara diatas tersebut memang dapat melakukan proses ‘burning bootloader’, tapi saya masih merasa proses-nya kurang praktis. Beberapa waktu yang lalu, saya melihat tutorial yang dibuat oleh Ladyada tentang ‘Burning bootloader chips using an Arduino‘. Wow, ini adalah tutorial yang saya tunggu-tunggu. Dengan tutorial ini dapat dibuat semacam shield atau station untuk melakukan proses ‘burning bootloader’ dengan menggunakan board Arduino. Yuk kita coba!

Komponen

Ok, untuk membuat “Arduino Bootloader Burner Station” ini, ada beberapa item yang kita perlukan:

  1. 1x Board Arduino Uno
  2. 1x Arduino Protoshield PCB
  3. 1x ZIF Socket 28 Pin
  4. 2x LED (Merah dan Hijau)
  5. 2x Resistor 330 ohm
  6. 1x Pin Header – Male 1×40
  7. Kabel untuk menyolder
  8. 1x Chip ATmega328P kosong (blank)

Komponen Arduino Bootloader Burner Station

Mulai Merakit

Kita pasang ZIP socket pada protoshield PCB, seperti pada gambar berikut.

Memasang ZIF Socket pada PCB

Kemudian solder ZIF socket tersebut pada PCB.

ZIF Socket sudah tersolder pada PCB

Lalu solder pin dari ZIF socket menggunakan kabel ke beberapa pin Arduino, seperti berikut ini:

  1. Pin 1 ke pin digital 10 (kabel putih)
  2. Pin 7 ke pin 5V (kabel merah)
  3. Pin 8 ke pin GND (kabel hitam)
  4. Pin 9 ke pin digital 9 (kabel kuning)
  5. Pin 17 ke pin digital 11 (kabel kuning)
  6. Pin 18 ke pin digital 12 (kabel putih)
  7. Pin 19 ke pin digital 13 (kabel kuning)
  8. Pin 20 ke 5V pada PCB (kabel merah)
  9. Pin 22 ke pin GND (kabel hitam)

Hasilnya dapat dilihat pada gambar berikut ini.

Pin ZIF Socket sudah terhubung dengan pin Arduino

Pasang 2 buah resistor 330 ohm pada posisi R1 dan R2 di PCB, lalu disolder. Kemudian pasang LED hijau pada posisi LED1 di PCB, LED merah pada posisi LED2 di PCB, lalu disolder. Hubungkan pin analog 0 dengan JC2 pada LED1 (kabel putih), kemudian disolder. Lalu hubungkan pin digital 8 dengan JC3 pada LED2 (kabel kuning). Hasilnya dapat dilihat pada gambar berikut.

Menyolder Resistor 330 ohm, LED Hijau dan LED Merah

Ok, sekarang kita siap untuk memasang pin header pada PCB. Pertama siapkan 2 buah pin header (male) 1×6 dan 2 buah pin header (male) 1×8 dari pin header (male) 1×40 yang sudah kita siapkan sebelumnya. Pasang pin header tersebut pada pin header di board Arduino Uno, seperti pada gambar berikut ini.

Pin header disiapkan pada Arduino Uno untuk disolder

Letakkan PCB pada pin header tersebut seperti memasang shield, lihat di gambar berikut ini.

PCB terpasang pada pin header siap untuk disolder

Solder pin header tersebut pada PCB. Memasang pin header pada board Arduino sebelum menyolder merupakan salah satu teknik yang biasa dipakai untuk memasang header pada shield. Dengan teknik seperti itu, maka posisi header tidak akan miring. Hasil pin header yang sudah terpasang pada PCB dapat dilihat pada gambar di bawah ini.

Pin header sudah disolder pada PCB

Pada titik ini “Arduino Bootloader Burner Station” kita sudah selesai dan siap untuk digunakan untuk proses ‘burning bootloader’. Oh ya, bagian bawah dari PCB akan terlihat seperti gambar berikut ini.

Tampilan bagian bawah PCB, hmm lumayan lah...hehehe

Upload Sketch ArduinoISP2

Lakukan upload program (sketch) ArduinoISP2.pde ke dalam board Arduino Uno. Program dapat didownload pada link yang terdapat di dalam tutorial Ladyada atau di sini.

Burning Bootloader

Setelah sketch ter-upload dengan sukses, pasang ‘burner station’ kita di atas board Arduino Uno. Letakkan chip ATmega328P yang kosong pada ZIF socket dan turunkan tuasnya. Pastikan posisi chip ATmega328P sudah benar, seperti yang terlihat pada gambar berikut ini.

Chip ATmega328P kosong siap untuk di-'burning' dengan bootloader

Masih dengan posisi USB terhubung pada komputer, lakukan proses ‘burning’ dari software Arduino (kita memakai versi 23), dengan menu: Tools>Burn Bootloader>w/ Arduino as ISP, seperti terlihat pada gambar berikut ini.

Menu Burn Bootloader pada Software Arduino

Proses ‘burning bootloader’ akan segera berlangsung. LED hijau akan hidup dan LED merah akan berkelip beberapa kali.

Proses burning bootloader sedang berjalan

Proses ini akan berjalan kurang lebih 40 detik. Apabila proses telah selesai dan tidak terdapat error maka LED hijau akan mati dan akan terlihat pesan “Done burning bootloader” seperti pada gambar di bawah ini.

Proses burning bootloader selesai dengan sukses

Nah, demikian lah proses membuat “Arduino Bootloader Burner Station” kita. Cukup mudah bukan? Shield/station yang sudah jadi ini dapat dipakai untuk bootloader yang lain, seperti Uno, Duemilanove, Lilypad dan yang lainnya, tergantung kebutuhan anda.

Selamat mencoba!!!

You may also like...

40 Responses

  1. James Bond says:

    Wow, cara yang jenius dan simple yah, hasil karya tinker di Ladyada memang top markotop. Modalnya kecil pula.

    Hebat buat famosa studio yang sudah menterjemahkannya.

    • Zerfani Yulias says:

      Wah ada Om James Bond nih…tapi kok ngomongnya bahasa Indonesia…hihihi 🙂
      Iya, cara-cara yang sederhana seperti ini wajib disebarluaskan, biar makin banyak yang bisa burn bootloader sendiri 😀

  2. Benipro says:

    Pak, waktu diburn ic 328 yang di uno dilepas gak? Trus, Kalo mau burn bootloader buat atmega 8 bisa gak pake arduino duemilanove? thanks

    • Zerfani Yulias says:

      IC ATmega 328 tetap ditempat karena sudah diisi program untuk burn bootloader-nya.
      Terus terang blom sempat coba utk atmega yang lain.

  3. Dodi Suwardi says:

    Bagi yang berminat bikin tapi kebingungan liat gambar kontruksi tampa skema mungkin berikut ini bisa lebih jelas connection antar pin arduino dengan Zip socket 28 pin :

    Pin 1 to digital 10
    Pin 7 to 5V
    Pin 8 to Ground
    Pin 9 to digital 9
    Pin 17 to digital 11
    Pin 18 to digital 12
    Pin 19 to digital 13
    Pin 20 to +5V
    Pin 22 to Ground

    mas Yulias mohon koreksi jika ada yang salah
    -Dodi-

  4. anj says:

    mas bro klo untuk atmega16-16pu ada yang bisa gak…? ku udah coba cara di atas tp gak brhasil…. mohon pncarahanya makasih..

    • Zerfani Yulias says:

      Kalau untuk ATmega16-16PU kebetulan saya belum coba. Saya adanya cuman ATmega328, belum sempat coba yang lain. Tapi nanti kalau saya ketemu caranya, akan saya info-kan.

  5. Dodi Suwardi says:

    Check it out bro..:
    http://www.subtours.com/ralph/theory/atmega16witharduino.html
    disana ada petunjuk bikin arduino dengan atmega 16 or 32

  6. sakura says:

    terimaksih mz atas tutorialnya.
    sebenernya sya masih newbie bgt soal arduino. bru kmrn belajarnya. sebenere tujuan dari Membuat “Arduino Bootloader Burner Station” itu apa seh mz..? bootloader sendiri apa?
    terimakasih mz…

    • Zerfani Yulias says:

      Ok, tentang apa itu Arduino Bootloader, bisa dilihat penjelasan detailnya di link ini: http://arduino.cc/en/Main/Bootloader
      Arduino Bootloader itu semacam program kecil yang dipasang (“burn”) di chip ATmega yang dipakai. Dengan terpasangnya bootloader tersebut, ini memungkinkan kita untuk meng-upload program Arduino (“Sketch”) tanpa bantuan hardware/alat tambahan. Cukup dengan board Arduino dan kabel USB.

      Nah, dengan membuat Arduino Bootloader Burner Station ini, kita dapat memasang Arduino Bootloader ke chip ATmega328 (atau chip ATmega yang lain) untuk membuat rangkaian minimum yang bisa digunakan secara permanen di Proyek Arduino kita.

  7. jamaludin indra says:

    good artikel…!!
    boleh sedot mas…?
    ntar tinggal nyoba bikin..

  8. Bo says:

    mas. Zerfani Yulias, saya mau tanya:
    1. kalau kita bikin program pake arduino, terus kita kompile, kan hasilnya file *.hex. nah file *.hex itu nya ada dimana? soalnya mau ngeburn nya pake programmer lain.
    2. kan arduino bisa sebagai ISP programmer, bisa ga dia di pake untuk ngeburn selain file “bootloader” ke IC lain (paling tidak untuk IC ATmega 8, 168, ato 328)? jadi arduino sebagai IC programmer gitu.
    sori kalo banyak nanya, tks

  9. Aldy says:

    Mas saya mau nanya nih,, kok setelah klik w/ Arduino as ISP,, ada errornya ya,, errornya
    “Expected signature for ATMEGA328P is 1E 95 0F
    Double check chip, or use -F to override this check.”
    Mohon bantuanya ya,, Terima Kasih

    • Zerfani Yulias says:

      Mas Aldy, kalau boleh tahu, board Arduino yang dipakai apa? Trus Software IDE-nya pakai yang versi berapa? Versi 1.0?

      • Aldy says:

        Mas Yulias saya menggunakan Arduino Uno, wah kalau software IDE kebetulan saya masih kurang paham, oia apa berpengaruh kalau saya pakai ATMega328-PU, di atas seharusnya ATMega328P-PU, kalau untuk tau Software IDE-nya versi berapa dimana ya ?
        Terima Kasih.

  10. jamaludin indra says:

    mas saya udah coba bikin setelah d burn muncul error

    avrdude: stk500_paged_write(): (a) protocol error, expect=0x14, resp=0x11
    avrdude: stk500_cmd(): programmer is out of sync

    mohon bantuannya, terimakasih…

    • Zerfani Yulias says:

      Mas Jamaludin, board-nya pakai Arduino apa ya? Trus pakai Arduino IDE versi berapa?
      Kalau board-nya pakai Arduino Uno R3, coba pakai IDE yang versi 0023. Sketch ArduinoISP2 ambil di sini.

  11. jamaludin indra says:

    oh…. saya pake IDE versi 0022

  12. jamaludin indra says:

    tadinya pake IDE versi 0022, sekarang sudah d ganti versi 0023 tapi masih error..

    avrdude: stk500_paged_write(): (a) protocol error, expect=0x14, resp=0x11
    avrdude: failed to write flash memory, rc=-4
    avrdude: stk500_getsync(): not in sync: resp=0x15

    makasih atas bantuannya….

  13. Dodi Suwardi says:

    Sama nih problem bootloader burning…

    avrdude: stk500_paged_write(): (a) protocol error, expect=0×14, resp=0×11
    avrdude: failed to write flash memory, rc=-4
    avrdude: stk500_getsync(): not in sync: resp=0×15

    kelihatannya bermasalah, saya coba pake xternal xtal 16MHz…problem tetep sama.

  14. jakabudi says:

    Pertanyaan pertama,saya punya ATmega328 yang kata penjualnya sudah di isi dengan ” Arduino Bootloader”. pilihan untuk boardnya apa ya pak? kalo di pake di UNO, selalu muncul error, begitu juga dipilihan yang lain.
    Pertanyaan ke dua, bisa tidak ATmega328 yang telah diisi bootloader di “burn” ulang?

  15. Tatang says:

    Mas Zer,
    Apakah bisa dipakai untuk ATMega1280, bagaimana caranya dan skemanya.

    BR//Tatang S

    • Zerfani Yulias says:

      Mas Tatang, saya belom pernah nyobain untuk burn bootloader ke ATmega1280 ataupun ATmega2560. Selama ini belum ketemu tutorial yang jelas. Barusan nyoba search lagi, trus ketemu link ini disitu cukup jelas cara untuk memprogram bootloader. Silahkan dicoba, mohon update-nya kalau sudah nyobain ya 🙂

  16. Danu says:

    Pak ic atmega 8 yang bisa di gunakan untuk arduino spesifikasinya apa saja,.
    apa semua ic atmega 8 bsa digunakan ?

  17. Danu says:

    pak kalau pake atmega 8 yang spesifikasinya gmana agar bisa di gunakan untuk arduino ?

  18. zudin says:

    pak mau tanya
    pas mau upload kog muncul

    avrdude: stk500_getsync() : not sync: resp=0x00

    .itu yg salah mana ya. .truz trbleshting nya gimana
    makasih

    • Zerfani Yulias says:

      Ada beberapa sebab error itu muncul, antara lain:
      1. Salah pilih board Arduino di menu Tools>Board
      2. Salah pilih COM Port di menu Tools>Serial port
      3. Kable USB kurang bagus
      4. Bootloader dari Arduino rusak

  19. zudin says:

    pak kalo yang di burn itu atmegaa8 bisa juga??
    makaasih

  20. agus abdullah mukti says:

    mantap pak, dlu saya sampai bingung, sampai beli isp programer untuk burn, hahaha

  21. ijune says:

    Mas Zerfani, jika setelah sukses di burn untuk di jadikan bootloader, apakah chip tersebut dapat dan siap dipasang ke arduino uno yg tanpa chip 328P-nya? (menggantikan IC 328P di arduino uno yang rusak, misal). Mohon pengarahannya…..;-)

  22. sany says:

    salam kenal pak dan salam sukses sll
    saya msh pemula nih,saya mau tanya klo IDE pake yg versi
    1.5.4 bisa ngk ya buat bootloader tersebut

  23. tugus ray says:

    Om Zerfani, apa kabar.. saya mau tanya nih sedikit.
    kalau misalkan board yg di gunakan untuk burn station saya ganti pakai breadboard aja langsung apakah bisa?
    terimakasih banyak, di tunggu jawabannya.

  24. ade surya says:

    mas zerfani yulias untuk download software arduino 0023 dimana ya mas…
    terima kasih

  25. Suwardana says:

    wah, ini dah yang saya cari” dari dulu ,nice post mas,akan saya coba.
    jika berkenan mampir ke blog saya

  26. Abhoe says:

    Mas, mau nanya kalo ngeburnnya pake atmega 2560 bisa gak ya ,,,
    Apakah isp2 support ?

  27. Kimung says:

    wah gan bagus nih tutorial nya, work nih ane coba barusan

Leave a Reply

Your email address will not be published. Required fields are marked *

Facebook