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

Say It with Light! (Revision 1)

Ini adalah catatan saya dalam mendesain “Say It with Light!”. Setelah mempertimbangkan beberapa hal untuk memenuhi prinsip murah, meriah dan mudah, maka saya pun me-redesain rangkaian dengan menggunakan ATmega8 dari Atmel. Saya sangat berterima kasih kepada Atmel yang telah mengirimkan sample dari beberapa microcontrollernya.

Tampilan prototype "Say it with Light!" revisi 1
Tampilan prototype “Say it with Light!” revisi 1

Menggunakan chip ATmega8 justru mempermudah saya dalam mendesain “Say It with Light!” karena ATmega8 telah menyediakan 20 pin bebas setelah dikurangi beberapa pin yang digunakan untuk kebutuhan internal Arduino. Sedangkan “Say It with Light!” cuma butuh 17 pin I/O dengan perincian 16 pin untuk pengaturan display dot matrix dan 1 pin untuk tombol pengubah tampilan.

Cukup menggunakan 1 chip
Cukup menggunakan 1 chip

Ke-16 pin ini dibutuhkan untuk mengendalikan display dot matrix secara langsung. Pendekatan ini memang tidak efisien karena sebenarnya kita cukup menggunakan 3 pin pengendali jika menggunakan 2 buah Shift Register seperti ketika mendesain dengan ATtiny85. Kelemahan lain adalah ketika memprogramnya karena butuh pengelolaan pin yang lebih banyak.

Rangkaian rev 1 lengkap dengan komponen pasif pendukung
Rangkaian rev 1 lengkap dengan komponen pasif pendukung

Di balik ketidakefisienan ini, teknik pengendalian langsung justru punya kelebihan, yaitu proses penampilan jadi lebih cepat karena tidak perlu diproses chip external. Tampilan jadi tampak lebih terang dan stabil. Bebas flicker walau pun saya tambah perintah delayMicroseconds. Pada code ATtiny85 saya tidak menambahkan delay tapi tampilan tetap flicker.

Dengan ATmega8 lebih stabil
Dengan ATmega8 lebih stabil

Saya mendesain ATmega8 untuk bekerja dengan clock external memanfaatkan crystal 16 MHz. Kecepatan proses jadi lebih cepat 16× (atau lebih?) dari pada desain dgn ATtiny85. Sebenarnya ATtiny85 bisa bekerja sampai 20 MHz tapi itu sama saja memboroskan pin I/O-nya untuk dipakai dengan crystal external. Jadi desain tempo hari cuma mengandalkan clock internal ATtiny85 yang cuma 1 MHz.

Dari segi memori ternyata antara ATmega8 dan ATtiny85 sama-sama punya 8 KB ISP (in-system self-programmable flash program memory). Wow, ATtiny85 memang hebat ya? Jadi dalam hal kapasitas program sejajar. Hanya saja ada kelemahan dalam pemrograman ATtiny85 terutama jika kita menggunakan IDE Arduino, yaitu karena ATtiny85 tidak bisa mengakomodasi array 2 dimensi. Jadi penyimpanan text yang akan ditampilkan disimpan dalam array linear. Sedangkan jika menggunakan ATmega8 hal ini tidak masalah (tentu setelah burning bootloader Arduino).

Dalam pemrograman “Say It with Light!” Rev 1 (dgn ATmega8) ini saya menambahkan beberapa pesan yang bisa ditampilkan, misalnya icon smile, animasi panah (ceritanya untuk nembak hati), Y/N (untuk menjawab), dan beberapa icon lain yang sedang saya coba apakah bisa ditampilkan dengan baik atau tidak. Saat ini code ukurannya cuma 2,5 KB dari sekitar 7,2 KB yg tersedia. Berarti masih punya ruang untuk pesan-pesan lain yang ingin ditampilkan.

Saat ini saya sedang mendesain PCB untuk membuat permanen prototype “Say It with Light!” revisi 1. Kali ini desain PCB tidak terpaku dengan sambungan urut karena tidak menggunakan Shift Register tapi langsung dari pin ATmega8. Ini berarti desain PCB bisa diatur sambungan antara ATmega8 dengan pin display dot matrix berdasarkan kedekatan pin. Jadi bisa didesain jalur yang terdekat dan terbaik. Sisanya tinggal mapping di code. Hasilnya desain saya kali ini tidak ada jumper-nya. Horeee…

Sementara ini dulu catatan desain prototype “Say It with Light!” revisi 1. Jika ada masukan, silakan dituangkan dalam box komentar di bawah.

Salam ngoprek

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?

Bukan Hari Keberuntungan

Dua hari ini bukan hari keberuntungan bagi saya. Soalnya saya mengalami 2 hari yang apes. Ketidakberuntungan saya dimulai kemarin. Kemarin rencananya saya mau fotocopy desain PCB di kertas transparan. Lha kok kertas transparansinya ketinggalan di apartemen. Tetap nekat, sepulang kerja saya mencari kios fotocopy. Dan ternyata sulit mencari kios fotocopy yang bisa copy di kertas transparans. Kurang lebih sudah 6 kios saya sambangi dan mereka tidak punya transparansinya.

Pada kios ke-6 akhirnya bisa. Tapi ternyata hasilnya jelek. Jalur PCB ada yang terputus atau jalurnya bolong. Saya mencoba minta copy sampai 5 kali tetap jelek semuanya. Hiks.

Sambil pulang berharap ada kios fotocopy lagi, siapa tahu lebih bagus. Benar saja, saya mendapatkan kios fotocopy yang cukup rame. Syukurlah bisa copy ke kertas transparans. Dari 3 copy yang bagus cuma 1. Lumayanlah.

Pulang apartemen langsung mempersiapkan segalanya. Saya memotong PCB dengan mesin bor tapi menggunakan kepala pemotong. Kelihatannya lancar sampai ketika pemotongan berakhir adaptornya meledak. Listrik di apartemen pun padam. Terpaksa ke bawah minta engineer untuk menyalakannya lagi. Dan kegiatan ngoprek pun berakhir.

Hari ini masih melanjutkan ketidakberuntungan saya. Sore ini rencananya saya membuat adaptor sendiri pengganti adaptor yang meledak kemarin. Kebetulan saya punya trafo 500mA yang entah kapan saya belinya. Mungkin 2 tahun lalu. Sampai sekarang belum terpakai. Jadi saya pun mencoba merakitnya menjadi catu daya (power supply).

Sebenarnya rangkaian catu daya ini adalah rangkaian yang sederhana. Mungkin sekarang anak-anak SMP sudah diajarkan untuk membuatnya. Saya pun dengan lancar membuatnya. Nyaris hafal di luar kepala.

Namun ternyata kesederhanaannya itu tidak menjamin kesuksesan perakitan. Setelah semuanya terpasang dan saya test dengan multimeter tidak ada jalur korsleting, saya pun mencoba mencolokkannya ke listrik. Dan… meleduk lagi. Hiks… Kok ya rangkaian sederhana gitu hasilnya meleduk. (*gubrak*) Syukurlah tidak memadamkan listrik apartemen. Tapi rangkaian sudah tidak tertolong, jadi saya buang saja.

Setelah itu saya mencoba mengisi waktu dengan mentransfer desain ke PCB dengan setrika full hot. Hasilnya jelek. Transparansi mlenyeh. Hasil transferan bergeser. Dan jalur mbleber. Ehm, kemarin-kemarin lancar loh. Mungkin karena saya memotong transparansi menjadi kecil? Kemarin-kemarin transparansinya tidak saya potong.

Coba lagi bikin dengan mentransfer dari kertas biasa, bukan dari kertas transparansi. Eh hasilnya tidak jelas. Mungkin kurang lama menyetrikanya. Dan sudah bergeser jalurnya. Wah ternyata 2 hari ini bukan keberuntungan saya.

Sebenarnya sejak kemarin sudah memikirkan untuk menyerahkan pembuatan PCB ke jasa pembuatan PCB. Saya menemukan 3 jasa pembuatan. Sayangnya pemesanan harus dalam kuantitas yang banyak. Ada yang harus lebih dari 10. Untunglah ada yang minimal 5 copy. Saya akan mencoba memesannya ke sana. Memang jatuhnya lebih mahal dari pada bikin sendiri. Tapi PCB buatan profesional pasti lebih rapi. Maklum, kemarin-kemarin bikin PCB sendiri hasilnya tidak rapi.

Jadinya saya memilih jasa outsourcing dalam pembuatan PCB. Tapi saya jangan di-demo yaaa???

nge-Pot 84 with LCD (Pot Elektronik)

Ini adalah salah satu jawaban dari tantangan terhadap produksi alternatif Garduino yang lebih murah dan terjangkau. Jika sebelumnya saya telah berhasil membuat versi sederhana dengan nge-Pot 85 yang menggunakan Atmel Attiny85, maka sekarang saya menggunakan Atmel seri Attiny 84 yang lebih kaya I/O. Dengan Attiny84 ini saya bisa menambahkan LCD sebagai display bagi nilai penginderaan kelembaban tanah dan suhu sekitar.

Tampilan Ngepot 84
Tampilan Ngepot 84

Sayangnya jumlah pin I/O Attiny84 banyak terpakai untuk mengendalikan LCD yang butuh 6 pin. Jadi hanya tersisa 5 dari pin yang bisa dipakai. Sisa 5 ini terpakai untuk 1 sensor Soil Moisture, 1 relay, dan 3 tombol (tombol ini digunakan untuk membuat referensi digital). Kurang 1 I/O untuk termometer. Pikir punya pikir, akhirnya saya mengakalinya dengan berbagi pakai 1 pin untuk tombol plus dan sensor temperatur LM35 DZ. Saat beroperasi normal, pin ini akan dipakai untuk membaca suhu sekitar yang diindera oleh LM35 DZ. Sedangkan pada mode edit, maka pin ini digunakan untuk tombol plus.

Tombol pengatur ambang dan sensor suhu udara sekitar
Tombol pengatur ambang dan sensor suhu udara sekitar

Tampak pada gambar di sebelah kanan LCD ada sebuah sensor suhu udara LM35 DZ dan di bawahnya berjejer 3 tombol untuk mengganti mode edit, tombol plus dan tombol minus.

Bagian sebelah kiri
Bagian sebelah kiri

Di sebelah kiri LCD tampak banyak komponen berjejal. Hehehe, berat sebelah ya? Di sebelah kiri ini ada port untuk menancapkan sensor Soil Moisture, jack power supply 6-12V, LED indikator nyala (warna hijau), LED indikator relay aktif (warna merah), dan relay untuk pompa air. Sedangkan tepat di sebelah kiri LCD ada 2 potensiometer yang bisa digunakan untuk mengatur kecerahan lampu latar belakang LCD dan pengatur kejelasan karakter LCD.

Ngepot 84 in action
Ngepot 84 in action

Tampak pada foto di atas saat relay pompa aktif. Selain ditunjukkan di LCD berupa tulisan “Pump: ON”, juga direpresentasikan oleh penyalaan LED merah. Nampaknya saya salah menggunakan resistor sebagai penurun arus sehingga LED merah nampak terlalu cerah.

Pump On dan LED merah menyala
Pump On dan LED merah menyala

Sebenarnya desain awal Ngepot 84 ini menempatkan relay di sebelah kanan board, tapi saya pikir kalau diletakkan di sebelah kanan akan membahayakan pengguna terutama saat melakukan edit nilai ambang yang ke-3 tombolnya ada di sebelah kanan. Takutnya relay yang terhubung dengan tegangan tinggi AC akan tersentuh secara tidak sengaja.

Tampilan keseluruhan Ngepot 84
Tampilan keseluruhan Ngepot 84

Foto di bawah ini menampilkan bentuk Ngepot 85 yang sederhana dengan Ngepot 84 yang lebih informatif dengan LCD. Kedua rangkaian prototype ini jatuhnya lebih murah dari pada Garduino (gardening Arduino ala Dewo).

Ngepot 85 dan Ngepot 84+LCD
Ngepot 85 dan Ngepot 84+LCD

Memang sih akan lebih mudah menggunakan Arduino. Tapi rasanya terlalu mahal jika untuk merawat tanaman saja harus menggunakan Arduino yang mahal harganya. Toh dengan Attiny 85 atau 84 yang jauh lebih murah bisa dilakukan hal yang sama. Walau memang ada beberapa batasan, misalnya kecepatan prosesor yang lebih rendah, kapasitas memori program yang lebih kecil sehingga tidak bisa diprogram untuk hal yang kompleks, dan jumlah pin yang lebih sedikit dari pada Arduino. Tapi ternyata saya bisa membuat Ngepot (Pot elektronik) versi murah yang bisa digunakan untuk merawat tanaman.

Bagi saya, mendesain dan membuat Ngepot 85 dan 84 memiliki kepuasan tersendiri. Di samping tujuan untuk membuat alternatif Garduino yang lebih murah dan praktis, juga karena hobi saya tersalurkan. Ini merupakan bentuk ekspresi diri bahwa saya mampu membuat versi saya sendiri dan dapat bekerja dengan baik. Walau pun sangat sederhana, saya cukup bahagia lohhh…

Saya akan mencoba mendokumentasikan desain proyek saya ini di blog. Hanya saja harus saya akui, saya malas merapikan skema rangkaian, hehehe. Jadi seperti yang sudah-sudah, cukup tampilan layout PCB yaaa… Cara membuatnya akan saya susulkan. Semoga proyek-proyek ini dapat berguna bagi orang banyak.

PERINGATAN:

  • Rangkaian Garduino, Ngepot 85 dan Ngepot 84+LCD dipublikasikan dengan lisensi Open Source Hardware. Semua pihak bisa mempelajarinya dan memproduksi/mengembangkan sendiri.
  • Rangkaian Garduino, Ngepot 85 dan Ngepot 84+LCD menggunakan relay yang bisa digunakan untuk mengontrol piranti lain dengan tegangan tinggi (s/d 240 Volt), misalnya pompa air, solenoid valve/kran, lampu, dll. Harap berhati-hati dalam menggunakan tegangan tinggi karena dapat mencelakakan diri sendiri atau orang lain. Selain berhati-hati, harap perhatikan potensi kecelakaan kerja dan operasional. Karena tegangan tinggi dapat mengakibatkan kecelakaan yang mematikan.

Terima Kasih Atmel

Baru saja tadi pagi menulis tentang penerimaan 4 paket dan menuliskan kalau saya menunggu paket sample dari Atmel, ternyata sehabis makan siang paket dari Atmel datang. Horeee…

Paket sample dari Atmel
Paket sample dari Atmel

Ini adalah paket sample ke-2 dari Atmel untuk saya. Seperti biasa, saya mintanya tidak tanggung-tanggung, yaitu 4 seri microcontroller masing-masing 10 biji. Ke-4 seri tersebut adalah:

  1. ATTINY2313A-PU
  2. ATTINY4313-PU
  3. ATMEGA328P-PU
  4. ATMEGA32-16PU

Dan wow, yang termahal adalah ATMEGA32-16PU yang punya 40 pin. Sungguh betapa baiknya Atmel karena telah memberikan sample untuk keperluan research kecil-kecilan saya ini. Bahkan tidak ada syarat dan ketentuan (term & condition) rumit kecuali hanya tulisan: “SAMPLE, NOT FOR COMMERCIAL SALE”. Baik hati kan? Terima kasih Atmel.

ATtiny85 Programmer with Arduino Nano Socket

Semenjak menerima sample dari Atmel, saya jadi sering ngoprek ATtiny85 yang imut itu. Lebih mengasyikkan karena untuk memprogramnya bisa menggunakan Arduino Nano yang juga imut. Penggunaan Arduino Nano menjadikan pemrograman ATtiny lebih praktis karena Nano bisa langsung tancap di breadboard sehingga koneksi pengkabelan lebih kuat.

Arduino Nano yang breadboard-friendly
Arduino Nano yang breadboard-friendly

Lebih lanjut, penggunaan Nano + Attiny dalam 1 breadboard bisa membuat experimen rangkaian lebih mengasyikkan. Komponen-komponen pendukung bisa langsung tancap di breadboard. Kalau ada kekurangan dalam program bisa langsung di-edit & upload.

Programmer ATTiny85 dengan Arduino Nano dalam 1 breadboard
Programmer ATTiny85 dengan Arduino Nano dalam 1 breadboard

Jadinya tidak perlu membuat development board khusus untuk ATtiny seperti layaknya Arduino Board. Praktis ya?

Tidak perlu development board khusus utk ATtiny85
Tidak perlu development board khusus utk ATtiny85

Tapi gara-gara surfing dan kemudian nyampai di sebuah artikel bertajuk _Attiny Programmer, saya jadi tertarik untuk membuat versi saya sendiri. Berbeda dengan pendekatan di artikel tersebut yang membuatnya sebagai shield programmer di board Arduino reguler, saya memilih membuat versi yang unik, yaitu versi soket untuk Nano.

Diisi dengan soket untuk Attiny & Nano plus LED
Diisi dengan soket untuk Attiny & Nano plus LED

Saya membuat soket untuk Arduino Nano dari pin header female. Untuk kaki kanan saya cuma menggunakan 4 pin sedangkan kaki kiri full soket. Kalau dibuat full semua pin bisa sulit nancapkan & mencabut Nano jika dibutuhkan untuk keperluan lain. Sedangkan socket untuk Attiny85 menggunakan socket standard 8 pin. Saya juga menambahkan 8 soket mandiri untuk kaki kiri dan kanan Attiny85 supaya bisa digunakan untuk development board sederhana. Oh iya, saya menambahkan juga resistor 220R dan socket untuk LED. Ini hanya untuk ngecek apakah programmer berhasil meng-upload program dengan baik. Programnya bisa menggunakan program blink dari contoh bawaan Arduino.

Pengkabelan di bagian bawah
Pengkabelan di bagian bawah

Supaya board programmer ini tampak rapi, saya menyolder kabel-kabel koneksi di bagian bawah board. Sempat salah koneksi sehingga programmer gagal berfungsi. Gara-garanya salah hitung pin, hehehe… Untunglah tidak membuat rusak Nano mau pun Attiny85.

Akhirnya berfungsi baik
Akhirnya berfungsi baik

Di atas adalah foto programmer yang berfungsi dengan baik. Program test adalah menyalakan LED dengan PWM sehingga LED bisa menyala & padam secara gradual.

Ini adalah programmer yang ditujukan hanya untuk upload program. Sebaiknya prototyping & development tetap di breadboard yang lebih fleksibel. Karena walau pun saya menambahkan beberapa pin seperti layaknya development board, tapi rasanya masih kurang nyaman untuk eksperimen.