Seperti biasa, posting ini sekedar kumpulan beberapa oprekan yang dilakukan akhir-akhir ini. Kali ini saya membahas masalah di AMD Ryzen, iButton, Wemos XI, Modul GPS dengan PPS, Java Card, Server untuk app Zeroner, dan mengganti lampu rumah dengan LED.
Contents
Masalah AMD Ryzen
Beberapa chip AMD Ryzen 1800 memiliki bug seperti tertuang di sini. Bug ini hanya muncul di saat tertentu saja (melakukan kompilasi), dan (sepertinya) hanya terjadi di Linux saja. Meskipun sudah mendengar tentang bug ini, kantor kami memutuskan tetap mencoba membeli satu komputer dengan prosessor Ryzen karena di berita lain disebutkan bahwa AMD akan mengganti prosessor jika memang ada bugnya. Komputer ini hanya akan dipakai untuk testing (kompilasi dilakukan di komputer lain), jadi saya pikir seharusnya aman.
Tapi ternyata beberapa kali komputer ini crash, dan lognya tidak tersimpan di disk dan tidak terlihat di monitor. Sebelum menyalahkan prosessor, tentunya perlu dicek dulu komponen lain. RAM test selama 24 jam menunjukkan tidak ada masalah, SMART test untuk menguji disk juga tidak ada masalah. Tentunya masih ada kemungkinan masalah lain: software. Proses testing yang dilakukan cukup berat, melibatkan beberapa Virtual Machine
Untuk menangkap pesan error ketika terjadi crash, akhirnya saya memasang serial port di komputer ini, dan outputnya dihubungkan ke Raspberry Pi. Perlu diketahui bahwa meskipun kebanyakan PC tidak lagi memiliki port serial di belakang casing, tapi di motherboard biasanya masih ada konektornya, dan kita bisa memasang benda seharga sekitar 1 USD ini, agar serial port bisa diakses dari belakang casing (sebelum membongkar casing, bisa dicek di manual motherboardnya apakah ada port RS232).
Perlu dicatat bahwa serial port PC Voltasenya 12 V sedangkan Raspberry Pi memakai logic level 3.3V, jadi kita perlu membeli juga konverternya.
Mudahnya kita bisa membeli USB to serial dengan ujung port satu lagi bisa dicolok langsung ke PC. Sayangnya kebanyakan kabel seperti ini ujungnya male, jadi tidak bisa dicolok tanpa konverter lagi.
Karena saya pernah memiliki konverter lain, yang outputnya bukan USB, sekedar mengubah logic level-nya, maka saya memakai ini.
Output konverter ini bisa langsung masuk pin serial port Raspberry Pi. Tapi sebenarnya Raspberry Pi tidak wajib. Kita bisa menyimpan log di PC lain. Jika ingin dihubungkan ke PC lain, kita perlu menambahkan USB to serial versi 3.3v/5v dan pin ujungnya dicolok ke konverter di atas. Meskipun memakai Raspberry Pi, saya memilih menggunakan USB karena malas membuka case Raspberry Pi dan mengkonfigurasi serial portnya di sisi Raspberry Pi.
Di sisi PC yang ingin diamati lognya, perlu diset agar log kernelnya dikeluarkan ke serial port (mengubah command line di GRUB), misalnya dengan menambahkan opsi “console=ttyS0,38400n8”.
Di sisi Raspberry Pi (atau PC lain) perlu dijalankan program yang bisa menuliskan outputnya ke file. Saya menggunakan program screen untuk melihat dan sekaligus menyimpan output kernel ke file.
Ketika crash, terlihat dari lognya bahwa ternyata memang benar bahwa ini adalah masalah CPU. Pesan errornya dicari di Google dan masalah ini dilaporkan di sini. Dari situ saya mendapatkan workaroundnya yaitu dengan mengcompile ulang kernel dengan CONFIG_
Jika Anda punya masalah crash yang tidak masuk log file, memang serial port mungkin bisa membantu menemukan apa penyebab errornya.
iButton
iButton adalah koin kecil yang memakai protokol 1-Wire. Meskipun diawali dengan huruf i, ini bukan produk Apple. Fungsinya seperti kartu identitas. Selama ini saya belum pernah melihat penggunaan iButton, tapi ketika di Belanda saya melihat penggunaan ini untuk akses garasi. Benda ini juga jadi salah satu contoh penggunaan protokol 1-Wire ketika saya ikut pelatihan embedded. Setelah saya baca lebih lanjut, ternyata ini pernah dipakai jadi smart ticket di Istanbul.
Dibandingkan dengan kartu akses (RFID/NFC), benda ini kurang praktis karena susah masuk dompet tapi cukup praktis untuk dibawa di gantungan kunci. Dibandingkan dengan kartu, benda lebih lebih kuat (tidak ringkih/tidak mudah rusak).
Ternyata harga benda ini tidak terlalu mahal, 2.48 USD per 5 button (~kurang dari 6000 rupiah) untuk button yang hanya bisa jadi ID saja. Saya juga membeli modul readernya, harganya 1.4 USD.
Saya dulu pernah membuat mainan RFID untuk Jonathan, dan saya membeli modul ini pertimbangannya untuk dijadikan mainan juga. Setelah dicoba, sepertinya kurang enak jadi mainan, mungkin akan lebih bagus jika readernya magnetik sehingga akan otomatis menempel ketika didekatkan, tapi harga satuan reader yang magnetik lebih dari 10 USD (bisa kurang jika membeli banyak).
Wemos XI
Ada perusahaan China yang membuat Chip yang menyalin instruction set AVR, seri chipnya LGT8FX8. AVR ini adalah instruction set yang dipakai chip ATmega, chip yang dipakai di berbagai seri Arduino. Karena chip LGT8FX8 kompatibel dengan sebagian besar fitur ATmega, ada beberapa clone Arduino yang memakai chip ini, salah satunya adalah Wemos XI.
Sejak berusaha mengenal lebih dalam fitur ATmega ketika mengerjakan RHME, saya jadi penasaran dengan chip ini. Harga chip ini sedikit lebih murah dari ATmega, dan memiliki beberapa perbedaan yang menarik. Misalnya dalam beberapa kasus chip ini lebih cepat karena beberapa instruksi seperti perkalian (MUL) membutuhkan hanya 1 clock cycle sedangkan di ATmega butuh 2clock cycle.
Saya baru mencoba beberapa program kecil dan sepertinya semuanya berjalan baik. Saya juga menggunakan Wemos XI ini untuk mengetes iButton.
Modul GPS dengan PPS
Dulu saya pernah membeli modul GPS USB, dan saat ini dipakai sebagai salah satu sumber waktu di NTP server di jaringan saya selain dari server eksternal. Sayangnya versi USB ini tidak memiliki output PPS (pulse per second), padahal akurasinya akan jauh lebih bagus jika ada output PPS.
Jika Anda baca di Internet, ada cukup banyak orang yang sangat terobsesi dengan akurasi waktu, saya sih sekedar ingin memastikan ada cadangan sumber waktu jika internet sedang down.
Sekilas bagian depannya sama dengan modul biasa, tapi dari pin out di belakangnya ada output PPS.
Saya belum memasang ini di Raspberry Pi, tapi sudah mengetes bahwa PPS-nya berfungsi dengan osiloskop.
Java Card
Karena perlu mengetes suatu aplikasi Java Card, saya perlu merefresh pengetahuan saya. Saya membeli Java Card dari Aliexpres (8.6 USD) dan sebuah smart card reader murah (7.5 USD). Dulu saya perlu mensetup environment dengan tool GUI. Beberapa tahun yang lalu sudah ada yang membuat repository yang memudahkan pengembangan applet Java Card dari command line.
Tidak terlalu lama setelah membeli smartcard readernya, ada kelemahan ROCA yang ditemukan. Dengan ilmu yang sudah direfresh dan smartcard reader murahan ini, saya bisa mengetes bug ini pada kartu Infineon (sayangnya tidak ada cara murah untuk mendapatkan kartu infineon ini untuk sekedar testing).
Server untuk app Zeroner/iWown
Sejak tahun lalu, saya dan Risna memakai jam tangan murah dari iWown. Jam tangan ini cukup untuk sekedar menghitung langkah dan memberi notifikasi ketika ada telepon masuk. Jam ini menggunakan koneksi Bluetooth LE dan bisa langsung dicharge dengan colok ke USB, tidak memakai kabel. Sejauh ini cukup awet, baterenya tahan lama dan cukup nyaman dipakai. Dulu harganya hanya sekitar 14 USD.
Dari sekian banyak aplikasi yang dicoba, aplikasi Zeroner yang tidak resmi dari play store ternyata yang paling reliable. Sejauh ini notifikasi selalu sampai. Andaikan lupa meninggalkan jam di rumah, ketika dipakai lagi, langsung otomatis pairing.
Waktu Risna beli HP Baru (Xiaomi A1) dan ingin memakai aplikasi ini ternyata gagal login padahal sebelum bisa memakai aplikasi ini, kita wajib login. Ternyata setelah saya cek sekarang servernya mati (IP address servernya di hardcode), jadi saya mereverse engineer protokolnya dan membuat server sederhana dalam Python agar bisa login (APK-nya saya patch agar konek ke server saya).
Saya menyarankan Anda untuk hati-hati menggunakan App Zeroner ini karena akan mengupload phonebook Anda ke Cina. Jadi perlu dipatch dulu supaya aman.
Dalam kasus Zeroner ini, saya malas mengupload APK versi patch saya dan servernya, karena nanti merepotkan saya sendiri kalo banyak yang bertanya. Dari mulai masalah koneksinya, kompatibilitas Android tertentu, sampai masalah bagaimana menjalankan servernya.
Ganti Lampu LED
Kalau ini bukan kerjaan saya, tapi kerjaan bapak saya. Bapak saya serba bisa dalam hal elektronik arus kuat, ilmu bangunan, otomatif, dsb. Belum lama ini kami pindah menyewa rumah yang lebih besar halamannya, dan di rumah ini belum pakai LED. Ketika Bapak berkunjung ke Chiang Mai, dia bersemangat ingin mengganti semua lampu dengan LED.
Bapak saya memilih semua lampu LED-nya dan memasang sendiri semuanya. Sekarang hampir semua lampu di rumah (kecuali yang sangat jarang dinyalakan) sudah memakai LED. Saya jadi belajar beberapa hal mengenai pemasangan LED ini. Semoga bulan depan biaya untuk listrik bisa turun drastis.
Sepertinya saya perlu lebih rajin menulis oprekan supaya satu posting tidak terlalu panjang seperti ini.