Percaya nggak kalo ada Bluetooth bajakan? Yah Anda perlu membaca posting ini biar jangan kecele dan bayar mahal untuk membeli Bluetooth dongle yang salah.
Kenapa saya menulis article ini? Karena Microsoft Robotics Studio menggunakan Bluetooth untuk ngobrol dengan robot, remote control Nintendo Wii menggunakan Bluetooth, ngobrol antara PDA-robot via Bluetooth, dan membuat handphone menjadi PowerPoint remote control pun menggunakan Bluetooth. Jadi daripada patah semangat gara-gara ga bisa nyambung ke robot, wiimote, handphone, dsb., lebih baik tahu dulu memilih USB Bluetooth Dongle yang baik.
Masalahnya:
- Bluetooth Stack Problem
- Bluetooth Profile Problem
Bluetooth Stack Problem
Berikut ini adalah gambar Bluetooth Protocol Stack:
*Bluetooth Specification dapat di-download dari http://www.bluetooth.com/Bluetooth/Learn/Technology/Specifications/Default.htm
Biasanya, stack diatas dibagi menjadi hardware & software:
*)Gambar dari Thesis MSc. Per Haglund, "Bluetooth Software and Hardware Development" http://www.doc.ic.ac.uk/~pih00/thesis.pdf
Nah, terkadang kita biasa pake Bluetooth Software Stack yang ada di Windows:
Terus kita dapet USB Bluetooth yang kalo kita colokin, dengan bangganya kita bilang bahwa "USB Bluetooth gue nggak butuh driver donk..."
Well, Windows Bluetooth Stack biasanya emang cocok dengan Bluetooth dengan radio merk Broadcom.
Sedangkan yang butuh driver (alias nggak compatible dengan Windows Bluetooth Stack) biasanya merk radionya adalah Cambridge Silicon Radio (CSR) dan Integrated System Solution Corp. (ISSC). Ini berarti HCI Driver Windows emang kagak lengkap.. soalnya Broadcom itu sering dipake buat radio Bluetooth di laptop. Jadi "..ngapain cape-cape bikin driver buat yang jarang-jarang..." mungkin pikiran orang-orang di tim Windows Driver Foundation...
3 Bluetooth yang Umum di Indonesia
Kebetulan saya memiliki tiga-tiganya:
1. Bluetooth dengan "Antena" Palsu:
Ini dia, coba aja dipotek "antena"-nya, wong itu cuman plastik dan bukan antena beneran koq...
Harganya pun sekitar Rp 30 ribu-an...
Nah ini ketika dicolok ke laptop Lenovo saya, hasilnya:
Jadi ini-lah USB Bluetooth yang menggunakan radio Integrated System Solution Corp. (ISSC).
***Mengecek apakah Bluetooth Anda Bajakan***
Ya, ini Bluetooth bajakan karena:
- Pembuat bluetooth harus membayar royalti kepada Bluetooth SIG (Special Interest Group - http://www.bluetooth.com/) untuk mendapatkan Unique Address Code (BD_ADDR). Kalo manufacturer yang nggak bayar, pasti BD_ADDR nya palsu, biasanya 11:11:11:11:11:11 semua.
- Berani-beraninya dia pasang merk Billionton. Masa perusahaan sekelas Billionton nggak mampu bayar ke Bluetooth SIG sih?
Hindari dari membeli Bluetooth murah seperti ini. Soalnya di Windows, cuman BlueSoleil yang bisa ngomong ke device ini. Dan ketika kita mau beli license BlueSoleil, kita akan dihadapkan dengan:
2. Bluetooth tanpa "Antena" - versi Murah:
Ini saya beli lebih mahal dari yang bajakan, Rp 75 ribu di Ratu Plaza.
Saya beli karena ada branding Broadcom-nya di cover, dan juga karena ini nggak ada antena-nya (artinya si manufacturer bukan tukang tipu).
Terus di belakang cover-nya juga ada tulisan "Broadcom - Authorized Unique Address Code for Bluetooth Dongle". Ya iya lah, wong Broadcom Associate Member di Bluetooth SIG...
USB Bluetooth ini aman dipakai, tapi tidak bisa bekerja dengan remote control Nintendo Wii saya... emang kita udah tahu kalo Windows Bluetooth stack dodol, jadi saya coba download Broadcom Bluetooth Stack di http://www.broadcom.com/products/bluetooth_update.php
Hasilnya: Masih belum bisa juga nyambung ama remote control Nintendo Wii... :(
3. Bluetooth tanpa "Antena" -versi Mahal:
Nah, ini saya beli juga di Ratu Plaza, harganya mahal booo.. Rp 150 ribu.
Saya beli karena ini Billionton Original:
- Ada stempel garansi-nya di depan + stiker garansi di USB Dongle nya.
- USB Dongle dipegang lebih berat daripada "Billionton Bajakan" diatas.
- Billionton pake radio CSR (Cambridge Silicon Radio). Ini radio yg bagus dan di-support oleh BlueSoleil , software Bluetooth stack terbagus menurut saya.
Ini begitu dicolok akan minta driver, kecuali Anda sudah menginstal BlueSoleil. Untuk yakin bahwa ini Billionton asli, pertama cek BD_ADDR nya:
Radio CSR dan BD_ADDR nya bukan bajakan.
Begitu BlueSoleil mau di-upgrade pun bisa beli license-nya, tidak seperti Billionton bajakan diatas:
Bluetooth Profile Problem
Anda mau sambung USB Bluetooth dengan handphone, maka Bluetooth Software Anda harus support Profiles:
- HandsFree
- DUN (Dial-Up Networking), sapa tahu butuh pake Internet via handphone.
- OPP (Object Push Protocol), buat kirim-kirim vCard, dll. ke laptop.
- Mungkin yg lainnya kayak A2DP (Advanced Audio Distribution Profile), SPP (Serial Port Protocol)... tergantung kebutuhan.
Cek Bluetooth Profiles Specification untuk melihat Profiles yang bisa di-implement di Bluetooth.
Nah, masalahnya tidak semua Bluetooth Software Stack itu bagus dalam meng-implementasi beberapa Profiles.
Dengan menggunakan Windows Bluetooth Stack, saya mengalami dua masalah:
1. Waktu Robotics Studio Roadshow ke kampus-kampus, masalah mulai kelihatan di lab ITB. Ketika itu, kode Robot Speech saya jalan di laptop HP nx6125 dengan radio Broadcom dan WIDCOMM Software Stack. Sedangkan di laptop para mahasiswa yang Vista dan non-Vista, yang menggunakan Windows Bluetooth Stack, malah nggak jalan. Masalahnya, dengan laptop nx6125 saya, ketika saya connect ke Serial Port robot Lego Mindstorms NXT, logo Bluetooth di robot Lego berubah menjadi LINKED. Kode saya pun jalan karena ketika port dibuka, memang ada koneksi.
Tapi dengan laptop Vista anak-anak, dan juga di laptop Toshiba M400 saya, logo Bluetooth di robot Lego tidak berubah menjadi LINKED setelah di-pairing. Kode saya pun timeout karena tidak ada koneksi di port serial.
Jadi sepertinya Profile Serial Port di Windows Bluetooth Stack itu kayak "Sleep-mode". Setelah di-pairing, dia ga Always Connected, tapi Connect-On-Demand gitu deh...
Sedangkan di WIDCOMM Bluetooth Stack, setelah di-pairing, mode-nya Always Connected.
2. Remote Control Nintendo Wii saya harus disambung menggunakan HID (Human Interface Device) Profile. Dengan menggunakan Windows Bluetooth Stack, saya bisa connect ke Wiimote, tapi ketika mau send data, muncul exception "Device not connected".
Ini mirip fenomena Serial Port Profile diatas. Sepertinya Windows Bluetooth Stack setelah pairing akan masuk ke state "Wake-me-Up-when-You-Are-Ready"...
Jadi, inilah sekilas 3 Bluetooth Software Stack:
Bluesoleil
Profiles supported: PAN(Personal Area Networking), SPP(Serial Port Protocol), DUN(Dial-Up Networking), HID(Human Interface Device), OPP(Object Push Protocol), FTP(File Transfer Protocol), FAX, Headset, Handsfree, A2DP, AVRCP(Audio/video remote control profile, HCRP(Hardcopy Cable Replacement).
Kelebihan:
- Interface yang sangat intuitif.
Di tengah ada Planet Kuning, klik-kanan untuk Search Devices. Tiap device yg found akan di-query Service nya apa aja. Jadi setelah ketemu, bisa langsung liat device mana aja yg support SPP misalnya...
- Untuk SPP, bisa nyambung ke lebih dari 1 device. Artinya dengan 1 USB Bluetooth, saya bisa mengobrol dengan 3 robot sekaligus. Begitu juga untuk HID (1 USB Bluetooth bisa dipake untuk mouse+keyboard, 2 mouse sekaligus, dan input lainnya).
- Harganya cuman 10 Euro boo... kalo Bluetooth device Anda radio-nya CSR :)
Konklusi
Memang untuk develop aplikasi Bluetooth di Windows harus investasi di hardware (USB Bluetooth dengan radio CSR) dan software (Bluesoleil seharga 10 Euro). Namun, ini lebih baik dibandingkan dengan aplikasi yang tidak jalan pada waktu yang terbuang debugging Bluetooth...
Semoga bermanfaat!