Atmel ATTINY817 Xplained MINI

Dulu saya suka sekali ngoprek ATTiny, terutama ATtiny85 dan ATTiny84. Menurut saya, chip-chip ini sangat sederhana dan mudah dipelajari. Kalau mau bikin piranti elektronika simpel (embedded) bisa menggunakan chip kecil ini. Selain murah, juga bisa praktis & ringkas.

Walau pun demikian, ATTiny memang punya keterbasan, terutama di spesifikasinya. Tapi memang sebenarnya Attiny tidak ditujukan untuk aplikasi yang kompleks. Attiny biasanya digunakan untuk mengendalikan tugas-tugas ringan yang spesifik. Tidak seperti chip yang kompleks seperti ATMega328 yang digunakan di Arduino versi awal atau SAM3X8E yang menggunakan arsitektur ARM yang bisa multi purpose dengan kecepatan tinggi.

Terakhir saya sempat ngoprek Radio dengan Attiny85 dan berakhir mentok karena keterbatasan memori-nya yang cuma 8 KB. Itu pun sudah berkurang menjadi sekitar 6 KB karena digunakan untuk bootloader. Dan saya pun kehabisan memori karena harus menggunakan beberapa library, hiks…

Lalu beberapa waktu lalu saya dapat email dari Atmel tentang kehadiran beberapa seri ATtiny, yaitu ATtiny417, ATtiny814, ATtiny816 dan ATtiny817. Saya pun memesan ATtiny817 XMini yang merupakan evaluation board untuk ATtiny817.

Apa sih istimewanya ATtiny817 ini? Yang jelas, ATtiny817 ini tetap minimalis dengan memori flash cuma 8 KB, SRAM 512 byte, EEPROM 128 byte, kecepatan clock meningkat sampai 20 MHz/20 MIPS, punya 2 buah timer/counter 10-bit, tetap menggunakan 8-bit DAC, analog comparator, accurate internal oscillator dan multiple calibrated voltage references. Dan yang menarik karena ada Peripheral Touch Controller (PTC), custom logic, 10-bytes unique ID dan bentuk packagingnya 24 pin. Detail spesifikasi bisa dilihat di: ATTINY817 (www.microchip.com) dokumen komplit: Datasheet.

Nah, Evaluation Kit ATtiny817 Xplained Mini (Xmini) yang saya beli ini sudah dilengkapi debugger terintegrasi, 2 buah tombol kapasitif (terintegrasi QTouch Peripheral Touch Controller), Auto-ID, akses ke semua sinyal ATtiny817, 1 LED status berwarna hijau, 1 tombol mekanik, virtual port COM (CDC), ditenagai USB, punya pin yang kompatibel dgn Arduino, header SPI. Tuh lihat saja di foto di atas. Jadi mudah ngopreknya karena pin jadi kompatibel dgn Arduino UNO.

Jujur saja saya masih belum tau mau dibikin apa, dan kapan ngopreknya, secara saat ini lagi sibuk dengan pekerjaan. Semoga saja dalam waktu dekat bisa segera ngoprek lagi. Soalnya yang menarik dari Attiny817 ini adalah adanya 2 tombol kapasitifnya. Sepertinya bisa luas aplikasinya.

Iklan

Stock Arduino Nano v3.0

Semenjak pertama kali membeli Arduino Nano, saya banyak bereksperimen dan mengetest rangkaian dengan Arduino Nano. Bentuknya yang mungil dengan bentuk DIP (dual in-line package) membuatnya gampang ditancap di breadboard. Dibandingkan dengan Arduino Uno/Leonardo, mungkin ukurannya cuma seperempatnya. Kemungilannya ini membuatnya mudah dibawa kemana-mana. Kita juga dapat membuat proyek dengan ukuran yang lebih kecil jika dibandingkan dengan menggunakan Arduino Uno/Leonardo.

Akhirnya paket datang setelah menanti lama
Akhirnya paket datang setelah menanti lama

Selain sebagai sarana experimen, saya menggunakannya juga sebagai alat untuk burn bootloader di chip-chip microcontroller seperti ATMega8 dan ATMega328, atau sebagai programmer bagi ATTiny85 dan ATtiny84 yang sering saya pakai sebagai otak bagi proyek embedded Arduino. Pendek kata, saya dapat mengandalkannya untuk berbagai keperluan. Saya sangat puas dengan Arduino Nano. Mungil tapi powerfull.

Si Mungil
Si Mungil

Hingga akhirnya saya memutuskan untuk membeli spare Arduino Nano. Selain sebagai stock, mungkin kelak dibutuhkan untuk keperluan proyek.

Kecil-kecil cabe rawit
Kecil-kecil cabe rawit

Sebenarnya pengen juga sih nyobain Arduino Due yang berbasis processor ARM. Selain lebih powerfull prosesornya, Due lebih kaya pin I/O. Asyiknya Due bisa menggunakan bahasa pemrograman Arduino. Jadi tidak perlu belajar lagi. (Ayo nabung…)

Say It with Light! (Redesign)

Ketika mendesain “Say It with Light!” pertimbangan saya adalah murah, meriah dan mudah. Namun ketika saya mau membuat PCB, saya baru sadar kalau ternyata “Say It with Light!” tidak murah dan mudah.

Tidak murah lantaran ternyata saya tidak menjumpai penjual ATtiny85 di pasaran lokal. MCU ini termasuk murah, tapi ketika tidak ada yang jual, maka kita perlu beli dari luar yang sudah pasti jadi mahal. Apalagi kalau belinya partai kecil, bisa-bisa mahalan di ongkir.

Dengan ATmega8 lebih stabil
Dengan ATmega8 lebih stabil

Selain masalah ketersediaan ATtiny85, saya baru sadar kalau saya menggunakan komponen tambahan yang mungkin menjadi kesulitan tersendiri bagi pemula atau ABG yang baru belajar elektronika, yaitu karena saya menggunakan 2 buah Shift Register. Dua buah Shift Register ini digunakan untuk mengatasi keterbatasan I/O di ATTiny85. Dan saya baru sadar kalau ini bisa jadi penghalang tersendiri. Jadinya rangkaian “Say It with Light!” menjadi tidak mudah lagi.

Kemudian seharian kemarin saya mencari alternatif pengganti ATtiny85 yang sekiranya tersedia di pasaran lokal dengan harga terjangkau. Saya menemukan chip alternatif yang masih satu kerabat dengan ATtiny85, yaitu ATtiny2313. ATtiny2313 ini punya 20 pin dan tesedia 18 I/O yang programmable (dikurangi 1 pin untuk reset jadi 17 I/O).

Bisa jadi alternatif yang bagus karena saya bisa mendesain rangkaian jadi sederhana. Dengannya saya bisa menggunakan 16 I/O untuk pengaturan display dot matrix secara langsung tanpa perlu shift register. Tersisa 1 I/O untuk tombol. Benar-benar pas.

Namun ternyata tidak murah! Sebuah chip ATTiny2313 (soket PDIP) di pasaran lokal berharga Rp 27.500 di harga terendah. Banyak penjual lokal lain menjual di atas itu. Harga segitu hanya untuk MCU bisa jadi kendala sendiri bagi remaja yang masih dijatah uang jajannya.

Saya langsung teringat ATmega8 yang harga di pasaran lokal lebih murah dengan harga termurah yang tersedia di pasaran lokal adalah Rp 20.000 untuk soket PDIP. Sedangkan harga termahal yang saya temukan Rp 25.000. Saya heran, kok ATmega8 lebih murah dari ATtiny2313 ya? Mungkin karena Attiny2313 bisa ngebut sampai 20 MHz? Ah kapan-kapan saja deh komparasinya.

Jadi pilihan saya pun jatuh ke ATmega8. Pilihan ini menjadikan proses desain lebih mudah karena saya telah familiar dengan ATmega8. Tantangan ngoprek chip keluarga ATmega adalah karena kita harus burn bootloader. Bukan hal mutlak sebenarnya, tapi kalau ini dilakukan, pemrograman dengan IDE Arduino menjadi lebih fleksibel.

ATmega8 memiliki 23 programmable I/O yang setelah dikurangi keperluan internal Arduino jadi hanya punya 20 pin bebas. Ini sudah lebih dari cukup. Sirkuit “Say It with Light!” tanpa Shift Register cuma butuh 16 pin I/O.

Dan akhirnya prototype “Say It with Light!” dengan ATmega8 berhasil saya buat. Kali ini benar-benar memenuhi prinsip murah, meriah dan mudah untuk situasi, kondisi dan lokasi di Indonesia.

Tapi di luar itu, saya juga sedikit bangga dengan desain “Say It with Light!” versi ATtiny85 karena saya telah membuktikan bahwa konsep murah, meriah dan mudah sebenarnya bisa dilakukan dengan ATtiny85 jika di pasaran lokal ada. Karena harga ATtiny85 sebenarnya cuma di bawah Rp 10.000. Sedangkan 2 buah shift register cuma Rp. 5.000. POC (proof of concept) berhasil.

Say It with Light!

Bagi para ABG (*ABG tua?*) yang sedang kasmaran sudah selayaknya membangun proyek elektronika yang saya beri nama “Say it with Light!” ini. Karena dengan “Say it with light!” Anda bisa memperlihatkan isi hati Anda kepada pacar. Dijamin si dia bakal bilang “WOW” dan koprol (*gubrak*). Kalau pun tidak, coba disuruh push up atau lari keliling lapangan sepak bola 5×. (Ups… kok jadi ngelantur gini ya?)

Sirkuit di breadboard
Sirkuit di breadboard

Baiklah, kita kembali ke proyek sederhana ini. “Say it with light!” adalah sebuah piranti sederhana yang dapat menampilkan pesan yang berjalan dari kanan ke kiri. Bahasa kerennya scroll text atau running text. Rangkaian ini dibangun dengan pertimbangan murah, meriah dan mudah. Sehingga para ABG kasmaran yang baru belajar elektronika dapat membangunnya sendiri dengan biaya yang tidak mahal.

ATTiny85 sebagai otaknya
ATTiny85 sebagai otaknya

Saya sengaja memilih MCU Atmel ATTiny85 yang mungil dan murah. Walau pun cuma punya kaki 8, MCU ini sangat baik & handal. Saya sudah beberapa kali menggunakannya dalam proyek sederhana (lihat: Digital Temperature with ATtiny85 and LM35 dan Ngepot 85 (Pot Elektronik)).

Kalau saya memilih ATtiny85 karena dalam proyek ini saya cuma butuh penampilan pesan di dot matrix dan sebuah tombol untuk men-switch tampilan. Dan lagi harganya termasuk murah. Cocok kan?

Dua buah shift register 74HC595 untuk mengendalikan display dot matrix
Dua buah shift register 74HC595 untuk mengendalikan display dot matrix

Untuk mengendalikan display dot matrix, saya menggunakan 2 buah shift register 74HC595 yang digunakan untuk scanning column dan pengiriman data row. Dengan 2 buah shift register dirangkai cascade, saya cuma butuh 3 pin ATtiny85 untuk mengendalikan display dot matrix.

Sebuah pin dari ATtiny85 saya gunakan untuk tombol pengganti tampilan sehingga total kebutuhan pin cuma 4. Dari 5 pin yang tersedia di ATtiny85 tersisa 1 pin. Sementara ini saya belum ada ide pemanfaatan 1 sisa pin ini. Mungkin kelak bisa dimanfaatkan untuk suara. Tuh kan, cukup menggunakan ATtiny85 untuk proyek ini.

Show your heart
Show your heart

Catatan pribadi

Oke, proyek dot matrix sudah bertebaran dan semuanya bagus-bagus, bahkan berwarna-warni. Tapi hampir semua proyek dot matrix mahal. Di sinilah keunggulan dari desain “Say it with Light!” ini. Desain ini murah meriah dan mudah dibangun. Cocok untuk pemula elektronika (seperti saya ini). Dan karena ATtiny85 termasuk hemat energi, dia bisa ditenagai baterai sehingga bisa didesain portable.

Karena semua pemilihan komponen dan desainnya ekonomis, tentu ada kelemahannya. Yang paling tampak adalah kecepatan dari ATtiny85 ini yang termasuk lambat. Dengan clock internal, dia cuma memiliki kecepatan 1 MHz. Akibatnya penampilan di display dot matrix nampak flicker. Penggunaan Atmega8 dengan external crystal 16 MHz dapat mengatasi masalah flicker ini. Tapi sayangnya bakal banyak pin yang tidak terpakai.

Namun kelemahan ini justru bisa menjadi kekuatan karena tampilan flicker malah dapat mengundang perhatian si dia. “Wow ada blink-blink.”

Masih Bersemangat Ngoprek

Ketika terjadi hiruk pikuk saat launching Arduino Due saya hanya bisa berdecak kagum. Maklum, teknologi & fitur yang diusungnya jauh lebih powerful dibanding board Arduino sebelumnya. Arduino Due termasuk sesuatu yang baru yang sedikit keluar dari jalur Arduino sebelumnya karena Due menggunakan prosesor dengan arsitektur ARM sedangkan sebelumnya menggunakan AVR.

Dengan digunakannya arsitektur ARM, maka Arduino Due jadi head-to-head dengan Raspberry Pi yang telah lebih dulu mengguncang dunia sebagai PC paling murah sedunia. Walau pun sebenarnya keduanya jelas memiliki target pengguna yang berbeda, dimana Arduino bermain di dunia microcontroller sedangkan Raspberry Pi bermain di microcomputer. Pada kenyataannya keduanya bisa digunakan untuk controller dan computer dengan trik khusus.

Menurut saya langkah Arduino Due ini sudah baik walau pun keluar dari pakem Arduino sebelumnya karena transisi AVR ke ARM ini difasilitasi dengan baik oleh tim Arduino (salut!!!). Karena bisa jadi dunia microcontroller memang membutuhkan tenaga dan kemampuan yang lebih besar dari yang telah ada sekarang ini. Contohnya adalah saat Google mengeluarkan ADK, Sparkfun dengan IOIO, atau Arduino dengan ADK. Semuanya menjadikan MCU (microcontroller unit) lebih mudah diakses dengan piranti lain, khususnya piranti dengan sistem operasi Android.

Tidak dipungkiri kalau itu semua membutuhkan tenaga yang besar yang lebih dari pada yang bisa didapat dari MCU model AVR. Dan ARM adalah salah satu solusi termurah. Bisa saja kita menggunakan prosesor x86 dari Intel atau AMD, tetapi itu seperti membasmi nyamuk dengan bom.

Di tengah semakin cepatnya perkembangan teknologi saat ini, dengan segenap kerendahan hati, saya sedang merayap mempelajari MCU dengan basis arsitektur AVR. Dimulai dengan keluarga ATtiny yang sederhana sampai ke ATmega yang menengah. Sedangkan board Raspberry Pi masih tergeletak tak terurus menunggu dioprek.

Terus terang saya merasa seakan sedang mengejar ketertinggalan saya. Dan saya agak menyesal karena saat kuliah elektro dulu sering bolos dan tidak memperhatikan atau mempelajari materi kuliah dengan sungguh-sungguh. Di lain pihak, jaman saya kuliah memang masih serba sulit, baik dari segi kurangnya literatur, kurangnya komunitas elektronika, terbatasnya koneksi internet/komunikasi, dan yang pasti karena kurangnya dana untuk membiayai eksperimen.

Syukurlah saat ini semua kendala itu sudah lenyap. Dan saya bersyukur masih bisa menikmati belajar itu semua dengan semangat yang masih menyala. Kendala saya saat ini hanyalah waktu, usia dan menurunnya kemampuan (*hiks*). Namun itu semua tetap tidak mengalahkan semangat saya.

Ini curhatku, mana curhatmu?

Digital Temperature with ATTiny85 & LM35

Baiklah, saya sudah punya display 7-segment mungil, lalu mau dibuat apa? Saya pun memutuskan membuat “digital temperature” sederhana. Kebetulan saya punya spare LM35 sisa ngoprek Ngepot84.

Sebenarnya sederhana, hanya saja kabelnya itu yang bikin tampak ruwet
Sebenarnya sederhana, hanya saja kabelnya itu yang bikin tampak ruwet

Hanya saja saya ingin proyek ini sesederhana mungkin, dalam arti tidak menggunakan Arduino yang relatif lebih mahal. Maklum, saya ingin proyek ini cuma mengukur suhu, tidak lebih. Toh display yang tersedia cuma 7-segment standard nan mungil yang tentu saja tidak bisa menampilkan info yang kompleks.

Ada 4 opsi microcontroller yang tersedia, yaitu: ATTiny85, ATTiny84, ATtiny2313 dan ATtiny4313. Karena pertimbangannya adalah kesederhanaan, maka pilihan jatuh pada ATTiny85 yang cuma punya 8 kaki dengan 5 I/O. Tentu saja 5 pin I/O kurang untuk men-drive 2 digit 7-segment. Syukurlah saya punya stock chip shift register 74HC595 untuk membantu ATTiny85 men-drive display 7-segment.

Cukup menggunakan ATTiny85
Cukup menggunakan ATTiny85

Walau pun sederhana, saya ingin hasil dari proyek ini baik terutama dalam hal display-nya. Oleh karena itu saya mengambil 2 buah shift register 74HC595 untuk ke-2 digit display. Dengan 2 buah IC shift register, saya tidak perlu menggunakan teknik scanning. Kedua shift register ini dirangkai cascading. Walau pun menggunakan 2 buah shift register, pemrogramannya mudah kok. Cukup panggil 2 kali fungsi shiftOut di antara pemicuan pin latch (lihat source code untuk detailnya).

2 digit 7-segment untuk display suhu ruangan
2 digit 7-segment untuk display suhu ruangan

Di bawah ini adalah skema dari Digital Temperature with ATTiny85 ini. Jangan terkecoh dengan ruwetnya kabel. Sebenarnya ini proyek sederhana dengan beberapa komponen saja. Anda bisa merangkaikannya di breadboard dalam waktu kurang dari 30 menit.

Cuma membutuhkan beberapa komponen
Cuma membutuhkan beberapa komponen

(Klik pada gambar untuk memperbesar gambar)

Jika ada waktu luang, rencananya akan saya buatkan PCB-nya supaya sirkuit ini permanen. Juga penggunaan baterai supaya bisa lebih portabel.

Tampilan Temperature Digital versi breadboard
Tampilan Temperature Digital versi breadboard

Read More »

nge-Pot 84 with LCD (Pot Elektronik Open Source Hardware)

Masih meneruskan tulisan tentang nge-Pot 84 with LCD (Pot Elektronik), kali ini saya akan membahas desain prototype ini. Mohon maaf jika skema-nya tidak saya sertakan, karena saya belum sempat merapikannya. Di bawah ini adalah tampilan desain PCB nge-Pot 84 with LCD.

Desain Layout PCB nge-Pot 84 with LCD
Desain Layout PCB nge-Pot 84 with LCD

Sedangkan di bawah ini tampilan bagian bawah untuk etsa (etching). Saya mengexportnya ke format JPG. Jika ada yg membutuhkannya dalam format SVG atau PDF bisa menghubungi saya. Oh iya, untuk mencetaknya harus dengan skala 1:1 alias tidak boleh resize supaya presisi. Jangan lupa menggunakan socket 16 pin untuk chip Attiny84.

Siap untuk transfer paper ke PCB
Siap untuk transfer paper ke PCB

Dalam desain ini relay sengaja saya pindah ke sebelah kiri supaya tidak tersentuh tangan saat mengeset nilai-nilai ambang dengan tombol di sebelah kanan. Berikut adalah daftar penggunaan pin ATtiny84.

Pin fisik Attiny84 Pin I/O Arduino Fungsi Pin
13 0 Soil Moisture sensor
12 1 Relay utk pompa air
11, 10, 9, 8 2, 3, 4, 5 LCD – Data
7 6 Tombol Minus
6 7 Tombol Plus & Sensor Suhu
5 8 Tombol Mode
3 9 LCD – Enable
2 10 LCD – RS

Di bawah ini adalah Bill of Materials dalam 2 format, yaitu Assembly List yang berguna saat perakitan dan daftar komponen yang berguna saat belanja komponen.

Read More »