Note for English Readers

If I write the articles in Indonesian, I will write a summary in English so that you can read my articles too. After you read the summary and you feel that you need more information about that, please do not hesitate to contact me via e-mail that can be found in my profile.

Thank you for reading my blogs.
Showing posts with label AVR. Show all posts
Showing posts with label AVR. Show all posts

Thursday, October 15, 2009

Slackbuild script untuk AVR Development Software

Bagi pengguna Linux dan ingin bereksperimen dengan mikrokontroler AVR, sekarang ini Anda sudah dapat bereksperimen secara penuh pada platform Linux. Beberapa development software yang dibutuhkan adalah kelompok avr-binutils, avr-gcc, avr-gdb, avr-libc, dan avrdude. Sebagai firmware downloader, Anda dapat menggunakan USBasp yang didesain oleh Thomas Fischl, yang juga sudah saya bahas pada blog saya ini. Untuk para Slackers yang ingin mencoba mikrokontroler AVR, Anda dapat menginstall semua development software dari mikrokontroler AVR dengan Slackbuild script. Anda tinggal mendownload script dan source file lalu jalankan script-nya.

Yang telah saya kerjakan dengan Slackbuild script, setelah selesai mendownload semuanya, saya mencari versi terbaru pada saat itu. Ternyata, hanya Slackbuild script untuk gcc saja yang perlu diedit karena saya memutuskan menggunakan gcc versi 4.4.1 daripada gcc versi 4.3.4. Jadi, saya edit baris ini dari avr-gcc.SlackBuild:

VERSION=${VERSION:-4.3.4}

menjadi:

VERSION=${VERSION:-4.4.1}

Untuk semua Slackbuild script, karena saya menggunakan Slackware64 13.0, maka baris ini:

ARCH=${ARCH:-i486}

saya edit menjadi:

ARCH=${ARCH:-x86_64}

Catatan: jika Anda menggunakan Slackware 13.0, Anda tidak perlu mengedit baris tersebut.

Setelah selesai menjalankan semua Slackbuild scripts, saya mendapatkan paket-paket berikut ini:
  • avr-binutils-2.19.1-x86_64-1_SBo.tgz
  • avr-gcc-4.4.1-x86_64-1_SBo.tgz
  • avr-gdb-6.8-x86_64-1_SBo.tgz
  • avr-libc-1.6.7-x86_64-2_SBo.tgz
  • avrdude-5.8-x86_64-1_SBo.tgz
yang selanjutnya saya install menggunakan command installpkg.

Referensi:


Summary:
For Slackers that want to make experiments on AVR microcontrollers, now, you have all of AVR Development Software running in your Slackware. You can use Slackbuild scripts to build installer packages of these: avr-binutils, avr-gcc, avr-gdb, avr-libc, and avrdude. The only script that you have to edit if you want to build newer version is avr-gcc.SlackBuild, please edit the following line:

VERSION=${VERSION:-4.3.4}

become this:

VERSION=${VERSION:-4.4.1}

For Slackware64 users, as usual, you have to change the following line:

ARCH=${ARCH:-i486}

to be like this line:

ARCH=${ARCH:-x86_64}

The packages that I have been built using Slackbuild scripts:
  • avr-binutils-2.19.1-x86_64-1_SBo.tgz
  • avr-gcc-4.4.1-x86_64-1_SBo.tgz
  • avr-gdb-6.8-x86_64-1_SBo.tgz
  • avr-libc-1.6.7-x86_64-2_SBo.tgz
  • avrdude-5.8-x86_64-1_SBo.tgz
then I installed them using installpkg command.

Wednesday, October 14, 2009

USBasp

USBasp adalah sebuah USB In-circuit programmer untuk mikrokontroler AVR yang didesain oleh Thomas Fischl. Penggunaannya cukup mudah dan dapat dijalankan pada platform Linux, Mac OS X, maupun Windows. USBasp dapat men-download firmware ke internal flash dari mikrokontroler AVR yang menjadi targetnya dengan kecepatan maksimal 5 kB/s dan tersedia jumper untuk men-set USBasp agar support mikrokontroler AVR target yang mempunyai low clock speed (< 1.5MHz); biasanya, jika kita membeli mikrokontroler AVR yang baru, by default, kebanyakan AVR tersebut di-set menggunakan internal clock frekuensi 1MHz (untuk mengubah setting clock ini, Anda harus memprogram LFUSE, HFUSE, dan/atau EFUSE; silakan lihat datasheet dari mikrokontroler AVR yang digunakan untuk lebih rincinya).

Berdasarkan skema rangkaian dari Thomas Fischl, saya membuat artwork PCB untuk USBasp yang nantinya saya, beserta Laboratorium Otomasi dan Sistem Embedded, Jurusan Teknik Elektro, Universitas Surabaya, gunakan untuk men-download firmware ke internal flash dari mikrokontroler AVR, seperti untuk praktikum mata kuliah Mikrokontroler dan proyek pembuatan intelligent robot. (hardware robot yang digunakan pada Ubaya Robosoccer Competition 2009 dikembangkan menggunakan mikrokontroler AVR). Program yang saya gunakan untuk menggambar ulang skema rangkaian serta membuat artwork PCB-nya adalah gEDA dan pcb, suatu GPL'ed Electronic Design Automation Suite yang sangat layak diandalkan, dan terlebih lagi (dan yang paling penting), program ini berjalan di atas platform Linux. Gambar berikut ini menunjukkan tampilan gEDA dan pcb untuk pembuatan USBasp.



Setelah dicetak dan disolder seluruh komponennya, serta, firmware USBasp telah di-download-kan ke ATmega8 yang digunakan pada USBasp ini, maka hasil akhirnya dapat dilihat pada gambar berikut ini:



USBasp in action menggunakan AVRDude sebagai ISP Software:



Jika Anda tertarik untuk memperoleh USBasp yang siap pakai atau masih dalam bentuk belum disolder, silakan menghubungi saya via e-mail untuk informasi lebih lanjut. Alamat e-mail saya dapat dilihat pada Profile saya.

Solusi jika USBasp tidak dapat digunakan oleh user biasa di Linux
Jika pada saat Anda menggunakan USBasp sebagai user biasa di Linux, ternyata USBasp Anda tidak dapat digunakan, tetapi saat Anda sebagai root atau superuser, ternyata USBasp tersebut dapat digunakan, berarti Anda sebagai user biasa tidak mempunyai hak akses ke USBasp. Solusi untuk masalah ini cukup mudah. Anda harus membuat file baru dengan nama 99-usbasp-rules pada direktori /lib/udev/rules.d yang isinya sebagai berikut:

# allow users to claim the device
ACTION=="add" SUBSYSTEM=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", MODE="0664", GROUP="plugdev"

untuk idVendor dan idProduct dapat Anda ketahui melalui command: lsusb (dengan catatan Anda sebagai root atau superuser dan USBasp Anda terhubung ke PC/Laptop). Setelah file tersebut di-save, re-plug USBasp Anda dan Anda akan mempunyai hak akses ke USBasp. Jangan lupa, pastikan user biasa tersebut telah menjadi group member dari plugdev.

Referensi:


Summary:
This article shows USBasp, a USB in-circuit programmer for Atmel AVR Controllers, designed by Thomas Fischl. I have created PCB artwork for USBasp using gEDA and pcb, a GPL'ed Electronic Design Automation Suite that is running on Linux, then have applied it to all activities/projects related to AVR microcontroller in my laboratory,  such as laboratory session for my students and intelligent robot developments.

If your USBasp cannot be used by user, but it can be detected and used by root, you have to add an udev rule in directory /lib/udev/rules.d through these steps (as a superuser or root):
  • create new file: 99-usbasp-rules 
  • add these lines below to the file (you can obtain idVendor and idProduct by lsusb command as root and make sure your USBasp connected to your PC/laptop):
ACTION=="add" SUBSYSTEM=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", MODE="0664", GROUP="plugdev"
  • save the file
  • copy it to /lib/udev/rules.d (note: you must be a root to do this)
  • re-plug your USBasp
Now, you can use your USBasp in user mode.