Pikir dan Rasa

cogito ergo sum

Memanfaatkan Arduino IDE tanpa Arduino board

with 22 comments

Untuk kepentingan pembahasan dalam artikel ini anggap saja sistem Arduino terdiri dari dua sub sistem utama. Yang pertama adalah Arduino IDE, yaitu software yang beroperasi di komputer. Menurut situs http://www.arduino.cc perangkat lunak ini mereka sebut sebagai Arduino Software.

The open-source Arduino environment makes it easy to write code and upload it to the i/o board. It runs on Windows, Mac OS X, and Linux. The environment is written in Java and based on Processing, avr-gcc, and other open source software.

 

 

Tugas dari “Arduino Software” adalah menghasilkan sebuah file berformat hex yang akan di-download pada papan arduino atau papan sistem mikrokontroler lainnya. Ini mirip dengan Microsoft Visual Studio, Eclipse IDE, atau Netbeans. Lebih mirip lagi adalah IDE semacam Code::Blocks, CodeLite atau Anjuta yang mempermudah untuk menghasilkan file program. Bedanya kesemua IDE tersebut menghasilkan program dari kode bahasa C (dengan GNU GCC) sedangkan Arduino Software (Arduino IDE) menghasilkan file hex dari baris kode yang dinamakan sketch.

A sketch is the name that Arduino uses for a program. It’s the unit of code that is uploaded to and run on an Arduino board.

 

Sub sistem yang kedua adalah hardware (perangkat keras) yaitu papan Arduino (Arduino Boards). Sampai saat tulisan ini dibuat yang paling umum dijual adalah varian baru yaitu Arduino Uno dan Arduino Mega 2560. Kesemua papan arduino itu memiliki perangkat lunak yang dinamakan bootloader.

When you upload a sketch, you’re using the Arduino bootloader, a small program that has been loaded on to the microcontroller on your board. It allows you to upload code without using any additional hardware. The bootloader is active for a few seconds when the board resets; then it starts whichever sketch was most recently uploaded to the microcontroller. The bootloader will blink the on-board (pin 13) LED when it starts (i.e. when the board resets).

Pada umumnya sketch yang dibuat di Arduino Software di-compile dengan perintah verify / Compile (Ctrl+R) lalu hasilnya di-download ke papan Arduino seperti Arduino Uno atau Arduino Mega 2560. Program hasil kompilasi itu lalau dijalankan oleh bootloader.

 

Tetapi ternyata hasil kompilasi dari Arduino Software dapat dipergunakan dan dijalankan tidak hanya pada papan arduino (Arduino Boards) atau turunannya yang kompatibel. Program hasil kompilasi itu dapat dijalankan di sistem mikrokontroller Atmel AVR yang sesuai bahkan tanpa menggunakan bootloader. Selain memperluas pilihan varian IC microcontroller AVR yang bisa dipergunakan hal ini juga berarti semakin besar program yang bisa kita muat di flash memori IC itu.

If you want to use the full program space (flash) of the chip or avoid the bootloader delay, you can burn your sketches using an external programmer. [sumber]

 

If you have an external programmer (e.g. an AVR-ISP, STK500, or parallel programmer), you can burn sketches to the Arduino board without using the bootloader. This allows you to use the full program space (flash) of the chip on the Arduino board. So with an ATmega168, you’ll get 16 KB instead of 14 (on an ATmega8 you’ll get 8 KB instead of 7). It also avoids the bootloader delay when you power or reset your board. [sumber]

 

Kemudahan untuk mempergunakan berbagai macam varian microcontroller dalam tulisan ini mengikuti karya dari Mark Sproul. Beliau telah berbuat amal [ 🙂 ] dengan melakukan pengujian dan kemudian mempublikasikan secara luas uji cobanya untuk mempergunakan Arduino IDE untuk memprogram berbagai uC IC AVR. Daftar hasil uji cobanya dapat dilihat di http://www.avr-developers.com/cputable.html. Untuk dapat memprogram berbagai IC AVR tanpa papan arduino kita perlu melakukan download file-file konfigurasi yang telah dimodifikasi oleh Mark Sproul.

Sep 29, 2010 Updated to version 0020 core
Based on Version 0020 core files

Download this file (arduino-extras.zip) uncompress it and add it in the hardware folder.   
On the Mac, this is /Applications/Arduino.app/Contents/Resources/Java/hardware
This file contains ALL of the defintions that are included in the “arduino” folder as well. So your BOARDS menu will have duplicates.

This will give you access to just about EVERY ATmega that I can find that has been made into a comerically avaialable board.

NOTE: Not all cpus support bootloaders.

 

File arduino-extras.zip berisi tiga direktori: bootloaders, cores dan firmwares dan dua file: boards.txt dan programmers.txt. Kesemuanya di-copy-kan ke direktori hardware arduino, misalnya: /home/sunu/arduino-0022/hardware/arduino/ atau misalnya direktori arduino utak-atik saya /home/sunu/arduino-0022hknix/hardware/arduino/. Kesemua direktori dan file yang baru itu akan menimpa yang lama, aman, kecuali anda telah melakukan modifikasi pada file yang lama yang sayang kalau hilang :-).

 

Ada dua cara konfigurasi untuk melakukan pemrograman tanpa papan arduino. Yang pertama melakukan konfigurasi pada file preferences.txt untuk mengubah secara otomatis setting pada semua pengaturan papan. Cara yang kedua adalah dengan melakukan konfigurasi pada file boards.txt, ini jika kita hendak melakukan setting yang berbeda untuk tiap papan.

 

Untuk file preferences dapat ditemukan di sistem sebagai berikut:

* /Users/<USERNAME>/Library/Arduino/preferences.txt (Mac)
* c:\Documents and Settings\<USERNAME>\Application Data\Arduino\preferences.txt (Windows)
* ~/.arduino/preferences.txt (Linux) 

Perlu diperhatikan bahwa direktori ~/.arduino/ adalah direktori tersembunyi pada sistem GNU/Linux anda. Jika menggunakan file explorer Nautilus untuk menampilkan semua direktori tersembunyi dapat menggunakan Ctrl+h.

 

Modifikasi pada file preferences.txt dilakukan dengan melakukan pengubahan pada baris konfigurasi yang tercantum

upload.using=bootloader

menjadi salah satu nama programmer yang telah dicantumkan dalam file programmer.txt.

Change: upload.using from bootloader to the identifier of one of the programmers in hardware/programmers.txt (e.g. avrispmkii).

Misalnya saya menggunakan dua programmer, yaitu USBasp dan USBtinyISP yang saya cantumkan di dalam file programmer.txt.

usbasp.name=USBasp
usbasp.protocol=USBasp

usbtinyisp.name=USBtinyISP
usbtinyisp.protocol=usbtiny

 

Maka saya bisa mengubah baris yang tertulis sebagai upload.using=bootloader dalam preferences.txt menjadi upload.using=USBasp atau upload.using=USBtinyISP.

 

Saya sendiri lebih menyenangi cara yang kedua yaitu melakukan konfigurasi pada file boards.txt. Menurut saya cara ini lebih fleksibel, bahkan saya menjadi bisa untuk memiliki lebih dari satu konfigurasi untuk satu papan / boards / sistem. Misalnya saya memiliki dua konfigurasi untuk sistem/papan ATmega8, satu untuk internal clock 1 MHz dan satu lagi untuk  internal clock  8 Mhz.

 

File boards.txt pada sistem OS MS Windows dapat ditemukan di sub folder instalasinya misalnya D:\arduino-0022\hardware\arduino\boards.txt. Pada sistem GNU/Linux dapat ditemukan di tempat instalasinya misalnya di /home/sunu/arduino-0022hknix/hardware/arduino/boards.txt.

 

Baris konfigurasi yang perlu diubah atau ditambahkan (jika belum ada) adalah baris yang tertulis sebagai: 

xxx.upload.using=nama_programmer

xxx.upload.protocol=nama_programmer

 

Misalnya:

    USBtinyISP-ATtiny2313.upload.using=usbtiny
    USBtinyISP-ATtiny2313.upload.protocol=usbtiny

atau

    arduino_attiny2313.upload.using=usbasp
    arduino_attiny2313.upload.protocol=usbasp

 

Berikut ini adalah konfigurasi yang saya buat untuk keperluan sistem saya, dapat dimodifikasi sesuai keperluan:


##############################################################

USBtinyISP-ATtiny2313.name=USBtinyISP ATtiny2313 8 MHZ internal

USBtinyISP-ATtiny2313.upload.using=usbtiny
USBtinyISP-ATtiny2313.upload.protocol=usbtiny
USBtinyISP-ATtiny2313.upload.maximum_size=2048
USBtinyISP-ATtiny2313.upload.speed=19200

USBtinyISP-ATtiny2313.bootloader.low_fuses=0x64
USBtinyISP-ATtiny2313.bootloader.high_fuses=0xdf
USBtinyISP-ATtiny2313.bootloader.path=attiny45
USBtinyISP-ATtiny2313.bootloader.file=ATmegaBOOT.hex
USBtinyISP-ATtiny2313.bootloader.unlock_bits=0x3F
USBtinyISP-ATtiny2313.bootloader.lock_bits=0x0F

USBtinyISP-ATtiny2313.build.mcu=attiny2313
USBtinyISP-ATtiny2313.build.f_cpu=8000000L
USBtinyISP-ATtiny2313.build.core=arduino

##############################################################

arduino_attiny2313.name=USBasp ATtiny2313 8 MHZ internal

arduino_attiny2313.upload.using=usbasp
arduino_attiny2313.upload.protocol=usbasp
arduino_attiny2313.upload.maximum_size=2048
arduino_attiny2313.upload.speed=19200

arduino_attiny2313.bootloader.low_fuses=0x64
arduino_attiny2313.bootloader.high_fuses=0xdf
arduino_attiny2313.bootloader.path=attiny45
arduino_attiny2313.bootloader.file=ATmegaBOOT.hex
arduino_attiny2313.bootloader.unlock_bits=0x3F
arduino_attiny2313.bootloader.lock_bits=0x0F

arduino_attiny2313.build.mcu=attiny2313
arduino_attiny2313.build.f_cpu=8000000L
arduino_attiny2313.build.core=arduino

##############################################################

atmega8usbasp1mhz.name=ATmega8 tanpa bootloader 1 MHz (USBasp)

atmega8usbasp1mhz.upload.using=usbasp
atmega8usbasp1mhz.upload.protocol=usbasp
atmega8usbasp1mhz.upload.maximum_size=8192
atmega8usbasp1mhz.upload.speed=19200

atmega8usbasp1mhz.build.mcu=atmega8
atmega8usbasp1mhz.build.f_cpu=1000000L
atmega8usbasp1mhz.build.core=arduino

##############################################################

atmega8usbasp8mhz.name=ATmega8 tanpa bootloader 8 MHz (USBasp)

atmega8usbasp8mhz.upload.using=usbasp
atmega8usbasp8mhz.upload.protocol=usbasp
atmega8usbasp8mhz.upload.maximum_size=8192
atmega8usbasp8mhz.upload.speed=19200

#catatan -U lfuse:w:0xE4
#catatan -U hfuse:w:0xD9

atmega8usbasp8mhz.build.mcu=atmega8
atmega8usbasp8mhz.build.f_cpu=8000000L
atmega8usbasp8mhz.build.core=arduino

##############################################################

atmega8.name=Arduino NG or older w/ ATmega8

atmega8.upload.protocol=stk500
atmega8.upload.maximum_size=7168
atmega8.upload.speed=19200

atmega8.bootloader.low_fuses=0xdf
atmega8.bootloader.high_fuses=0xca
atmega8.bootloader.path=atmega8
atmega8.bootloader.file=ATmegaBOOT.hex
atmega8.bootloader.unlock_bits=0x3F
atmega8.bootloader.lock_bits=0x0F

atmega8.build.mcu=atmega8
atmega8.build.f_cpu=16000000L
atmega8.build.core=arduino

##############################################################

atmega16_1Mhz_dalam.name=Atmega16 1 MHz internal

atmega16_1Mhz_dalam.upload.using=usbasp
atmega16_1Mhz_dalam.upload.protocol=usbasp
atmega16_1Mhz_dalam.upload.maximum_size=16384
atmega16_1Mhz_dalam.upload.speed=57600

#catatan -U lfuse:w:0xE1
#catatan -U hfuse:w:0x99

atmega16_1Mhz_dalam.build.mcu=atmega16
atmega16_1Mhz_dalam.build.f_cpu=1000000L
atmega16_1Mhz_dalam.build.core=arduino

##############################################################

arduino_atmega16.name=Arduino-Atmega16

arduino_atmega16.upload.protocol=stk500v2
arduino_atmega16.upload.maximum_size=14336
arduino_atmega16.upload.speed=57600

arduino_atmega16.bootloader.low_fuses=0xE4
arduino_atmega16.bootloader.high_fuses=0x98
arduino_atmega16.bootloader.extended_fuses=0xFF
arduino_atmega16.bootloader.path=atmega
arduino_atmega16.bootloader.file=ATmegaBOOT_168_atmega16.hex
arduino_atmega16.bootloader.unlock_bits=0x3F
arduino_atmega16.bootloader.lock_bits=0x0F

arduino_atmega16.build.mcu=atmega16
arduino_atmega16.build.f_cpu=8000000L
arduino_atmega16.build.core=arduino

##############################################################

atmega32_no_boot_1MHz.name=ATmega32 1 MHz internal

atmega32_no_boot_1MHz.upload.using=usbasp
atmega32_no_boot_1MHz.upload.protocol=usbasp
atmega32_no_boot_1MHz.upload.maximum_size=32768
atmega32_no_boot_1MHz.upload.speed=57600

#catatan -U lfuse:w:0xE1
#catatan -U hfuse:w:0x99

atmega32_no_boot_1MHz.build.mcu=atmega32
atmega32_no_boot_1MHz.build.f_cpu=1000000L
atmega32_no_boot_1MHz.build.core=arduino

##############################################################

atmega32_no_boot_8MHz.name=ATmega32 8 MHz internal

atmega32_no_boot_8MHz.upload.using=usbasp
atmega32_no_boot_8MHz.upload.protocol=usbasp
atmega32_no_boot_8MHz.upload.maximum_size=28672
atmega32_no_boot_8MHz.upload.speed=57600

#catatan -U lfuse:w:0xE4
#catatan -U hfuse:w:0x99

atmega32_no_boot_8MHz.build.mcu=atmega32
atmega32_no_boot_8MHz.build.f_cpu=8000000L
atmega32_no_boot_8MHz.build.core=arduino

##############################################################
arduino_penguino_avr.name=Arduino-Penguino AVR

arduino_penguino_avr.upload.protocol=stk500v2
arduino_penguino_avr.upload.maximum_size=28672
arduino_penguino_avr.upload.speed=57600

arduino_penguino_avr.bootloader.low_fuses=0xFF
arduino_penguino_avr.bootloader.high_fuses=0xDA
arduino_penguino_avr.bootloader.extended_fuses=0x05
arduino_penguino_avr.bootloader.path=atmega
arduino_penguino_avr.bootloader.file=stk500boot_v2_penguino.hex
arduino_penguino_avr.bootloader.unlock_bits=0x3F
arduino_penguino_avr.bootloader.lock_bits=0x0F

arduino_penguino_avr.build.mcu=atmega32
arduino_penguino_avr.build.f_cpu=16000000L
arduino_penguino_avr.build.core=arduino

##############################################################

uno.name=Arduino Uno
uno.upload.protocol=stk500
uno.upload.maximum_size=32256
uno.upload.speed=115200
uno.bootloader.low_fuses=0xff
uno.bootloader.high_fuses=0xde
uno.bootloader.extended_fuses=0x05
uno.bootloader.path=optiboot
uno.bootloader.file=optiboot_atmega328.hex
uno.bootloader.unlock_bits=0x3F
uno.bootloader.lock_bits=0x0F
uno.build.mcu=atmega328p
uno.build.f_cpu=16000000L
uno.build.core=arduino

##############################################################

mega2560.name=Arduino Mega 2560

mega2560.upload.protocol=stk500v2
mega2560.upload.maximum_size=258048
mega2560.upload.speed=115200

mega2560.bootloader.low_fuses=0xFF
mega2560.bootloader.high_fuses=0xD8
mega2560.bootloader.extended_fuses=0xFD
mega2560.bootloader.path=stk500v2
mega2560.bootloader.file=stk500boot_v2_mega2560.hex
mega2560.bootloader.unlock_bits=0x3F
mega2560.bootloader.lock_bits=0x0F

mega2560.build.mcu=atmega2560
mega2560.build.f_cpu=16000000L
mega2560.build.core=arduino

##############################################################
arduino_atmega8515.name=Arduino-ATmega8515

arduino_atmega8515.upload.using=usbtinyisp
arduino_atmega8515.upload.protocol=stk500
arduino_atmega8515.upload.maximum_size=8192
arduino_atmega8515.upload.speed=19200

arduino_atmega8515.bootloader.low_fuses=0xdf
arduino_atmega8515.bootloader.high_fuses=0xca
arduino_atmega8515.bootloader.path=atmega
arduino_atmega8515.bootloader.file=ATmegaBOOT.hex
arduino_atmega8515.bootloader.unlock_bits=0x3F
arduino_atmega8515.bootloader.lock_bits=0x0F

arduino_atmega8515.build.mcu=atmega8515
arduino_atmega8515.build.f_cpu=16000000L
arduino_atmega8515.build.core=arduino

##############################################################
arduino_atmega8535.name=Arduino-Test-Atmega8535

arduino_atmega8535.upload.protocol=stk500v2
arduino_atmega8535.upload.maximum_size=7168
arduino_atmega8535.upload.speed=38400

arduino_atmega8535.bootloader.low_fuses=0xEC
arduino_atmega8535.bootloader.high_fuses=0x18
arduino_atmega8535.bootloader.extended_fuses=0xFD
arduino_atmega8535.bootloader.path=atmega
arduino_atmega8535.bootloader.file=stk500boot_v2_notdefined.hex
arduino_atmega8535.bootloader.unlock_bits=0x3F
arduino_atmega8535.bootloader.lock_bits=0x0F

arduino_atmega8535.build.mcu=atmega8535
arduino_atmega8535.build.f_cpu=16000000L
arduino_atmega8535.build.core=arduino

##############################################################

atmega328.name=Arduino Duemilanove or Nano w/ ATmega328

atmega328.upload.protocol=stk500
atmega328.upload.maximum_size=30720
atmega328.upload.speed=57600

atmega328.bootloader.low_fuses=0xFF
atmega328.bootloader.high_fuses=0xDA
atmega328.bootloader.extended_fuses=0x05
atmega328.bootloader.path=atmega
atmega328.bootloader.file=ATmegaBOOT_168_atmega328.hex
atmega328.bootloader.unlock_bits=0x3F
atmega328.bootloader.lock_bits=0x0F

atmega328.build.mcu=atmega328p
atmega328.build.f_cpu=16000000L
atmega328.build.core=arduino

##############################################################

diecimila.name=Arduino Diecimila, Duemilanove, or Nano w/ ATmega168

diecimila.upload.protocol=stk500
diecimila.upload.maximum_size=14336
diecimila.upload.speed=19200

diecimila.bootloader.low_fuses=0xff
diecimila.bootloader.high_fuses=0xdd
diecimila.bootloader.extended_fuses=0x00
diecimila.bootloader.path=atmega
diecimila.bootloader.file=ATmegaBOOT_168_diecimila.hex
diecimila.bootloader.unlock_bits=0x3F
diecimila.bootloader.lock_bits=0x0F

diecimila.build.mcu=atmega168
diecimila.build.f_cpu=16000000L
diecimila.build.core=arduino

##############################################################

 

Saya melakukan modifikasi pada file boards.txt agar tampilan daftar pilihannya tidak terlalu panjang dan berisi penuh konfigurasi yang hampir tidak pernah saya pergunakan. Jika suatu hari nanti perlu ditambah atau dimodifikasi ulang toh caranya sangat gampang. 

 

File boards.txt maupun file programmers.txt yang berada di folder/direktori yang sama telah saya upload di sini. File programmers.txt perlu dimodifikasi jika anda ingin membakar/download bootloader dengan papan selain turunan papan arduino. Misalnya jika ingin menggunakan programmer USBasp atau USBtinyISP.

 

 

 

 

 

 

 

Demikianlah, selamat mencoba. Silahkan melihat ke semua link (tautan) di tulisan di atas dan daftar referensi berikut:

http://www.avr-developers.com/corefiles/index.html

http://www.avr-developers.com/cputable.html

http://www.arduino.cc/en/Hacking/Programmer

http://tutorial.cytron.com.my/2011/09/30/how…

http://blog.lincomatic.com/?p=10

http://todbot.com/blog/2009/05/26/minimal-arduino-with-atmega8/

mengatasi-masalah-uploading-arduino-mega-2560-di-linux-ubuntu

Written by sunupradana

November 20, 2011 at 1:56 am

22 Responses

Subscribe to comments with RSS.

  1. Informatif, keren, berguna banget mas 🙂

    v13k

    December 5, 2011 at 8:56 pm

    • Hi, terima kasih sudah mampir. Mari berbagi dan meneruskan informasi … karena hidup singkat ini cuma satu kali 🙂 .

      sunupradana

      December 6, 2011 at 3:46 pm

  2. Keren, kalau saya pakai DT-AVR Low Cost Micro System dgn kristal 11,0592 MHz dgn downloader DT-HiQ AVR usb dari innovative. Setingnya gimana? Terus pin A, B, C, D gimanA?

    Mohon dijelaskan agak detail, karena saya tidak begitu paham mikrokontroler.

    zhafar

    December 18, 2011 at 8:47 am

    • Hi.
      Dari beberapa downloader yang langsung didukung oleh aplikasi Avrdude (maupun downloader yang kompatibel) saya hanya menggunakan dua, yaitu USBasp & USBtinyISP. Saya tidak mencoba (karenanya tidak tahu) apakah downloader anda kompatibel dengan Avrdude.

      Seperti yang saya tulis, prinsip dasar sederhananya adalah bagaimana cara anda bisa download file hex hasil IDE ke sistem anda. Sebagai awal bisa lihat di sini:
      http://smileymicros.com/blog/2011/02/10/where-is-the-arduino-hex-file/
      http://www.arduino.cc/en/Hacking/BuildProcess
      File hex hasil “kompilasi” IDE bisa di-download dengan software & hardware apa saja ke uC yang sesuai.

      Untuk pilihan uC yang sesuai silahkan dilihat lagi di tulisan. Untuk port / pin mapping sampai sekarang belum tuntas saya coba, karena harus berbagi waktu & konsentrasi untuk menyelesaikan yang lain. Sekedar awal untuk mungkin anda bisa coba sendiri bisa di lihat di sini:
      https://pikirsa.wordpress.com/2011/11/20/pinmapping-pin-layout-arduino/

      Maaf sampai saat ini saya belum bisa menyajikan detail / menjawab semua pertanyaan. Saya share apa yang sudah bisa saya bagi. Silahkan hunting dengan Google & Bing dengan kata kunci dari tulisan & link yang ada. Selamat berburu

      sunupradana

      December 18, 2011 at 9:36 am

      • Terima kasih saya coba cari, tapi saya lihat untuk atmega16 mas menggunakan board buatan innovative. itu menngunakan setingan berikut atau bukan?

        ##############################################################

        arduino_atmega16.name=Arduino-Atmega16

        arduino_atmega16.upload.protocol=stk500v2
        arduino_atmega16.upload.maximum_size=14336
        arduino_atmega16.upload.speed=57600

        arduino_atmega16.bootloader.low_fuses=0xE4
        arduino_atmega16.bootloader.high_fuses=0x98
        arduino_atmega16.bootloader.extended_fuses=0xFF
        arduino_atmega16.bootloader.path=atmega
        arduino_atmega16.bootloader.file=ATmegaBOOT_168_atmega16.hex
        arduino_atmega16.bootloader.unlock_bits=0x3F
        arduino_atmega16.bootloader.lock_bits=0x0F

        arduino_atmega16.build.mcu=atmega16
        arduino_atmega16.build.f_cpu=8000000L
        arduino_atmega16.build.core=arduino

        Regards,
        zhafar

        zhafar

        December 18, 2011 at 11:37 am

  3. Mas boleh saya minta info, pada saat menggunakan atmega16 dan 32 mas menggunakan board apa? kabel datanya apa? settingannya apa?

    Kemarin saya coba kadang mau kadang tidak, mungkin masalahnya di Win7 64bit yg saya gunakan atau di downloader DT-HiQ AVR usb dari innovative.
    Setting yg saya gunakan :

    ##############################################################
    arduino_atmega8535.name=Arduino-Test-Atmega8535

    arduino_atmega8535.upload.protocol=stk500v2
    arduino_atmega8535.upload.maximum_size=7168
    arduino_atmega8535.upload.speed=115200

    arduino_atmega8535.bootloader.low_fuses=0xEC
    arduino_atmega8535.bootloader.high_fuses=0x18
    arduino_atmega8535.bootloader.extended_fuses=0xFD
    arduino_atmega8535.bootloader.path=atmega
    arduino_atmega8535.bootloader.file=stk500boot_v2_notdefined.hex
    arduino_atmega8535.bootloader.unlock_bits=0x3F
    arduino_atmega8535.bootloader.lock_bits=0x0F

    arduino_atmega8535.build.mcu=atmega8535
    arduino_atmega8535.build.f_cpu=11059200L
    arduino_atmega8535.build.core=arduino

    arduino_atmega8535.upload.speed=115200, karena speed kabel data saya 115200

    arduino_atmega8535.build.f_cpu=11059200L, karena kristal yg saya gunakan di sistem 11059200 Hz

    Program yg saya gunakan contoh program blink dari arduino di pin 13 dan di pin 0, bbrp kali jalan.
    Tapi setelah itu tidak bisa lagi gagal di proses upload

    Pesan Errornya :
    Binary sketch size: 958 bytes (of a 7168 byte maximum)
    avrdude: verification error, first mismatch at byte 0x0110
    0x8d != 0x84
    avrdude: verification error; content mismatch

    Sewaktu berhasil, saya peroleh
    Arduino AVR
    pin0 PINA.0
    pin13 PINB.5

    Terima kasih

    zhafar

    December 19, 2011 at 7:12 am

    • Semua skrip saya copy-paste ke board.txt, supaya gampang pilih programmer nantinya. Kadang saya pakai
      atmega16_1Mhz_dalam.name=Atmega16 1 MHz internal
      kadang saya pakai pilihan
      arduino_atmega16.name=Arduino-Atmega16
      ,seingat saya bisa semuanya.

      Untuk ATmega16, seperti terlihat di foto, saya gunakan papan programmaer USBasp yang versi dua soket IC. Silahkan pelajari di situs USBasp untuk versi-versi programmer mereka. Untuk ATmega32, seperti terlihat di foto dan yang sudah anda amati, saya gunakan papan dari Innovative. Tetapi programmernya saya gunakan USBasp (versi port ISP, bukan dual soket). Saya tidak menggunakan programmer DT-HiQ. Soal pilihan setting bisa lihat kembali foto di tulisan ( http://goo.gl/DfhBi ).

      Pesan avrdude: verification error; content mismatch , AFAIK, umumnya menunjukkan gagal tulis. Kalau sistem anda (minimum system + programmer) kemudian ternyata tetap berfungsi baik dengan cara penulisan bawaannya (bukan menggunakan Arduino IDE) maka kemungkinan besar DT-HiQ tidak kompatibel dengan avrdude. Tapi ini spekulasi, saya belum mencoba sendiri. Saya tidak tahu apakah ada padanan DT-HiQ dengan nama lain di avrdude.

      Saya cuma pernah sesekali coba win7 milik teman, jadi saya sama sekali tidak paham OS itu. Apalagi jika duhubungkan dengan DT-HiQ, saya tidak/belum mengerti. Kalau anda berhasil tinkering/hacking dengan konfigurasi itu, bolehlah dibagi nanti.

      Trims juga sudah mampir, selamat tinkering -> sharing.

      sunupradana

      December 19, 2011 at 12:13 pm

  4. Hebat mas… tulisannya keren dan mencantumkan sumber serta memberi kredit kepada orang lain yang “berjasa”. Jadi terinspirasi 😀

    SIP!!

    July 27, 2012 at 7:45 pm

  5. mas saya mau tanya,
    beberapa waktu lalu saya membuat sebuah minsys atmega8 dengan crystal 16MHZ, menggunakan capacitor 22pf,
    lalu mengikuti petunjuk dari website ini, dan saya melakukan konfigurasi pada board.txt yang ada pada hardware,
    konfigurasinya sbb,

    atmega8usbasp.name=Arduino USBasp

    atmega8usbasp.upload.protocol=usbasp
    atmega8usbasp.upload.using=usbasp
    atmega8usbasp.upload.maximum_size=8192
    atmega8usbasp.upload.speed=19200
    -U lfuse:w:0x2f:m -U hfuse:w:0xc1:m
    atmega8usbasp.build.mcu=atmega8
    atmega8usbasp.build.f_cpu=16000000L
    atmega8usbasp.build.core=arduino

    tapi terjadi kendala ketika sudah dilakukan upload via usbasp ke minsys atmega8 saya ternyata timbul masalah, sketch yang terupload tidak bekerja secara sempurna,,

    mohon bantuannya,

    jefri

    October 10, 2012 at 4:47 pm

  6. saya mau tanya.
    saya menggunakan sismin atmega 16 dengan kristal 1200MHz.
    pi ketika saya upload malah begi katanya :

    “Binary sketch size: 1000 bytes (of a 16384 byte maximum)
    avrdude: error: could not find USB device “USBasp” with vid=0x16c0 pid=0x5dc”

    maksudnya avrdude apa ya mas?
    pada file boards.txt saya ikuti punya mas sunu tetapi cuma kristalnya aj saya ganti.

    ##############################################################

    atmega16_1Mhz_dalam.name=Atmega16 1 MHz internal

    atmega16_1Mhz_dalam.upload.using=usbasp
    atmega16_1Mhz_dalam.upload.protocol=usbasp
    atmega16_1Mhz_dalam.upload.maximum_size=16384
    atmega16_1Mhz_dalam.upload.speed=57600

    #catatan -U lfuse:w:0xE1
    #catatan -U hfuse:w:0x99

    atmega16_1Mhz_dalam.build.mcu=atmega16
    atmega16_1Mhz_dalam.build.f_cpu=1200000L
    atmega16_1Mhz_dalam.build.core=arduino

    rahmi

    February 20, 2013 at 4:39 pm

    • Maaf saya baru reply…dan maaf juga sampai sekarang ini belum bisa merekonstruksi percobaan anda. Saya belum mengutak-atik Arduino lagi, jadi saya belum bisa menjawab, nah semoga ada rekan-rekan lain yang bisa membantu.
      Kalau memang sebelum kristalnya diganti anda sudah mencoba dan berhasil, lalu setelah kristalnya diganti sistemnya gagal detect dan ketika dikembalikan lagi kristal awalnya lalu ternyata kembali berhasil, maka memang ada kemungkinan besar masalahnya ada pada kristal. Asal; change one time at a time. Dulu seingat saya, saya pernah mencoba dengan versi software arduino yang versi 1, malah gagal. Padahal untuk versi Arduino 0022 berhasil. Kasus seperti ini sepertinya pernah dibahas di beberapa forum. Lalu pernah juga mesin saya bermasalah, setelah PCnya direstart port USBnya dikenali lagi.
      Demikian, semoga bisa menjadi awal pencarian…atau malah jika sudah berhasil diatasi masalahnya mohon di-share pengalamannya. Setidaknya dibagi link ke blog anda.

      sunupradana

      February 26, 2013 at 9:04 pm

  7. saya minta info nya mas… saya nyoba bikin sendiri board atmega8, crystal yang saya pake 12Mhz… saya pake program arduino 0022, bagian yang mana yang harus saya rubah dari program arduino supaya suport dengan crystal 12Mhz.

    Setyo Wardoyo

    April 10, 2013 at 11:37 pm

  8. arduino_atmega8535.name=Arduino-Test-Atmega8535

    arduino_atmega8535.upload.protocol=stk500v2
    arduino_atmega8535.upload.maximum_size=7168
    arduino_atmega8535.upload.speed=38400

    arduino_atmega8535.bootloader.low_fuses=0xEC
    arduino_atmega8535.bootloader.high_fuses=0x18
    arduino_atmega8535.bootloader.extended_fuses=0xFD
    arduino_atmega8535.bootloader.path=atmega
    arduino_atmega8535.bootloader.file=stk500boot_v2_notdefined.hex
    arduino_atmega8535.bootloader.unlock_bits=0x3F
    arduino_atmega8535.bootloader.lock_bits=0x0F

    arduino_atmega8535.build.mcu=atmega8535
    arduino_atmega8535.build.f_cpu=16000000L
    arduino_atmega8535.build.core=arduino

    mas, mau tanya, file stk500boot_v2_notdefined.hex di arduino_extras yg saya download diatas kok ga ada ya? yang ada stk500boot_v2_bahbots1284.hex dan stk500boot_v2_mega2560.hex. jadi untuk ATmega8535 pake file hex yang mana?
    thanks jawabannya ^^

    reno

    July 21, 2013 at 2:39 pm

  9. wah mantap ini mas

    anotherorion

    April 1, 2014 at 6:16 pm

  10. nice post mas,
    bila berkenan mampir ke blog saya

    Suwardana

    March 3, 2015 at 5:23 am

  11. Klo pakai windows bisa nggak.trus cara compile ke hardwere gmana

    auliyah

    December 15, 2015 at 6:36 am

  12. mas maaf saya nuwbie, kalo pake at89s51/52 itu gimana??

    agum

    February 12, 2016 at 12:09 am


Leave a comment