Friday, June 10, 2016

ASPduino

Baca sampai habis dulu ya. Unduh di sini
ARDUINO UNO R3 menggunakan mikrokontroler ATmega16U2 sebagai fungsi USB to serial. Karena mikrokontroler maka fungsinya juga dapat di ubah sebagai downloader. Downloader tersebut dapat digunakan untuk menulis bootloader ATmega328P pada ARDUINO tersebut dan juga dapat digunakan untuk download mikrokontroler AVR yang lain. ATmega16U2 diprogram sebagai:
  1.  ATmega16U2 berfungsi sebagai USB to serial seperti lazimnya ARDUINO UNO R3
  2.  Jika dibutuhkan, ATmega16U2 dapat berfungsi sebagai USBasp.
Switching atara fungsi USB to serial dengan USBasp cukup dilakukan dengan mudah yaitu cukup menancapkan Konektor tanpa harus mencabut USB dari PC. Dipilihnya USBasp adalah karena dukungan software yang banyak.  Anda tidak perlu susah-susah untuk mebeli USBasp karena cukup ARDUINO UNO R3 sudah dapat difungsikan sebagai ARDUINO juga USBasp. Untuk membuatnya tambahkan dahulu header pada konektor JP2 seperti Gambar di bawah ini:



Masukan program ASPduino.hex (firmware, gratis 10x pakai) yang terlampir ke mikro ATmega16U2 ARDUINO. Anda dapat menggunakan downloader yang  ada, misalkan USBasp, USBISP atau bisa juga dengan ARDUINO yang lain. Hubungkan MISO, MOSI, SCK, RESET, GROUND dan Vcc pada ARDUINO ke USBasp. Seperti Gambar di bawah ini:



Hubungkan USBasp ke USB PC. Buka AVR programmer. Anda dapat menggunakan berbagai macam aplikasi programmer. Yang digunakan pada tutorial ini adalah PROGISP (ver 1.72).


Langkahnya adalah sebagai berikut:
  1. Buka aplikasi PROGISP
  2. Pilih mikrokontroler ATmega16U2
  3. Tekan tombol RD untuk memastikan PROGISP dapat membaca ID mikrokontroler dan memastikan bahwa mikrokontroler tersebut adalah ATmega16U2, dengan ditandai Read ID Succesfully.
  4. Pastikan yang tercentang pada check box; Chip Erase, Program FLASH dan Verify FLASH.
  5. Tekan Auto dan selesai.
Lepaskan ARDUINO UNO R3 dari USBasp lalu tancapkan pada USB PC, buka Device Manager. Pada PC akan dikenali sebagai;
- Arduino Uno (COMx) atau
-Arduino UNO R3 (COMx) atau
- Serial Port (COMx) atau apapun sebagai port serial (COM)


Lho..kok sama saja dengan ARDUINO UNO R3 sebelumnya? Apa yang berubah? Jawabannya ada di bawah. Biasakan untuk sabar ya J
Mari kita hubungkan port-port dalam ICSP dan ICSP1 seperti gambar berikut ini:



Sekarang coba anda lihat Device Manager. Lho Arduino Uno (COM5) hilang dari Device Manager. Apa kurang benar hubungan USB-nya? Sebentar coba lihat lagi. Ada hardware USBasp terdaftar pada Device Manager. Apa ARDUINO UNO R3 berubah jadi USBasp? Jawabannya BENAR. Dengan formasi hubungan pin-pin ICSP dan ICSP1 di atas ATmega16U2 berfungsi sebagai pengganti master ATmega8 dalam USBasp standard. Dan ATmega328P adalah IC mikrokontroler yang siap untuk di-diwnload.



Sekarang cabut jumper yang menghubungkan JP2.PIN2 dengan JP2.PIN4, tanpa mencabut USB dari ARDUINO UNO R3. Difinisi ARDUINO UNO R3 anda akan kembali ke USB to serial (normal) kembali. Anda dapat mencoba menancapkan kembali jemper JP2.PIN2 dengan JP2.PIN4, dan akan kembali ARDUINO UNO R3 anda berubah menjadi USBasp lagi, tanpa perlu mencabut USB, apa lagi merubah2 program ATmega16U2 lagi. COOOL kan?! J

Port JP2 dan ICSP1 sekarang menjadi Port-port USBasp.
  
  1. Pin1 ICSP1 berguna sebagai MISO
  2. Pin4 ICSP1 berguna sebagai MOSI
  3. Pin3 ICSP1 berguna sebagai SCK
  4. Pin1 JP2 berguna sebagai RESET
  5. Pin2 dan Pin4 Jika dihubungkan ARDUINO UNO R3 anda akan berubah menjadi USBasp dan jika dibiarkan terbuka akan tetap menjadi ARDUINO UNO R3
  6. Pin3 dapat digunakan menjadi GND jika akan mendownload IC mikrokontroler diluar board ARDUINO UNO R3 tersebut.

Sekarang kita coba untuk memasukan bootloader ke mikrokontroler ATmega328P baru yang belum ada bootloadernya.
  1. Hubungkan Port JP2, ICSP1 dengan ICSP seperti petunjuk di atas.


  1. Buka sketch baru. Yang dapat dipakai adalah versi 1.0 ke atas, karena di bawah versi tersebut belum mendukung USBasp. Pilih Board-nya adalah Arduino Uno dan Programmer adalah USBasp.



  1. Lalu tekan Burn Bootloader, tunggu hingga ada pesan penulisan bootloader selesai (done burning bootloader)

  1. Cabut jamper-jamper yang menghubungkan Port JP2, ICSP1 dengan ICSP. Anda tidak usah mencabut USB. Dan ARDUINO UNO R3 anda telah kembali dikenali sedagai USB to serial. ATmega328P juga telah berisi bootloader. Sekarang waktunya mencobanya. Buka sketch Blink dan Upload. Selamat berhasil… J.
 

Untuk memudahkan agar tidak harus mengingat-ingat pin apa terhubung ke pin apa, lebih mudah jika pin-pin tersebut di gabung dalam kabel konektor seperti berikut ini:


Oh iya ada yang tanya, gimana ngriping kabelnya? Gak usah susah-susah, 7 kabel jumper female to female kita dapatkan dari kabel 40pin female to female, yang menjual ketengan juga ada.
 
Ambil 7 kabel, lepaskan black housing bawannya semua. Ganti dengan 2x3 black housing dan diujung lain dengan 2x4 black housing.


Bahan yang diperlukan adalah:
  1. Kabel jamper female to female 7pcs
  2. Black housing 1x3 dua dan 1x4 dua. Jika ada lebih baik black housing 2x3 dan 2x4. Sayangnya di Indonesia tidak ada yang jual.
  3. Double tape, jika tidak ada black housing 2x3 dan 2x4.
Rangkai dua black housing 1x3 menjadi black housing 2x3 dan dua black housing 1x4 menjadi black housing 2x4. (nunggu juragan2 toped ngimpor nih barang J)
Untuk mempermudah, berikut ini peta hubungan antara black housing 2x4 dengan black housing 2x3.

Switch digunakan untuk mengubah ARDUINO UNO R3 menjadi USBasp jika dihubungkan dan USB to serial jika tidak dihubungkan. Kalo digunakan untuk download ATmega328P pada board yg sama, Gnd dan Vcc tidak harus dihubungkan.

ARDUINO UNO R3 menjadi USB to serial jika konektor 2x4pin tidak terhubung



ARDUINO UNO R3 menjadi USBasp jika konektor 2x4pin terhubung

 

Selain kepraktisan di atas, USBasp-nya punya kelemahan yaitu tidak semua aplikasi di internet dapat menulis EEPROM mikrokontroler yang akan di download, tapi jika hanya untuk download FLASH bisa. Diantaranya yang tidak bisa adalah; progisp, extremburner, khazama dan lain-lain. Sebabnya program-program tersebut mengirim 100H x byte data EEPROM yang harus di tulis pada mikrokontroler. Tentu memerlukan waktu lebih dari 1detik. Sedangkan ATmega16U2 menggunakan USB 2.0 dan memiliki timeout sekitar 260ms. Tentu akan membangkitkan timeout.

Tapi tenang saja aplikasi yang lancar menggunakan USBasp ini banyak dan mainstream, selain ARDUINO adalah program-program yang berbasis AVRDUDE. Ada avrdudess, GUI4avrdude dll. Sebabnya avrdude Cuma mengirim 4 byte data sekali tulis ke EEPROM. Bahkan jika gagal menulis 4 byte tersebut, avrdude akan menulis satu persatu EEPROM. ARDUINO berbasis pada AVRDUDES tentu lancar.
Oh ya setelah berhasil membuatnya, anda bisa menggunakan sebagai USBasp 10x gratis. Setelah itu ARDUINO UNO R3 anda akan tetap menjadi USB to serial walaupun konektor atau switch dihubungkan.  Jika ingin menggunakannya kembali anda harus memasukan Passcode. Untuk memasukan ikuti langkah-langkah berikut;
  1. ARDUINO UNO R3 anda sebagai USB to serial. Lepaskan konektor 2x4pin
  2. Buka aplikasi ASPduino yang disertakan pada paket firmware. Buka serial tempat arduino terhubung.

  1. Generate Code. Copy kode yang tampil dan kirim pesan ke https://www.facebook.com/adhopraz atau WA ke 087859746799


  1. Nanti jawaban dari saya adalah berupa kode yang dimasukan ke edit Passcode. Missal:
B01AF774A3C7B567BFC3FEE382CF729E00FA1CC1E0558D0693C1

  1. Kode tersebut masukan ke edit passcode dan tekan tombol Pass Code.

  1. Tidak langsung dimasukan pada kesempatan yang sama juga tidak apa-apa, asalkan board ARDUINO-nya sama. Siapa tahu jawaban saya baru 1-2hari. Misalkan kemarin ngirim code baru hari ini terima passcode. Langsung saja masukan passcode setelah serial terhubung dan tekan Pass Code.
 

  1. Dan hasilnya adalah:

Jika status PASS maka tidak ada batasan lagi anda menggunakannya. Simpan Pass Code yang anda terima. Satu kode akan berlaku untuk satu board dengan ATmega16U2 yang sama. Mahar Pass Code murah cuma seharga satu bungkus nasi padang @Rp10.000 beli 10 @Rp5.000.

MAJULAH EMBEDED INDONESIA





7 comments:

UnderGround or Insiders? said...

Kirim Nasi Padangnya boleh gak pak?
di sini nasi padang masi 15 rebu pak.

Anang said...

boleh antar ke rumah ya :)

TEST said...

nyimak pak,,,,

fch said...

sip...blajar om anang...

Anonymous said...

Firmware Ic atmega 16u2 arduino uno saya rusak/terhapus waktu coba pake dfu ,pake cara di atas bisakah?,Kebetulan saya punya usp(hardware)nya.terima kasih.

Anang said...

bisa.

rudiars said...

Luar biasa