25 Agustus 2009

DIY: Hacking SDIO GPS

Hmmmf,… dah lama saya nggak nulis, maklum lah, pemalas. Di tulisan kali ini saya pengen sharring ‘kelakuan’ saya beberapa minggu ini. yap, hacking GPS. Mungkin hal ini udah basi bagi sebagian orang, tapi mungkin bagi sebagian orang lagi aneh, atau buat saya it’s new.

Mungkin ada yang nanya “napa sih GPS nya di hack?”, gini ceritanya, di kantor tuh ada GPS yang biasanya dipasang di PDA, SDIO GPS namanya dari ‘pretec’ sayangnya GPS ini agak sulit untuk dipake di PDA karena setiap kali dipasangin siPDA nya malah jadi hang, padahal itu barang baru dibeli dan PDA-nya pun udah termasuk generasi baru. Setelah beberapa kali dicoba dan tetep aja bikin hang tuh PDA akhirnya si GPS ini nggak pernah dipake dan nganggur. Pikir punya pikir sayang juga tuh GPS kalo nggak dipake, udah sy coba masukkin ke SD slot nya notbook nggak bisa juga karena protocol yang dipake sama SD slot di notebook beda sama SD slot yang dipake sama PDA meskipun kegunaan dasarnya sama yaitu untuk masukkin media storage. Akhirnya timbulah ‘ide kotor’ dipikiran saya.

PERHATIAN !!!
, saya dan segala isi konten di blog ini TIDAK bertanggung jawab atas segala kerusakan yang terjadi pada barang oprekan anda, segala resiko kerusakan dan lain-lain menjadi tanggung jawab anda sendiri.

Intinya adalah gimana caranya si GPS ini bisa bermanfaat alias bisa dipake sesuai dengan kegunaannya meski tidak pada tempat seharusnya. Dari sini saya mulai googling kesana kemari tapi sayang nggak nemu apapun tentang gps yang ada ditangan saya karena ternyata pretec udah nggak nge-support barang ini alias discontinued (cape deeeeh). Dan manual book nya pun nggak ada (omigooood), kesel juga dan akhirnya saya bongkar gps nya. Tentunya setelah minta izin sama yang empunya barang!!!.

Buka bautnya, dan kia dapet modul gps nya kayak gini:

Ok, setelah kita dapet gps module nya kita pasang kabel (saya pake kabel yang biasa dipake jumper 0,1-0,2 mm) supaya kita nggak ngerusak konektor atau modul gps-nya.
Untuk pemasangan kabel ini saya kebingungan juga, disini ada 6 pin, pin apapun itu saya belum tau, konektornya kayak gini:

Asalnya saya juga bingung harus nyolokin kemana ini jumper, setelah nongkrong, ngelamun, ngopi, dan ngeroko sambil ngeliatin pcb ini, akhirnya keluarlah ide; kita kan mau dapetin data dari si gps ini, nah setiap komunikasi data minimal kita harus punya sumber tegangan (positif-negatif atau fasa-netral) dan jalur data ( Tx-Rx atau data- dan data+ ). Yang jadi masalah dan harus jadi perhatian adalah ‘kemana kita harus ngasih sumber tegangan?’, karena hal ini yang paling mungkin untuk bisa merusak alat yang kita oprek, sekarang coba perhatiin konektor gps nya;

1. Biasanya yang megang negatif tuh punya jalur pcb yang lebar/ lebih besar dari jalur yang lain (pin terakhir).
2. Jalur positif biasanya jalurnya lebih besar dari jalur data, tapi lebih kecil dari jalur negatif (pin pertama yang pararel dengan pin ke dua).
Nah udah ketemu deh jalur sumber tegangannya. Untuk lebih amannya, coba liat di dalem pcb gps nya, cangkang plat yang nutupin pcb dibuka dulu, coba perhatiin biasanya jalur positif masuk ke dioda (K), dan atau jalur negatif biasanya masuk ke kapasitor negatif.
Setelah yakin nggak akan ‘ngebul’ bagian data (Tx-RX) nggak usah dipasang dulu, coba kasih tegangan. Berapa tegangan yang harus dipake?. Gps yang saya dapet ini dari SDIO, kartu SD ini biasanya pake tegangan 3,3-5 Volt. Kita masukkin tegangan dari yang terkecil, coba ukur sinyal tegangan dari Tx atau Rx (Tx ke negatif / Rx ke negatif, pakai multimeter di milivolt atau microvolt), kalau ada berarti tegangan input yang kita masukkin sudah benar.
Karena sinyal yang kita dapet terlalu kecil, maka serial komputer belum bisa ngebaca data dari sinyal yang ita dapet dari gps, maka sinyal Tx-Rx nya harus di perbesar dulu pake rangkaian RS232 level shifter, seperti ini:

Sebelum dibikin pcb-nya saya coba dulu rangkaian RS232 level shifter ini di ‘breadboard’ atau papan percobaan,

Nah sekarang kita tes, sambung konektor serial dari RS232 level shifter yang udah kita buat ke port serial komputer, dan GPS dihubungkan ke RS232 level shifter. Setelah semua terhubung buka aplikasi serial yang kamu suka (disini saya pake putty) dengan konfigurasi;
• Speed (baud) : 9600
• Data Bits : 8
• Stop bits : 1
• Parity : None
• Flow Control : XON/XOFF
Setelah itu masukkan sumber tegangan ke rangkaian, maka tadaaaaaaaa,.......

Nah ada karakter yang keluar,... setelah googling diketahui bahwa karakter itu adalah karakter standard yang dipake sama GPS, namanya NMEA 0183 protocol yang merupakan karakter ASCII. Setelah berkeliling- keliling google dapet deh penjelasan sebagai berikut:

Setiap kalimat dalam bahasa NMEA diawali dengan tanda ‘$’, dan setiap kata dalam bahasa NMEA dipisahkan dengan tanda koma ‘,’.


Baris 1,
1. Merek/ type gps
2. Software / firmware yang digunakan
3. Selamat datang
4. Checksum

Baris 2, $GPRMC (RMC = Recommended Minimum Specific GPS/TRANSIT Data)
1. UTC of position fix
2. Data status (V=navigation receiver warning)
3. Latitude of fix
4. N or S (North atau South)
5. Longitude of fix
6. E or W (East atau West)
7. Speed over ground in knots
8. Track made good in degrees True
9. UT date
10. Magnetic variation degrees (Easterly var. subtracts from true course)
11. E or W
12. Checksum

Baris 3, $GPGSA (GSA = GPS receiver operating mode, SVs used for navigation, and DOP values.)
1. Mode (M=Manual, forced to operate in 2D or 3D, A=Automatic, 3D/2D)
2. Mode (1=Fix not available, 2=2D, 3=3D)
3-14 = IDs of SVs used in position fix (null for unused fields)
15. PDOP
16. HDOP
17. VDOP
18. checksum

Baris 4, $GPGGA (GGA = Global Positioning System Fix Data)
1. UTC of Position
2. Latitude
3. N or S
4. Longitude
5. E or W
6. GPS quality indicator (0=invalid; 1=GPS fix; 2=Diff. GPS fix)
7. Number of satellites in use [not those in view]
8. Horizontal dilution of position
9. Antenna altitude above/below mean sea level (geoid)
10. Meters (Antenna height unit)
11. Geoidal separation (Diff. between WGS-84 earth ellipsoid and mean sea level. - =geoid is below WGS-84 ellipsoid)
12. Meters (Units of geoidal separation)
13. Age in seconds since last update from diff. reference station
14. Diff. reference station ID#
15. Checksum
sumber: nmea.org
Nah setelah yakin RS232 nya jalan, kita bikin diatas pcb, cara bikinnya? Baca postingan saya yang lalu, dan setelah jadi masukin semuanya ke wadah kalo bisa sama batreinya juga, kalo punya saya dimasukin ke bekas wadah arrester apc, jadinya kayak gini:

Jadi deh, sekarang tergantung kreatifitas pembaca mau dijadiin apa gps ini, misalkan (sebagai ide saja) mau dijadiin alat navigasi, digabung sama program- program navigasi, sebagai odometer/ speedometer, sebagai gps logger, atau mungkin mau dipasang di’unmanned plane’ (it’s my next project idea), atau ide- ide lain yang lebih kreatif. Kalo hasil oprekan saya ini (beli modul yang lain yang lebih presisi, itu pun kalo punya duit, karena barang ini punya kantor) rencananya mau dibuat alat navigasi yang di pasang di CarPuter (Car Computer Unit) di mobil ortu saya (maklum saya belum punya mobil, jadi yang bisa dijadiin sasaran percobaan ya mobil ortu :D) yang di gabung sama program navigasi gratisan supaya kalo jalan jalan ortu saya nggak akan kesasar, Pokonya tungguin aja hasil pemasangan di CarPuter mobil OrTu, mudah mudahan kalo nggak males bisa posting disini. Sebagai referensi saja; ulikan ini cukup bermanfaat dan lebih murah jika dibandingkan dengan kita beli perangkat gps navigasi yang harganya berjuta-juta itu, karena yang kita beli cuman modul gps nya saja yang harganya kurang-lebih 150rb – 1,5jt yang mahal notebooknya :D. Kalo mau dipasangin di CarPuter mu, atau mau diinstallin carputer dimobil kamu silahkan datang ke bengkel sederhana saya (Jl. Cingised No.8) kalo kamu mau ketemu langsung sama saya bisa janjian dulu (hari libur ya!)

 <span >diambil dari:</span><a href="http://danibilabibah.blogspot.com/"><img src="http://feeds.feedburner.com/Danibilabibah.1.gif" /></a>

WARNING !!!
Silahkan kalau mau kopi-paste, tapi mohon pengertiannya untuk mencantumkan sumbernya. Silahkan kopi artikel beserta kode diatas untuk menyertakan link banner ke blog ini. Terimakasih

4 komentar:

  1. keren, mas Dani. Isi blognya benar-benar berbobot. Sayang sekali, kok pengunjungnya sedikit banget ya. Mas Dani kurang promosi nih :D

    Btw, kok ga diapdet lagi dengan oprekan-oprekan barunya mas?

    BalasHapus
    Balasan
    1. terimakasih sudah berkunjung, untuk sementara belum banyak nulis, maklum lah orang teknik susah bgt buat bikin dokumentasi, sebenernya banyak sih yang udah dibuat, tapi ya itu,... males nulis,... hahaha

      Hapus
  2. Mas, ada ga perangkat atau aplikasi yg bisa mengganggu suatu sinyal gps?

    BalasHapus

~*~ Maaf, Untuk ngejaga supaya tetep aman komentar anda sebelumnya akan di moderasi dulu, so nggak akan langsung muncul, haturnuhun kangge perhatosannana,...