The Art of Electronic Devices Hacking

Malam minggu harusnya dihabiskan untuk melakukan hal produktif, #SayNoToValentineDay. Salah satu hal produktif yang bisa seorang mahasiswa elektro lakukan adalah hacking peralatan elektronik di sekitarnya.

Introduksi

Hacking lebih dikenal sebagai usaha untuk menjebol masuk ke dalam sistem untuk mengubah perilakunya, orang yang melakukan hacking disebut hacker. Well secara teknis betul sih, tapi dalam dunia electronic hobbyist, term hacking adalah usaha mengubah (alter) fungsi biasa dari sebuah perangkat. Karena tulisan ini berada dalam konteks elektronika, maka kita akan gunakan definisi terakhir (yang tentu saja saya buat sendiri, haha).

Melakukan hacking meniscayakan interaksi dengan perangkat yang ingin di-hack. Nah dari titik ini, pengalaman dalam menangani berbagai protokol komunikasi yang digunakan perangkat tersebut menjadi penting. Selain itu, sifat modular dari perangkat tersebut akan menentukan skill level yang diperlukan. Maksud dari modular adalah masing-masing bagian (komponen) pada perangkat target saling independen, jadi komponen-komponen tersebut dapat dipisahkan dan dikombinasikan untuk menjalankan fungsi yang berbeda. Semakin modular suatu perangkat, maka semakin mudah perangkat tersebut untuk di-hack.

Contoh perangkat modular adalah Project Ara, sebuah smartphone besutan Google yang setiap komponennya dapat dilepas. Sementara smartphone pada umumnya sangat tidak modular.

Project Ara
Project Ara
Exploded View dari Smartphone generik
Exploded View dari Smartphone generik

Modularitas Perangkat

Perangkat yang modularitasnya rendah umumnya sulit untuk diutak-atik. Jika sudah begini, pengalaman dalam mengenali dan memahami mekanisme komunikasi akan sangat berguna. Untuk mengatasi pengalaman yang kurang, kita bisa menonton video-video teardown perangkat di youtube, misalnya. Bisa juga dengan sering bongkar-bongkar perangkat lama kita yang sudah rusak.

Misalkan kita punya flashdisk yang sudah lama tak terpakai, jika dibongkar kita akan dapati chip controller dan NAND flash chip. Chip controller bisa diprogram sesuai keinginan kita, dan NAND Flash bisa dipakai untuk menyimpan data.

Internal view dari flashdisk (tampak: NAND flash chip)
Internal view dari flashdisk (tampak: NAND flash chip)

Sayangnya kedua chip tersebut tidak mudah di-interface, kita harus banyak membaca datasheet untuk membuatnya bekerja. Melakukan desoldering, membuat PCB, dan memastikan chip tersebut bekerja baik adalah tugas seorang insinyur elektro.

Namun kalau melihat telepon genggam jaman dulu, kita bisa temukan banyak bagian yang bisa dimanfaatkan, misalnya nokia 3310 yang legendaris itu ternyata layarnya bisa dipakai untuk membuat game console!

Nokia 3310
Nokia 3310

 

Gamebuino - Game console yang memakai LCD nokia 3310
Gamebuino – Game console yang memakai LCD nokia 3310

Impresi

Artikel ini memaparkan sekilas mengenai hacking perangkat elektronik. Secara umum, hacking merupakan skill yang harus dibiasakan agar dapat semakin piawai membongkar dan menggabung berbagai perangkat elektronik. Salah satu website yang sering mendemonstrasikan electronic device hacking adalah hackaday.com, it’s worth to visit.

Kecil2 Cabe Rawit (Small-small Chilli)

Kecil2 Cabe Rawit (Small-small Chilli)

Yeah I know the title is absurd. But despite of my malformed english translation I really want to write an article about electronic projects as my future reference.

I wonder how people exploit the potential of this little device which seems to be very helpless. Today I browsed some of great projects which have done that.

1. DUO Tiny, is a portable computer which uses ATTiny as its core. I found this project on youtube and you really should check that out:

The same person also has built several other project like DUO Mega which is a CRT TV-based computer I think, and DUO Decimal which is a very minimalistic computer.

And yeah you should check his youtube channel as well, I think he has more videos you may like.

Okay, it’s pretty much it. Stay tuned for more updates as I continue to browse. See ya!

Implementing MIPS Processor with VHDL

Implementing MIPS Processor with VHDL

Warning my lovely readers! The following will be a very technical article, but still, I can’t prevent your inner desire to keep reading this great article. 🙂

In my lab course on computer architecture, implementing processor in VHDL is one thing every electrical engineering student have to face. You know, it is like building your own Intel Core i7 yourself, but of course with much much much simplified processor architecture.

One of such thing is MIPS32, MIPS stands for Microprocessor without Interlocked Pipeline Stages. Cool huh?

MIPS is commonly be used for teaching processor architecture in not so great details. There are several stages every processor should have: Instruction Fetch, Instruction Decoding, Executing, Memory access, and write back. (are you confused? I’ve told you this will be very technical, it’s your fault. Keep reading!)

If you curious in the detail of the assignment, you should download the lab guide here (http://el3111.bagus.my.id/modul-praktikum/) unfortunately, it’s written in Indonesian only. No translation!

Instead of building our own hardware by connecting the individual physical logic gates, we’re implementing this MIPS processor in FPGA by writing VHDL code. Personally, I really enjoyed this lab course, I learned a lot when I was doing something. You know, I’m a kinesthetic learner. So I learn more and better when my hands grab something ‘real’.

As a bonus, here a screenshot of VHDL code I wrote days ago.

Capture
This is Arithmetic and Logical Unit component I wrote days ago. You really should not too hard reading the code above!

Have a nice weekend guys. 🙂

(cover image from extremetech.com)

Where Should I Go For Internship?

Whew! I’m now in my 5th semester, with 71 credits done out of 144. Easy, 73 to go with 19 credits for this semester, which means 54 left for the last three semesters, what a nice life!

But lately I heard numerous friends are buzzing around talking about internship.

What?! Internship? Oh man, I almost forgot to prepare that! (or at least think of it). As of the curriculum for electrical engineering student, it is required to take 8 weeks internship at engineering company.

Next year (2016) local companies will open for intership. But I interested to go abroad.

Few of my friends are planning to get internship at CERN. While the others are pursuing really-prestigious-multinational-engineering-company. Hmm, I’m not really sure where to go (and most importantly, get accepted for interning).

Well, it is still one semester left to prepare myself.

These Application Notes Will Make You Become An Electrical Engineering Expert!

Sebagai calon electrical engineer, kita tak cukup hanya membaca textbook mata kuliah standar di kampus. Kita perlu mengikuti perkembangan dunia engineering yang begitu menakjubkan. Supaya tak ketinggalan trend, kita perlu banyak membaca tulisan-tulisan para ahli, salah satunya dengan membaca application note.

Application note adalah karya tulis yang mirip artikel singkat yang ditulis oleh expert. Application note ditulis oleh engineers, dan untuk engineers. Tulisan-tulisan mereka menawarkan experienced analysis, design ideas, reference designs, and tutorials untuk membuat kita menjadi seorang pakar.

Nah, di tulisan ini saya ingin menghimpun berbagai application note dari berbagai produsen semikonduktor dunia seperti TI (Texas Instruments), Fairchild, Maxim, ST Electronics, Atmel, dan sederet lainnya. Tentu tidak semua perusahaan bisa dicantumkan, setidaknya tulisan ini bisa jadi referensi dikemudian hari.

  1. Maxim Integrated (http://www.maximintegrated.com/en/design/techdocs/app-notes/).
  2. Texas Instruments (application notes).
  3. Fairchild (https://www.fairchildsemi.com/evaluate/application-notes).
  4. ST Electronics (application notes selector).
  5. Atmel (search application notes).
  6. Microchip (www.microchip.com/applicationnotes/).
  7. Linear Technology (http://www.linear.com/designtools/app_notes.php).
  8. OSRAM Opto Semiconductors (application notes) Perusahaan yang berfokus pada produk lampu.
  9. ON Semiconductor (application notes).
  10. FTDI (http://www.ftdichip.com/Support/Documents/AppNotes.htm) terkenal sebagai produsen USB to serial converter.
  11. International Rectifier (http://www.irf.com/application-notes).

Ubah Touchpad Netbook Bekas Jadi Mouse

Utak-atik ini dan itu, hari ini saya (nampaknya) berhasil memanfaatkan touchpad Netbook hasil pembongkaran tahun lalu (lihat post pembongkaran disini). Touchpad-nya bukan touchpad dari produsen terkenal seperti Synaptic, tapi dari produsen china anonim. Touchpadnya menggunakan komunikasi serial seperti yang dipakai pada mouse PS/2, jadi lumayan gampang buat diutak-atik. Nah, ini dia touchpad-nya:

Touchpad tampak belakang (sumber: Dok. pribadi)
Touchpad tampak belakang (sumber: dok. pribadi)

Sama seperti pin PS/2, touchpad ini punya 6 pin dengan 2 pin tak terpakai, sehingga menyisakan 4 pin (+VCC, -GND, Clock, dan Data). Informasi pinout bisa dicari di internet, saya sendiri gagal mendapatkan info pin untuk touchpad ini, walhasil saya harus coba-coba sendiri dengan multimeter (dan dengan brute force, hehe). Pin-pin ini bisa langsung dikoneksikan ke komputer yang punya port PS/2 mouse. Hmm, laptop saya tak ada port PS/2 maupun converter USB-PS/2, maka saya hanya bisa tes dengan Arduino.

Touchpad dengan kabel konektor
Touchpad dengan kabel konektor (sumber: dok. pribadi)

Saya langsung solder saja kabel konektornya dan dihubungkan ke Arduino. Kode yang saya pakai diadaptasi dari halaman ini. Oiya, data yang dikirimkan mouse sebetulnya berbeda dengan data yang dikirimkan oleh touchpad, sehingga sudah tentu harus ditangani secara berbeda. Saya tetap pakai sketch Arduino untuk PS/2 mouse hanya sebagai proof of concept. Jika anda berminat untuk betul-betul menjadikan touchpad menjadi mouse yang usable, silakan cermati artikel berikut ini.

Soldering connector
Konektor touchpad yang tersolder (sumber: dok. pribadi)

Touchpad yang sudah dihubungkan ke Arduino, siap untuk dites!
Touchpad yang sudah dihubungkan ke Arduino, siap untuk dites! (sumber: dok. pribadi)

Oke, connector touchpad sudah disolder dan terhubung ke Arduino. Mari kita coba lihat hasilnya di Serial Monitor Arduino:

Jendela Serial Monitor yang menampilkan data yang terbaca
Jendela Serial Monitor menampilkan data yang terbaca (sumber: dok. pribadi)

Yeah, data dari touchpad berhasil terbaca, angka biner di sebelah kiri adalah raw data yang diterima, sedangkan bagian tengah (X dan Y) adalah terjemahan kode binernya. Meski sukses, namun beberapa menit kemudian touchpad-nya tak merespon, setelah di goyang-goyang sedikit rangkaiannya, baru deh touchpad-nya merespon lagi. Nampaknya sambungan yang saya buat terlalu ringkih, tak reliable. Hmm, tak apalah, yang penting sudah terbukti bekerja dengan baik, kedepannya bisa disempurnakan lagi. 🙂

Convert ATX PSU to Workbench Power Supply: PowerBench!

Okay, I have been researching a lot for converting my old Power Supply Unit in ATX form to Lab Bench Power Supply. I really need a Power Supply for my electronic projects.

Power Supply to be built:

I am going to build this. (source: www.tti-test.com)
I am going to build this. (source: www.tti-test.com)

Well, not really.

I am going to convert this old ATX PSU:

ATX PSU (source: www.atxpowersupplies.com)
ATX PSU (source: www.atxpowersupplies.com)

To Workbench Power Supply, with additional 7-segments. And I’m going to add a, oh wait a minute! I found this link https://okelectronic.wordpress.com/tag/atx-workbench-power-supply/

Oh well! That surpasses my article in any aspects! So, I just gonna read that anyway.

Lanjut Lagi Desain Programming Language-nya!

fig-compiler-architectureKira-kira sudah lima tahun sejak tahun 2010 saya vakum belajar konstruksi compiler atau interpreter. Saya pernah menulis artikel tentang perancangan bahasa pemrograman di blog lama saya (artikelnya terdiri dari dua bagian, klik sini untuk melihat bagian pertamanya).

Artikel yang saya tulis tersebut bisa dibilang low-quality, dan terlalu banyak bias. Di artikel tersebut saya berusaha menjabarkan saja sepengetahuan saya tentang tips & trik mendesain bahasa pemrograman. Pokoknya low-quality deh! Hehe.

Di tahun 2010 saya pernah membuat interpreter menggunakan bahasa Autohotkey, sulit juga membuat lexer dan parser dengan tangan (maksudnya tidak diotomasi dengan program bantuan). Namun dari titik itu, pemahaman saya tentang mekanisme kerja tool semacam itu semakin membaik. Nah, sejak akhir tahun 2011 saya sudah tidak lagi oprek-oprek interpreter.

Saya sudah pernah mendengar tool YACC (Yet Another Compiler-Compiler) alias Bison dan tool Flex untuk men-generate program lexer, tapi malas juga belajar bahasa baru (C dan C++). Nah, saat mengambil mata kuliah Problem Solving With C di ITB, mau tidak mau saya belajar C. Otomatis saya jadi tertarik oprek Bison dan Flex, baru nyambung ilmunya sekarang. Hehe.

Baik, jadi begini. Kalau Anda pernah membuat program apapun dalam bahasa apapun, baik C yang dikompilasi dengan GCC, atau Python yang di-interpretasi, maka yang saya dari tadi bicarakan adalah bagaimana membuat program yang mampu menjalankan source code Anda.

Entah apa saya akan benar-benar bereksperimen hingga mampu membuat interpreter yang baik, atau hanya nostalgia. Tulisan ini hanyalah curhat, basa-basi. Terima kasih sudah membaca hingga tanda baca terakhir! 🙂

Amusing Myself With Tiny Robots

Amusing Myself With Tiny Robots

Doing problem sets, again; for my upcoming exam, again. And let’s click the Google Chrome icon, again. But not about MIT essays, again (look here if don’t read yet). But it is about little-tiny-micro robots!

I’m going to build some toy projects which using this cheap microcontroller:

ATtiny85_900

Chrome landed me on this site (here), that’s about very amusing tiny robots. Can’t be patient to build such robot. 🙂

9029961395449862310
Tiny robot with ATTiny microcontroller

But the more impressive yet beautiful design must be this bristlebot (here). This design has even been redesigned by chinese (or taiwanese) manufacturer and put it on the production line; then they called it “hexbug”, very pretty design by the way.

hexnanogrptube_newt_950x886_1
Some eye catching hexbugs
2121740103_e80cd1e26d_m
Very amusing when turned on

What is the best MIT short Essay?

What is the best MIT short Essay?

MZyaowOb_400x400I am tired doing problem set all night long for my upcoming exams. To refresh my brain, let’s click the Google Chrome icon. In this article, I would like to share my findings, and here we go.

I am reflecting why is on earth I must do all these problem sets, I am not loving it. But eventually I came up with my Quora Digest which lists interesting question about MIT, I was once dreaming to be one of student there, but now I am facing the reality: problem sets.

The question is, what is the best MIT short Essay? And the answerer leads me to this link [here]. I don’t know who wrote this essay, but let’s assume it is not a parody essay.

I’d ever read (or at least skim) over question asked by MIT, my answer to these questions are considerably low quality answer. Then I take a look at the essay posted at that link. Wow. I don’t even think I would get inspiration like him.

Please read, and say wow.