Laporkan Masalah

Pengembangan Bootloader pada Mikrokontroler ATmega328P

Ananda Hafidh Rifa'i Kusnanto, Prof. Dr. Ir. Risanuri Hidayat, M.Sc., IPM.; Ir. Addin Suwastono, S.T., M.Eng., IPM.

2023 | Skripsi | TEKNIK ELEKTRO

Dalam pengembangan firmware pada mikrokontroler, bootloader digunakan untuk mempermudah proses pemrograman mikrokontroler tersebut. Bootloader adalah firmware berukuran kecil yang berfungsi meletakkan firmware baru ke memori pada mikrokontroler. Dengan munculnya konsep internet of things, firmware dapat dikirimkan secara over-the-air melalui komunikasi nirkabel, tidak terbatas pada saluran komunikasi berkabel saja. Penggunaan bootloader semakin marak dengan adanya platform Arduino, yang juga menyediakan development board dan software Arduino IDE. Arduino mempermudah dan mengabstraksi proses pemrograman mikrokontroler bagi pemula.

Tugas akhir ini bertujuan mengembangkan bootloader untuk mikrokontroler ATmega328P yang umum digunakan pada board Arduino Uno. Selanjutnya, dikembangkan sebuah sistem untuk mengimplementasikan konsep pemrograman over-the-air pada mikrokontroler ATmega328P. Dikembangkan pula suatu development board yang kompatibel dengan board Arduino Uno, yang akan digunakan dalam pengujian bootloader yang telah dikembangkan sebelumnya.

Pengembangan bootloader dilakukan menggunakan bahasa pemrograman C dan toolchain yang bersifat open-source. Proses prototyping dan pengujian bootloader dilakukan pada breadboard, sebelum diintegrasikan dengan development board yang dikembangkan selanjutnya. Sementara itu, aplikasi KiCAD 6.0 digunakan untuk mendesain skematik dan layout PCB dari development board. PCB yang telah dicetak kemudian dirangkai dengan komponen-komponennya menjadi sebuah development board yang utuh.

Bootloader yang dikembangkan telah berhasil memprogram mikrokontroler ATmega328P. Pemrograman dapat dilakukan dengan baik melalui komunikasi serial maupun secara over-the-air. Secara performa, bootloader yang menggunakan komunikasi serial tidak secepat bootloader buatan Arduino. Meskipun demikian, sistem pemrograman over-the-air yang dikembangkan dapat berfungsi dengan baik dan memprogram dengan lebih cepat.

In developing firmware for microcontrollers, bootloader is used to ease the process of microcontroller programming. Bootloader is a small firmware that is used to load the new firmware to a microcontroller’s memory. With the emergence of internet of things concept, firmware can be sent over-the-air using wireless communication, not limited to wired communication channels only. Furthermore, the use of bootloader is popularized by Arduino platform, which provides development board and Arduino IDE software. Arduino simplified microcontroller programming for beginners by abstracting the programming process.

This research aims to develop a bootloader for the ATmega328P microcontroller, which is widely used in the Arduino Uno development board. Furthermore, a system is developed to implement over-the-air programming concept on the ATmega328P microcontroller. To test the bootloader, a custom development board which is compatible to Arduino Uno is used.

Bootloader is developed using the C programming language, along with some open-source software toolchain. Prototyping and testing of the bootloader is done on a breadboard, before being integrated with the custom development board. Schematic design and PCB layout of the custom board is created using the free KiCAD 6.0 software. The manufactured PCB and its constituent components is then assembled to form a complete development board.

The proposed bootloader successfully program the ATmega328P microcontroller. Programming can be done using either serial communication or over-the-air using wireless communication. Performance-wise, the proposed bootloader is not as quick as the original Arduino bootloader. However, the proposed system for over-the-air programming works quite well and programs relatively quick.

Kata Kunci : mikrokontroler, ATmega328P, bootloader, Arduino, pemrograman over- the-air

  1. S1-2023-439605-abstract.pdf  
  2. S1-2023-439605-bibliography.pdf  
  3. S1-2023-439605-tableofcontent.pdf  
  4. S1-2023-439605-title.pdf