Sekarang saya akan berusaha untuk rajin menceritakan hack/oprekan tiap akhir pekan, walau kadang ada juga hal-hal yang saya lakukan di hari kerja. Kali ini saya akan menuliskan tentang menerima raw GPS signal dengan RTL SDR, 3D printer, pelajaran elektronik untuk Jonathan, dan beberapa catatan kecil.
Menerima Raw GPS signal dengan RTL-SDR
Receiver GPS sekarang ini bisa dibeli dengan harga kurang dari 10 USD. Dengan receiver seperti itu, kita akan langsung mendapatkan data (via serial/USB) dalam format NMEA yang bisa dengan mudah didecode. Meskipun data mentah ini kelihatan sebagai sesuatu yang low level, ini sebenarnya sudah sangat high level.
Saya tertarik pada signal GPS yang low level, yaitu signal langsung dari satelit. Di masa depan, saya berencana spoofing signal GPS (seperti misalnya di artikel ini), sebelum melakukan itu dengan hardware yang mahal, saya memutuskan untuk memahami dulu signal GPS. Sekarang saya memulai dengan hardware murah dari rtl-sdr.com. Harganya 25 USD termasuk ongkos kirim, ini murah dibandingkan dengan hardware SDR yang bisa transmit (>150 USD).
Sebenarnya masih ada harware yang lebih murah dari Aliexpress, kurang dari 10 USD. Saya sudah pernah beli yang seperti ini, tapi saya membeli lagi dari rtl-sdr.com karena ada beberapa fitur yang sudah built in, terutama dua yang saya butuhkan yaitu TXCO (Temperature Compensated Crystal Oscillator) dan bias tee yang bisa dikontrol dari software. Dengan TXCO, perubahan suhu tidak akan terlalu mempengaruhi penerimaan.
Bias tee diperlukan untuk memberikan power pada GPS active antenna. Antenna GPS biasa tidak cukup sensitif sehingga diperlukan GPS antenna yang memiliki built in amplifier (saya membeli yang harganya 3 USD). Sebenarnya kita bisa membuat bias tee sendiri, tapi menurut saya ini cukup repot, perlu menyolder dan berisiko membuat dongle nya rusak.
Beberapa kali percobaan mengikuti petunjuk dari situs ini kurang berhasil. Kadang hanya didapatkan signal bagus dari satu satelit, kadang dapat banyak signal jelek dari beberapa satelit. Setelah membaca berbagai artikel lain, ternyata dongle menjadi panas untuk frekuensi > 1 GHz. Jadi kesimpulannya: dongle perlu didinginkan, cara termudah yang saya temui adalah dengan menempelkan es. Saya juga mengubah agar clock error diset ke 1ppm (defaultnya 0).
Awalnya saya bereksperimen di dekstop, hanya antenna-nya yang saya keluarkan dari jendela dan ternyata masih gagal. Akhirnya saya mencoba di luar.
Setelah beberapa saat, akhirnya didapatkan juga lokasi saat ini:
Selain untuk iseng, sebenarnya memahami proses menangkap signal GPS mentah ini juga bisa berguna untuk hoby tertentu, misalnya roket atau balon terbang (high altitude). Receiver GPS komersial memiliki batasan karena perlu memenuhi syarat tertentu (tidak berjalan di kecepatan sangat tinggi dan/atau ketinggian tertentu) agar tidak dipakai untuk misil balistik antar benua. Tapi ada juga keperluan tracking tertentu yang legal yang butuh kecepatan dan atau ketinggian tertentu, dengan menangkap signal GPS langsung, maka kita bisa mendapatkan data tanpa batasan firmware (contohnya bisa dibaca di sini).
Printer 3D
Sudah cukup lama saya tidak menyentuh printer 3D ini. Saya bersyukur karena ketika tadi pagi saya nyalakan semua berjalan normal (hanya ada satu kabel lepas yang saya sambung). Dari berbagai bacaan di Internet, filamen yang lama tidak dipakai biasanya akan rusak, kadang hotend yang lama tidak dipakai akan stuck, tapi keduanya tidak terjadi. Setelah memastikan printer bisa bekerja dengan mencetak sebuah kubus kecil, ada beberapa hal yang sempat diprint hari ini.
Hal yang sudah lama ingin dicetak tapi selalu malas/lupa adalah nomor rumah. Dengan skrip OpenSCAD, modelnya bisa dibuat dalam waktu singkat.
Kami sudah membelikan pasta gigi ukuran besar untuk Jonathan, jadi kami mencetak lagi Paste pusher animal.
Berikutnya saya mencari penutup colokan listrik di thingiverse tapi tidak ada yang cocok untuk menutup outlet listrik yang memiliki 3 port. Akhirnya saya buat sendiri dengan OpenSCAD.
Sengaja memakai filamen yang semi transparan sehingga masih terlihat pola honeycomb-nya. Sebenarnya ini agak kurang pas (agak sulit menempelkan ini, jadi semoga sulit juga bagi Joshua untuk melepasnya).
Saya juga menemukan solusi untuk masalah kecil yang saya temui tapi dulu tidak berhasil saya selesaikan: ketika printer dimatikan via relay, LCD printer akan menyala karena mendapatkan power dari USB (raspberry pi). Ternyata power untuk port USB di raspberry pi bisa dikontrol dengan hub-ctrl.c jadi sekarang printer bisa mati total tanpa perlu mencabut USBnya.
Catatan lain
Saya sekarang mulai mengajari Jonathan elektronika dasar. Ini saya lakukan dengan mainan elektronik yang saya beli dari aliexpress dengan tambahan breadboard, kabel, resistor dan diode. Pelajarannya masih sederhana, misalnya tentang koneksi di breadboard. Pelajaran resistor juga masih sederhana: jika memakai resistor maka LED akan semakin redup. Pelajaran diode: hanya bisa mengantarkan satu arah. Joshua juga semangat ingin ikut bermain.
Saya memiliki component tester (beli dari Aliexpress juga) yang bisa menyatakan apa komponen yang kita masukkan dan nilainya. Saya sudah test dengan resistor, kapasitor, induktor diode, transistor, dan semua bisa dideteksi dengan baik. Saya sendiri kadang memakai benda ini, dan sepertinya benda ini cocok untuk belajar. Jonathan ingin tahu apa outputnya kalau dimasukkan kabel, dan ternyata terdeteksi sebagai resistor dengan resistansi sangat rendah.
Ketika melihat benda yang bisa menyala ini, Joshua ingin ikut mencet tombolnya berkali-kali.
NFC reader saya yang selalu saya tempelkan di Raspberry Pi dan menyala 24 jam ternyata rusak, jadi akhirnya perlu membeli modul baru (4.75 USD). Saya sempat mengira yang baru ini juga error karena tidak terdeteksi melalui I2C, ternyata mode defaultnya bukan I2C dan saya perlu mengubah dip switch di board itu agar memakai mode I2C.
Minggu ini saya juga berhasil menampilkan output composite di Orange Pi Zero, cukup dengan modprobe tv
(ternyata modul tv tidak dicompile built in di kernel Armbian). Tapi saat ini saya belum mengetes menjalankan X Window (RAM OPI Zero saya hanya 256 MB jadi pasti lambat jika memakai Gnome/KDE).
Barang yang saya pesan dari diskon besar-besaran Aliexpress belum ada yang sampai. Sepertinya jika sudah sampai harus segera ditulis supaya tulisan akhir pekan tidak terlalu panjang.
Saya baru tahu ada “component tester”, Mas.
Jadi pengen beli juga. Kayaknya bakal kepakai, kayaknya :))