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.

Saturday, June 26, 2010

Genius iSlim 310 Webcam



Beberapa waktu yang lalu, saya membeli webcam Genius iSlim 310 yang murah (sekitar Rp. 145.000,00) untuk memperlengkapi laptop saya yang belum ada built-in webcam.Fitur dari webcam ini adalah sebagai berikut:
  • 300k pixel, resolusi VGA
  • up to 30fps
  • ada mikrofon
  • dapat diatur posisinya untuk desktop maupun laptop
  • frame format: PJPG (tetapi di website tertulis JPEG/WMV; mungkin karena menggunakan driver untuk jendela)
  • fokus manual
  • USB 1.1
  • Windows & Mac Support


Saya penasaran dengan pernyataan yang tertulis pada website Genius, bahwa webcam ini hanya disupport untuk penggunaan di Windows & Mac. Apakah di Linux, webcam ini tidak dapat digunakan?

Setelah saya coba untuk pasang ke laptop saya yang berisi Slackware64 13.1, ternyata hasilnya seperti gambar berikut ini:


Hanya mikrofonnya saja yang dikenali. Dari hasil lsusb, saya mendapatkan:


Lalu dengan VID 093Ah dan PID 2625h tersebut, saya search di internet, didapatkan, image chip yang digunakan adalah PAC7302, yang ternyata telah disupport oleh Linux Kernel dengan video driver gspca. Akan tetapi, jika diselidiki lebih lanjut, pada kernel source file pac7302.c yang terdapat pada /usr/src/linux/drivers/media/video/gspca maka tidak ada VID dan PID pada tabel usb_device_id (lihat tabel berikut ini), sehingga, walaupun driver telah ada, webcam tersebut tetap tidak dikenali.

/* -- module initialisation -- */
static const struct usb_device_id device_table[] __devinitconst = {
    {USB_DEVICE(0x06f8, 0x3009)},
    {USB_DEVICE(0x093a, 0x2620)},
    {USB_DEVICE(0x093a, 0x2621)},
    {USB_DEVICE(0x093a, 0x2622), .driver_info = FL_VFLIP},
    {USB_DEVICE(0x093a, 0x2624), .driver_info = FL_VFLIP},
    {USB_DEVICE(0x093a, 0x2626)},
    {USB_DEVICE(0x093a, 0x2628)},
    {USB_DEVICE(0x093a, 0x2629), .driver_info = FL_VFLIP},
    {USB_DEVICE(0x093a, 0x262a)},
    {USB_DEVICE(0x093a, 0x262c)},
    {}
};
MODULE_DEVICE_TABLE(usb, device_table);
Dari website https://patchwork.kernel.org/patch/106041/, telah tersedia patch untuk kernel sehingga webcam ini dikenali oleh sistem.
diff --git a/Documentation/video4linux/gspca.txt b/Documentation/video4linux/gspca.txt
index f13eb03..f9b9d32 100644
--- a/Documentation/video4linux/gspca.txt
+++ b/Documentation/video4linux/gspca.txt
@@ -253,6 +253,7 @@ pac7302  093a:2620 Apollo AC-905
 pac7302  093a:2621 PAC731x
 pac7302  093a:2622 Genius Eye 312
 pac7302  093a:2624 PAC7302
+pac7302  093a:2625 Genius iSlim 310
 pac7302  093a:2626 Labtec 2200
 pac7302  093a:2628 Genius iLook 300
 pac7302  093a:2629 Genious iSlim 300
diff --git a/drivers/media/video/gspca/pac7302.c b/drivers/media/video/gspca/pac7302.c
index 2a68220..7c0f265 100644
--- a/drivers/media/video/gspca/pac7302.c
+++ b/drivers/media/video/gspca/pac7302.c
@@ -1200,6 +1200,7 @@ static const struct usb_device_id device_table[] __devinitconst = {
 {USB_DEVICE(0x093a, 0x2621)},
 {USB_DEVICE(0x093a, 0x2622), .driver_info = FL_VFLIP},
 {USB_DEVICE(0x093a, 0x2624), .driver_info = FL_VFLIP},
+ {USB_DEVICE(0x093a, 0x2625)},
 {USB_DEVICE(0x093a, 0x2626)},
 {USB_DEVICE(0x093a, 0x2628)},
 {USB_DEVICE(0x093a, 0x2629), .driver_info = FL_VFLIP},
Patch tersebut dicopy dari website tersebut, lalu disimpan pada suatu file yang diberi nama, misalnya: patch-genius-islim-310, dan diletakkan dalam directory /usr/src. Selanjutnya, saya mendownload kernel source 2.6.34 dan extract ke /usr/src. Sebagai catatan, versi kernel yang digunakan tidak harus versi 2.6.34, asalkan, versi kernel yang digunakan telah mensupport PAC7302 (saya tidak tahu mulai versi berapa). Beberapa langkah selanjutnya (root mode) pada Slackware64 atau Slackware 13.1 adalah sebagai berikut:
  • pada terminal: ln -s /usr/src/linux/linux-2.6.34 /usr/src/linux
  • pada terminal: cd /usr/src/linux
  • pada terminal: patch -p1 -i ../patch-genius-islim-310
  • pada terminal: cp /boot/config-huge-2.6.33.4 /usr/src/linux/.config
  • pada terminal: make oldconfig
  • pada terminal: make xconfig atau make menuconfig (jika ingin mengganti konfigurasi)
  • pada terminal: make bzImage
  • pada terminal: cp arch/boot/x86/bzImage /boot/vmlinuz-2.6.34
  • pada terminal: make modules
  • pada terminal: make modules_install
  • pada terminal: cp System.map /boot/System.map-2.6.34
  • pada terminal: cp .config /boot/config-2.6.34
  • edit lilo.conf jika diperlukan atau buat symlink dari vmlinuz-2.6.34, System.map-2.6.34, config-2.6.34 ke vmlinuz, System.map, dan config
  • pada terminal: lilo
  • restart untuk menggunakan kernel hasil patch
Untuk versi kernel atau distro Linux yang berbeda, silakan dikonversi sendiri. Hasilnya:
Webcam telah dikenali, baik video maupun audio (mikrofon). Hasil test dengan qv4l2:
Selanjutnya, saya mencoba untuk menggunakan webcam ini dengan skype, tidak ada masalah. Masalah baru muncul ketika saya mencoba untuk membuat program sederhana menggunakan OpenCV, ternyata, OpenCV tidak mengenali format PJPG, error message:
HIGHGUI ERROR: V4L2: Pixel format of incoming image is unsupported by OpenCV
Sebagai catatan, saya menggunakan OpenCV 2.0.0. Versi terbaru dari OpenCV adalah 2.1.0. Mungkin saja, pada versi 2.1.0, format PJPG telah disupport oleh OpenCV ... belum dicoba ... Jika Anda telah mencobanya sebelum saya mencoba, mohon diinformasikan ke saya. Summary: I have bought a cheap webcam from Genius, that is, Genius iSlim 310 for my laptop that is not equipped with built-in webcam. For the features and specification of this webcam, please check this website. Unfortunately, when I connected to my laptop with Slackware64 13.1, only the audio (microphone) has been recognized (see second picture). Result of lsusb indicated that VID and PID of this webcam are 093Ah and 2625h, respectively (see third picture). The VID and PID of this webcam give the information that image chip of this webcam is PAC7302 that has been supported by current kernel but the VID and PID are not listed on usb_device_id table in pac7302.c. From https://patchwork.kernel.org/patch/106041/, I found that there is a patch for kernel to modify /usr/src/linux/drivers/media/video/gspca/pac7302.c so that the kernel can recognized the webcam when it is connected to system. The steps of patching and compiling the kernel in Slackware or Slackware64 13.1 (root mode) are:
  • copy the newest version of kernel or the version that has supported PAC7302, then extract to /usr/src. I use kernel version of 2.6.34. The last kernel version of Slackware 13.1 is 2.6.33.4
  • make symlink: ln -s /usr/src/linux/linux-2.6.34 /usr/src/linux
  • save the patch from that website as a file, for instance, patch-genius-islim-310, then save that file in /usr/src directory
  • in terminal: cd /usr/src/linux
  • in terminal: patch -p1 -i ../patch-genius-islim-310
  • in terminal: cp /boot/config-huge-2.6.33.4 /usr/src/linux/.config
  • in terminal: make oldconfig
  • in terminal: make xconfig or make menuconfig (if needed)
  • in terminal: make bzImage
  • in terminal: cp arch/boot/x86/bzImage /boot/vmlinuz-2.6.34
  • in terminal: make modules
  • in terminal: make modules_install
  • in terminal: cp System.map /boot/System.map-2.6.34
  • in terminal: cp .config /boot/config-2.6.34
  • edit lilo.conf if needed or make symlink from vmlinuz-2.6.34, System.map-2.6.34, and config-2.6.34 to vmlinuz, System.map, and config respectively
  • in terminal: lilo
  • restart system for activating patched kernel 
Note that if you use different Linux distribution, different kernel version, and/or different boot loader, please convert yourself the steps above. The result of patched kernel is the system can recognized this webcam (see fourth picture). I have tested on qv4l2 (see fifth and sixth pictures)and skype, so far so good. However, when I tried to access the webcam from my own program that use OpenCV Library v.2.0.0, there was an error message that told if the PJPG is unsupported by OpenCV:
HIGHGUI ERROR: V4L2: Pixel format of incoming image is unsupported by OpenCV
I have not tried for OpenCV 2.1.0 yet. I will try it later if I have a chance. Please tell me if you have tried it.

Thursday, June 17, 2010

OpenOffice.org 3.2.1 for Slackware64

Bagi pengguna Slackware64, kita dapat menggunakan OpenOffice versi 64-bit yang telah tersedia. Caranya amat sangat mudah. Anda hanya perlu mengerjakan beberapa langkah berikut ini:
  1. Download OpenOffice.org 3.2.1 versi 64-bit di sini.
  2. Download SlackBuild script di sini.
  3. Extract compressed SlackBuild script openoffice.org.tar.gz (tar -xvzf openoffice.org.tar.gz) maka akan muncul directory openoffice.org
  4. Copy atau move file OOo_3.2.1_Linux_x86-64_install-rpm-wJRE_en-US.tar.gz ke dalam directory tersebut pada langkah 3.
  5. Dengan working directory openoffice.org dan user root, jalankan script openoffice.org.SlackBuild (./openoffice.org.SlackBuild).
  6. Jika tidak ada error, maka Anda akan mendapatkan file /tmp/openoffice.org-3.2.1_en_US-x86_64-1_SBo.tgz
  7. Jalankan upgradepkg --install-new /tmp/openoffice.org-3.2.1_en_US-x86_64-1_SBo.tgz (berlaku untuk install baru maupun upgrade).
  8. Done.
Sangat mudah bukan?


Summary:
For anyone that use Slackware64, you can install and use OpenOffice.org 3.2.1 64-bit version that has been ready to be used very easily. You only have to do following steps:
  1. Download OpenOffice.org 3.2.1 64-bit version here.
  2. Download SlackBuild script here.
  3. Extract compressed SlackBuild script openoffice.org.tar.gz (tar -xvzf openoffice.org.tar.gz) then you will see openoffice.org directory
  4. Copy or move OOo_3.2.1_Linux_x86-64_install-rpm-wJRE_en-US.tar.gz into that directory.
  5. Make sure the working directory is openoffice.org and as root user, run the script openoffice.org.SlackBuild using this command: ./openoffice.org.SlackBuild
  6. If no error found, then you will get /tmp/openoffice.org-3.2.1_en_US-x86_64-1_SBo.tgz
  7. Run upgradepkg --install-new /tmp/openoffice.org-3.2.1_en_US-x86_64-1_SBo.tgz for installing or upgrading OpenOffice.org to your system.
  8. Done.

Piece a cake, isn't it?

Thursday, April 8, 2010

Slack-ID Magazine

Sebenarnya sudah terlambat untuk menuliskan ini, tetapi, karena di mailing list id-slackware masih ada yang bertanya, lebih baik saya tuliskan saja di blog saya supaya yang membaca blog saya memperoleh informasi ini.


Pada bulan Desember 2009 yang lalu, telah diterbitkan edisi perdana dari majalah elektronik "Slack-ID", suatu majalah tentang Slackware dalam bahasa Indonesia yang ditulis oleh komunitas id-slackware. Tujuan dari majalah ini adalah untuk memberikan informasi tentang slackware kepada komunitas slackware di Indonesia, sebagai wadah untuk saling berbagi ilmu. Majalah ini tidak gratis. Hanya saja, untuk edisi perdana, diedarkan gratis; Anda bisa mendownload dari http://daunsalam.net/slackid.htm. Untuk edisi selanjutnya, Anda dapat memperolehnya dengan berkontribusi dana sebesar Rp. 10.000,00 per edisi. Seluruh dana yang diperoleh tidak dipakai untuk redaksi majalah ini, tetapi akan disumbangkan untuk membantu kelangsungan proyek resmi Slackware yang dipimpin oleh Patrick Volkerding.


Summary:
On December 2009, there are new release of Indonesian Slackware Magazine, "Slack-ID", an Indonesian magazine that talk about Slackware written by Indonesian Slackware Community. The aim of this magazine is to share information about Slackware for Indonesian Slackware community. For first edition, this magazine is free, you can download it from http://daunsalam.net/slackid.htm. However, for next editions, you have to pay the cost of Ro. 10.000,00 before you can download it. All of money earned from you will be sent to official Slackware Maintainer, Patrick Volkerding, for supporting him to maintain Slackware Project.

Saturday, November 28, 2009

New Project: Digital Music Studio on Slackware

Sebenarnya, sejak tahun lalu, saya ingin memulai projek ini, tetapi, karena kesibukan dan belum terlalu diperlukan, akhirnya, saya tunda. Namun, pada pertengahan bulan November ini, karena kebutuhan untuk aransemen lagu-lagu untuk acara perayaan Natal di gereja --kebetulan lagunya berjibun banyaknya dan aransemennya sangat kompleks, bahkan ada 5 lagu dengan beda rhythm style, tempo, dan nada dasar (variasi overtone dan undertone) yang dimainkan medley, sehingga susah jika mengandalkan hafalan karena waktu latihan terbatas-- mau tidak mau akhirnya saya mulai saja projek ini. Sebenarnya juga ... :) ... bisa pakai distro yang khusus untuk digital studio seperti 64Studio turunan debian, Ubuntu Studio, dan lainnya, tapi, karena saya cinta Slackware ... :) ... maka saya berusaha membuat Slackware ready untuk Digital Studio. Langkahnya cukup panjang, tapi sekarang ini Slackware64 di Laptop saya mulai menjadi digital studio saya, walaupun, masih ada yang belum saya eksplore; misalnya: waktu saya coba hubungkan RD-700SX ke Laptop via USB (Midi), masih belum lancar, dll. Yang sudah OK adalah penggunaan hydrogen untuk drum programming. Ada lagu yang sudah pakai hydrogen, untuk membantu pemain drum di grup saya dan untuk "mempercantik" lagu, yang kebetulan cenderung Ballad.

Itu dulu yang bisa saya ceritakan ... Semoga akhir Desember nanti saya bisa cerita lebih banyak, mulai dari patching kernel, instalasi software, sampai pada aplikasinya di gereja.

Summary:
Since last year, I wanted to start this project, unfortunately, I had a lot of job to do so that I decided to postpone the project. However, in the mid of this month (November), I needed to write and analyze my song arrangements that I have been worked for this Christmas in the church. The arrangements are very complex; many songs have to play and there are 5 songs that have to play in medley with different rhythm styles, pitch, and tempo. Actually, nowadays, there are some distros that are built for digital studio such as 64Studio, Ubuntu Studio, etc. But, I love Slackware ... :) ... so that I will try to make Slackware64 on my Laptop to accommodate ideal system resources for digital studio. Today, I can use my Laptop, with Slackware64 running on it, as digital studio, but I have not explored all features and still get some problems such as connection problem between RD-700SX and Laptop via USB (Midi). I have used hydrogen, a drum programming software, for helping my drummer playing in a ballad style's song.

That's all that I can share now ... I hope, I can share more details from patching the kernel, software compilation and installation, until the application of digital studio in the church.

Thursday, October 29, 2009

Opini: Menggunakan Linux dan Open Source Software adalah suatu pilihan

-- For English readers, please apologize me ... I wrote this article in Indonesian only --

Artikel ini merupakan opini saya tentang penggunaan Linux dan Open Source Software (OSS) yang adalah pilihan bagi masing-masing individu. Diawali dengan 5 butir pemikiran pribadi berdasarkan pengalaman pribadi saya, saya menyimpulkan bahwa pilihan untuk menggunakan Linux dan OSS tidak dapat dipaksakan, tetapi, walaupun begitu, bagi komunitas pengguna Linux dan OSS, jika kita tidak mengenalkan Linux dan OSS pada komunitas bukan pengguna Linux dan OSS, bagaimana mereka bisa memilih untuk menggunakan Linux dan OSS? Tidak kenal Linux dan OSS, pasti tidak akan memilih Linux dan OSS.

Beberapa waktu yang lalu, saya pernah didebat oleh beberapa rekan kerja saya tentang keuntungan penggunaan Linux dan OSS seperti OpenOffice.org, Blender, Gimp, dll, dalam aplikasi sehari-hari. Mereka beropini, menggunakan Linux dan OSS itu sedikit untungnya tetapi banyak susahnya. Mereka mencontohkan jika mereka ingin menginstall program harus selalu memperhatikan dependencies dari program tersebut; belum lagi masalah konfigurasi yang "njlimet". Selain itu, upgrade programnya juga terlalu sering, sehingga cukup merepotkan. Lalu, mereka membandingkan dengan penggunaan sebuah propriatery operating system dan propriatery software-software lain yang sangat terkenal dan banyak digunakan. Menurut mereka, banyak sekali kemudahan-kemudahan yang dialami seperti instalasi program baru yang sangat mudah dan upgrade yang sangat jarang. Salah satu statement mereka adalah "Hidup kok dibuat susah ... yang gampang-gampang saja ... ngapain susah-susah pakai Linux dan OSS padahal ada yang gampang ..."

Didebat seperti itu, saya, yang sejak akhir tahun 2003 telah secara total menggunakan Linux dan OSS, tidak langsung mendebat keras, tetapi, saya mulai menjelaskan, paling tidak, pemikiran dan opini saya tentang Linux dan OSS, sebenarnya apa sih alasan saya menggunakan Linux dan OSS ...

Pertama, dan juga tidak bisa ditawar-tawar lagi, masalah lisensi. Sebagian besar propriatery operating system dan software dijual dalam harga yang relatif mahal, terutama buat saya. Bisa-bisa, gaji saya sebulan habis untuk beli software ... itupun cuma dapat beberapa software ... Kalau membajak, sudah pasti, melanggar UU HAKI. Nah, solusi bagi siapa saja yang tidak berduit banyak dan ingin tidak melanggar UU HAKI, hanya satu: menggunakan Linux dan OSS. Dengan biaya yang relatif tidak mahal, kita bisa menggunakan Linux dan OSS dengan bebas, dalam koridor lisensi OSS seperti GPL, dsb.

Kedua, berdasarkan pengalaman saya, penggunaan Linux dan OSS membuat penghematan kapasitas hard disk yang sangat luar biasa. Sewaktu masih menggunakan propriatery operating system dan software, saya membutuhkan kapasitas hard disk minimal 20GB, dan itu sangat cepat "habis" jika banyak program yang diinstall. Bahkan, saya pernah mendengar keluh-kesah teman saya, kalau hard disk yang 160GB saja sekarang ini sudah tidak "layak" digunakan lagi karena propriatery operating system dan software yang baru sudah sangat "boros". Ketika saya beralih ke Linux dan OSS, kapasitas hard disk yang saya gunakan untuk operating system dan software tidak lebih dari 12 GB; itu sudah super sangat banyak OSS yang saya install pada Laptop saya. Sisanya, bisa "foya-foya" untuk data.

Ketiga, Linux dan OSS relatif "ringan", relatif tidak banyak menyedot resources PC/Laptop. Propriatery software dan operating system yang baru rata-rata mensyaratkan spesifikasi hardware yang sangat tinggi, entah itu prosesornya atau kapasitas RAM; sekarang ini, sebagian besar mensyaratkan penggunaan minimal prosesor sekelas Pentium 4 dan RAM 1GB, itupun dengan konfigurasi hardware minimal, sangat terasa "lemot"-nya (lemot = lambat). Untuk Linux dan OSS, spesifikasi hardware yang dibutuhkan lebih rendah dari itu; bisa saja prosesor sekelas Pentium II atau III, RAM cuma 512MB (itu jika menggunakan KDE atau Gnome). Bahkan, Linux dan OSS, beberapa masih bisa jalan pada komputer tua; tentu saja jangan menggunakan KDE atau Gnome :) ... Dari penjelasan tersebut, PC/Laptop yang berspesifikasi tinggi --jika menggunakan propriatery operating system dan software ternyata performance-nya biasa-biasa saja-- pasti akan terasa cepat, dengan kata lain, performance-nya akan "sip" jika menggunakan Linux dan OSS, untuk mengerjakan pekerjaan yang levelnya sama, dengan hasil yang sama pula ... so pasti ... hemat waktu mengerjakan dan tidak perlu jengkel menunggu loading software :) ...

Keempat, juga berdasarkan pengalaman saya, penggunaan Linux dan OSS akan membuat penggunanya semakin mengerti proses yang terjadi saat booting, eksekusi program, cara kerja operating system, cara kerja driver, konsep networking, konsep multi user, bahkan, jika pengguna mempunyai skill programming yang baik dan mencoba untuk mengeksplorasi source code dari OSS maka pengguna tersebut akan mendapatkan banyak sekali pengetahuan yang tidak ternilai harganya untuk pengembangan diri. Saya, sebagai seorang dosen, sering mendapatkan hal-hal baru yang dulunya belum pernah saya ketahui, dan pengetahuan baru itu dapat memperkaya saya saat saya mengajar. berdiskusi, serta membimbing mahasiswa-mahasiswa saya dalam hal Arsitektur Komputer, Programming, Networking, dan Embedded System. Hal inilah yang terus-menerus memacu saya untuk mengoprek Linux dan OSS.

Kelima, yang ini akan terasa sangat idealis, penggunaan Linux dan OSS tidak membuat saya terikat pada suatu perusahaan atau sekelompok orang yang eksklusif, tertutup, dan berorientasi total pada profit. Memang, dalam dunia industri dan perdagangan, profit itu yang terutama dan pasti ada usaha-usaha khusus untuk "mengamankan" profit, misalnya, dengan cara meng-"close" akses-akses yang dapat mengurangi peningkatan profit seperti menutup source code, memasang dongle hardware, dsb. Itu wajar. Akan tetapi, sebagai anggota suatu komunitas sosial, apa salahnya jika share kepada orang lain yang memang membutuhkan tetapi mengalami keterbatasan untuk mendapatkan. Pemikiran saya, misalnya, suatu perusahaan pengembang software membebaskan penggunaan software untuk kalangan pelajar dan organisasi sosial, perusahaan tersebut masih tetap dapat memperoleh profit pada beberapa waktu yang akan datang; karena pelajar yang terbiasa menggunakan software tersebut, saat bekerja di suatu perusahaan lain, pasti akan menyarankan atasannya untuk menggunakan software tersebut, sehingga perusahaan tersebut akan membeli lisensi penggunaan software dari perusahaan pengembang software itu --> ini kan menghasilkan profit! Contoh lain, karena pelajar tersebut telah menyarankan penggunaan software tersebut, perusahaan tempat pelajar tersebut bekerja bisa membeli jasa technical support dari perusahaan pengembang --> profit lagi! Jadi, perusahaan-perusahaan pengembang software yang tidak sekedar mengutamakan profit, kelihatannya rugi di awal-awal, tetapi, setelah beberapa waktu lamanya, mereka akan menuai profit yang besar. Konsep inilah yang diterapkan oleh perusahaan-perusahaan pengembang OSS dan free software seperti Trolltech (kelihatannya sekarang telah diakuisisi oleh Nokia) dengan Qt-nya, RedHat dengan RHEL, Fedora-nya, Novell dengan SUSE Enterprise-nya, Sun dengan Java, Open Solaris, OpenOffice.org, Virtual Box-nya, dsb. Perusahaan-perusahaan tersebut tidak bangkrut gara-gara share dengan komunitas, malahan, mereka semakin unjuk gigi sehingga perusahaan pengembang propriatery software perlu mewaspadai mereka dalam persaingan industri software.

Nah ... berdasarkan kelima pemikiran/opini saya itu, saya menyimpulkan bahwa sebenarnya penggunaan Linux dan OSS itu merupakan pilihan individu, tidak dapat dipaksakan, karena tiap individu mempunyai pemikiran sendiri-sendiri tentang apa yang dianggap baik dan bermanfaat. Bagi yang suka menggunakan propriatery software, silakan saja, asal tidak melanggar hukum. Bagi pengguna OSS, silakan menggunakan dengan bebas dalam koridor lisensi yang biasanya disebutkan pada dokumen license.txt.
Logikanya, bagaimana mereka bisa memilih menggunakan OSS jika mereka tidak mengenal OSS?
Akhir kata, bagi saya dan pengguna OSS, dalam mempopulerkan OSS, kita perlu mengenalkan OSS kepada semua pengguna propriatery software, minimal, beri kesempatan kepada mereka untuk "mencicipi" OSS, selanjutnya terserah mereka ... Logikanya, bagaimana mereka bisa memilih menggunakan OSS jika mereka tidak mengenal OSS? Hal ini yang saya lakukan di laboratorium. Mahasiswa semester dua saya kenalkan dengan Linux dan OSS; mereka menggunakannya dalam waktu satu semester. Selanjutnya ... terserah mereka. Berdasarkan pengalaman saya, paling tidak sekitar 30% - 40% dari mereka, tertarik untuk mencoba Linux dan OSS lebih dalam. Langkah saya juga diikuti oleh dosen-dosen dari jurusan, fakultas, dan departemen lain yang juga mengenalkan OSS untuk kegiatan perkuliahan dan laboratorium, seperti penggunaan R untuk statistik, Maxima serta wxMaxima untuk matematika, OpenOffice.org untuk dokumentasi laporan mahasiswa, NetKit dan ns-2 untuk networking, dan Scilab untuk aplikasi signal processing.

Wednesday, October 28, 2009

3-in-1 USB Converter

Berawal dari permasalahan yang dialami oleh 2 mahasiswa saya, yang pada saat itu membutuhkan suatu ARM Bootloader yang bisa digunakan pada Laptop --ARM Bootloader yang tersedia adalah ARM Bootloader yang menggunakan Serial Port (COM Port), padahal port ini sudah tidak ada lagi pada Laptop--, saya mulai mendesain suatu ARM Bootloader yang menggunakan USB Port menggunakan IC FT232RL keluaran FTDI Limited. Dalam pengembangan desain, saya mulai berpikir untuk mengakomodasi beberapa kebutuhan dasar mahasiswa saya yang lain dan juga dosen-dosen yang lain, yang mana mereka membutuhkan suatu converter dari USB ke UART untuk sistem minimum berbasis mikrokontroler atau mikroprosesor serta converter dari USB ke ZigBee untuk aplikasi image processing pada mobile robot yang dikendalikan dari Laptop secara wireless. Akhirnya, jadilah suatu alat yang saya beri nama 3-in-1 USB Converter, yang seharusnya dapat digunakan pada semua platform (sudah dites dan dapat digunakan pada platform Linux dan Windows). Untuk diketahui bahwa dalam mendesain converter ini, saya secara total menggunakan Open Source Software yang berjalan pada sistem operasi Linux, seperti: gEDA, pcb, minicom, Code::Blocks, wxWidgets, dan libftdi. Hal ini membuktikan bahwa Open Source Software sudah berkembang dengan pesat dan dapat diandalkan dalam aplikasi sehari-hari, mulai dari aplikasi level designer, developer, sampai dengan aplikasi level end-user.

Skema rangkaian dari 3-in-1 USB Converter dapat dilihat pada gambar berikut. Sebagai catatan, hanya gunakan 1 fungsi untuk 1 penggunaan, maksudnya, jika converter ini digunakan sebagai USB to UART Converter, sebaiknya jangan digunakan sebagai USB to ZigBee Converter atau ARM Bootloader. Hal ini dikarenakan jalur komunikasi pada IC FT232RL digunakan secara shared pada ketiga fungsi ini; converter ini hanya menggunakan 1 IC FT232RL dan IC ini hanya mempunyai 1 channel jalur komunikasi. Ada 3 jumper yang digunakan untuk konfigurasi seperti tegangan supply dari I/O --J2-- (+5V atau +3.3V), asal tegangan supply --J1-- (USB-powered atau self-powered), dan aktivasi ARM Bootloader --J3--.

Desain menggunakan gEDA dan pcb:




Hasil akhir dari 3-in-1 USB Converter ini dapat dilihat pada gambar berikut:





Pesan dmesg saat 3-in-1 USB Converter dihubungkan pada Laptop:



Setting minicom dan tampilan pada minicom saat ujicoba:



 

Program ujicoba yang di-develop menggunakan Code::Blocks dan library wxWidgets dan libftdi:





Jika Anda tertarik untuk memperoleh 3-in-1 USB Converter yang siap pakai, silakan menghubungi saya via e-mail untuk informasi lebih lanjut. Alamat e-mail saya dapat dilihat pada Profile saya.

Referensi:

Summary:
When I see that 2 of my students had difficulty in their undergraduate final project since there was no USB ARM Bootloader that could be used, I decided to develop USB ARM Bootloader using IC FT232RL, manufactured by FTDI Limited. In next step of development, I tried to accomodate the needs of my other students and my colleagues that need USB to UART converter for serial communication between PC/Laptop and microprocessor- or microcontroller-based minimum system and USB to ZigBee converter for image processing applied to mobile robot system that is controlled by PC/Laptop wirelessly. Please note that I totally used Open Source Software, such as gEDA, pcb, minicom, Code::Blocks, wxWidgets, dan libftdi, in phase of development and testing of the 3-in-1 USB Converter.

There are some notes:
  • You cannot use all functions in one time, because FT232RL has only one channel. I shared this channel for all functions. 
  • There are 3 jumpers for configuration: J1 for USB-powered or self-powered I/O selector, J2 for selecting +5V or +3.3V supply of I/O, and J3 for activating ARM Bootloader function.

You can look all of pictures above for schematics, the product, etc. For more information about this product, please do not hesitate to contact me via e-mail (see my profile).

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.