Mengisi ulang bootloader papan Arduino Uno

Sebelum memulai, pertanyaan yang mungkin timbul adalah mengapat kita perlu mengisi ulang/membakar (burn) bootloader untuk Arduino Uno? Sebelumnya apakah bootloader itu sendiri? Mari mulai dari istilah firmware, secara singkat firmware adalah program yang paling awal diisikan ke sebuah mikrokontroler, program ini bersifat permen (atau tepatnya semi-permanen). Sekali diisikan, program ini tidak mudah untuk diubah seperti program lain. Menurut sumber di Arduino.cc ini, “So named because you couldn’t change it once it had been programmed in the chip.”

Lebih lengkap lagi bisa dipelajari dari sumber ini:

Lalu bagaimanakah bootloader menurut Arduino sendiri ? Jawabannya bisa dibaca di sini:

What’s a bootloader?

Microcontrollers are usually programmed through a programmer unless you have a piece of firmware in your microcontroller that allows installing new firmware without the need of an external programmer. This is called a bootloader.

Not using a bootloader

If you want to use the full program space (flash) of the chip or avoid the bootloader delay, you can burn your sketches using an external programmer.

Secara sederhana bootloader Arduino memudahkan pengguna (programmer) untuk memprogram mikrokontroler di papan sistem. Pengguna tidak perlu hardware programmer lainnya, cukup menggunakan kabel USB (dahulu kabel serial) ke papan sistem Arduino. Kecuali pengguna memilih untuk memprogram tanpa bantuan bootloader.

Kembali ke pertanyaan awal, mengapa perlu mengisi ulang bootloader ? Sekenario yang bisa terjadi adalah karena adanya kerusakan pada bootloader, meskipun kemungkinannya kecil. Kemungkinan lain adalah karena mikrokontroler asli pada papan Arduino mengalami kerusakan. Jika mikrokontroler yang dipergunakan adalah versi DIP. Salah satu penjual di salah satu toko online menjual μC ATmega328P dengan harga kurang dari dua puluh ribu rupiah (di luar ongkos kirim). Bisa juga karena ingin menggunakan μC ATmega328P yang berisi bootloader Arduino di tempat lain, misalnya seperti yang ditulis di link ini dan link ini. Lalu kemungkinan ketiga adalah karena ingin/perlu mengganti bootloader dengan versi lain.

  <em>Bootloader</em> (<em>firmware</em>) untuk Arduino:    <<klik di sini untuk membuka>>
Sekarang dengan menggunakan AVRDUDE dan AVRDUDESS kita melihat kondisi awal (kosong) dari mikrokontroler ATmega328P.

Gambar 1.

Bandingkan dengan kondisi default sebagaimana yang bisa dilihat di sini:

Gambar 2.

Gambar 3.

Pada Gambar 3, untuk mengisi bootloader pilih board yang sesuai dengan papan yang hendak diisi lalu pilih item menu Burn Bootloader. Gambar 4 menunjukkan proses pengisian berlangsung lancar.

Gambar 4.

Gambar 5.

Dapat dilihat di Gambar 5 kondisi fuse bits & lock bits setelah Arduino Nano diisi dengan bootloader, bandingkan dengan kondisi yang terlihat pada Gambar 1.

Gambar 6.

Makna dari konfigurasi bits dapat dilihat pada Gambar 6. Konfigurasi seperti ini dapat dengan lebih mudah diatur dengan bantuan fasilitas yang tersedia secara online, misalnya fusecalc atau Engbedded Atmel AVR® Fuse Calculator. Meskipun fasilitas bantuan seperti ini tidak selalu dapat sepenuhnya menggantikan keperluan untuk membaca datasheet. Bahkan sering kali kita juga perlu belajar dari pemahaman dan pengalaman orang lain yang telah mencoba terlebih dahulu, jadi bukan hanya belajar kepada pegawai dari produsen saja. Sebagai contoh, untuk memahami tentang CKSEL pada Gambar 6, kita bisa membaca di halaman ini. Dalam kutipan berikut bisa diketahui konfigurasi seperti pada Gambar 6, CKSEL=1111 diartikan bahwa frekuensi dapat dipilih berdasarkan nilai crystal antara 8 MHz sampai 16 MHz.

Gambar 7. Uji coba bootloader yang baru diisikan pada Arduino Uno

Sekadar sebagai pembanding cara-cara untuk mengisi bootloader Arduino bisa dibaca di sini: Installing an Arduino Bootloader.

Berikutnya adalah percobaan untuk menggunaakan bootloader Optiboot. Saya akan mencobanya di Arduino Nano dengan ATmega328P 5 V.

Gambar 8. Kondisi awal Arduino Nano ATmega328P

Gambar 9. Lock bits berubah setelah penghapusan isi

Gambar 10. Pengaturan konfigurasi untuk pengisian bootloader

Gambar 11.

Pada Gambar 11, terlihat adanya pesan kesalahan (failed). Meskipun begitu sebenarnya proses pengisian bootloader optiboot telah berhasil. Pesan kesalahan terjadi karena pengaturan efuse (extended fuse) yang sesungghuhnya tidak benar-benar mengakibatkan kesalahan. Solusi dari permasalahan ini adalah pengaturan konfigurasi di boards.txt:

## Optiboot for ATmega328p
## ---------------------------------------------
optiboot32.menu.cpu.atmega328p=ATmega328p
optiboot32.menu.cpu.atmega328p.upload.maximum_size=32256
optiboot32.menu.cpu.atmega328p.upload.maximum_data_size=2048

optiboot32.menu.cpu.atmega328p.bootloader.high_fuses=0xDE
optiboot32.menu.cpu.atmega328p.bootloader.extended_fuses=0xFD
optiboot32.menu.cpu.atmega328p.bootloader.file=optiboot/optiboot_atmega328.hex

optiboot32.menu.cpu.atmega328p.build.mcu=atmega328p

Untuk mempelajari lebih lanjut tentang masalah ini silakan baca: <<klik di sini untuk membuka>>

Gambar 12. Pengisian bootloader dengan USBasp, AVRDUDE dan AVRDUDESS

Gambar 13.

Gambar 13 menunjukkan proses bootloader burning setelah perbaikan boards.txt, tidak ada pesan kesalahan sama sekali; bandingkan dengan Gambar 11.

Gambar 14. Pengisian program menggunakan bootloader Arduino otiboot melalui ttyUSB0

Gambar 15. Upload program Arduino melalui USB port (ttyUSB0)

Arduino M0 compatible

Papan Arduino yang bisa dikatakan paling terkenal seperti Uno, Nano dan Micro berintikan mikrokontroler 8-bit. Sedangkan papan generasi berikutnya sudah ada yang berintikan prosesor 32-bit, misalnya Arduino M0/Arduino Zero yang berintikan: Atmel’s SAMD21 MCU (ATSAMD21G18), featuring a 32-bit ARM Cortex® M0 core. Perlu diperhatikan bahwa mikrokontroler ini bekerja dengan tingkat tegangan 3.3 V, bukan 5 V. Papan inilah yang saya buatkan catatannya di halaman ini.

Karena produsen asli Arduino “pecah kongsi”, maka terdapat dua produsen yang kadang dapat membingungkan. Yang pertama adalah Arduino.cc dan yang kedua Arduino.org. Dari Arduino.org diproduksi dua papan untuk seri ini yaitu: Arduino M0 dan Arduino M0 Pro, papan varian ini juga yang memiliki beberapa papan kompatibel yang dibuat oleh pihak lain. Berikutnya Arduino.cc memproduksi papan Arduino Zero, karena M0 dan M0 Pro sudah tidak lagi dilanjutkan produksinya. Semua papan tadi memiliki dasar yang sama.

Click to enlarge image A000103-Arduino-M0-1flat.jpgGambar 1. Arduino M0 [Arduino.org]

Click to enlarge image A000111-Arduino-M0Pro-1front.jpgGambar 2. Arduino M0 Pro [Arduino.org]

Sebagai percobaan pertama, mulai dari yang paling sederhana yang secara umum biasanya kecil kemungkinan gagalnya kecil. Yang paling umum adalah contoh kode blink yang telah disediakan di Arduino IDE. Bisa dilihat di Gambar 3 saya memilih konfigurasi untuk pemrograman Arduino M0. Hasil eksekusinya dapat dilihat di Gambar 4, berupa satu LED yang berkedip secara digital.

Gambar 3.

Gambar 4.

Untuk percobaan kedua ini, masih menggunakan Arduino IDE tetapi konfigurasi untuk Arduino M0 Pro tepatnya native USB port. Hal ini karena papan yang saya pakai hanya memiliki satu port USB saja, native USB dan bukan programming port. Kode contoh yang dicoba adalah kode untuk meredupkan LED dengan metode PWM (analogWrite). Hasil uji coba pengaturan terang-redup terlihat pada Gambar 6.

Gambar 5.

Gambar 6.

Pada percobaan ketiga saya mencoba kemampuan PlatformIO yang bekerja di text editor Atom. Kode program berasal dari modifikasi kode percobaan pertama, selengkapnya sebagai berikut:

#define LED_AWAL 8
const uint8_t LED_AKHIR = 13;

uint8_t i;


void setup()
{
  for(i=LED_AWAL;i<=LED_AKHIR;i++)
  {
    pinMode(i, OUTPUT);
  }
}

void loop()
{
  for(i=LED_AWAL;i<=LED_AKHIR;i++)
  {
    digitalWrite(i,HIGH);
    delay(50);
  }
  delay(10);
  for(i=LED_AWAL;i<=LED_AKHIR;i++)
  {
    digitalWrite(i,LOW);
    delay(80);
  }
  delay(100);
}

Isi file konfigurasi platformio.ini:

; PlatformIO Project Configuration File
;
;   Build options: build flags, source filter
;   Upload options: custom upload port, speed and extra flags
;   Library options: dependencies, extra library storages
;   Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; http://docs.platformio.org/page/projectconf.html

[env:mzeroUSB]
platform = atmelsam
board = mzeroUSB
framework = arduino

Gambar 7 dan Gambar 8 menampilkan secara lengkap proses kompilasi kode dan pengunggahan (uploading) ke Arduino M0 compatible. Tampilan kerja program terlihat pada Gambar 9.

Gambar 7.

Gambar 8.

Gambar 9.

Percobaan yang terakhir saya coba menggunakan Visual Studio Code (VSCode). Pengaturan terang-redup LED menggunakan modifikasi sederhana dari contoh yang tersedia (Gambar 10).

Gambar 10.

Kode lengkap program untuk percobaan ketiga:

#define LED_BAWAH 8
const uint8_t LED_ATAS = 12;

uint8_t i;

// int led = 9;           
int brightness = 0;    // how bright the LED is
int fadeAmount = 5;    // how many points to fade the LED by

// the setup routine runs once when you press reset:
void setup() 
{
  for(i=LED_BAWAH;i<=LED_ATAS;i++)
  {
    pinMode(i, OUTPUT);
  }
  // pinMode(led, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() 
{
  for(i=LED_BAWAH;i<=LED_ATAS;i++)
  {
    analogWrite(i, brightness);
  }
    // analogWrite(led, brightness);

  brightness = brightness + fadeAmount;

  if (brightness <= 40)
  {
    delay(30);
  }
  
  if (brightness >= 255)
  {
    delay(50);
  }

  if (brightness <= 0)
  {
    for(i=LED_BAWAH;i<=LED_ATAS;i++)
    {
      pinMode(i, OUTPUT);
    }
    // pinMode(led, OUTPUT);
    delay(4000);
  }
  if (brightness <= 0 || brightness >= 255) 
  {
    fadeAmount = -fadeAmount;
  }
  delay(40);
}

Cara untuk melakukan kompilasi sekaligus mengunggah kode dan program seperti pada Gambar 11. Pertama tekan kombinasi Ctrl+Shift+P lalu kemudian ketik upload (atau sebagian dari hurufnya) lalu pilih Arduino: Upload.

Gambar 11.

Gambar 12.

Proses compiling dan uploading terlihat seperti yang ada pada Gambar 12, sedang kerja papan berdasarkan program sebagaimana terlihat pada Gambar 13. Unjuk kerjanya mirip dengan percobaan kedua (Gambar 6), bedanya ada pada jumlah LED yang diatur terang-redupnya pada saat yang sama.

Gambar 13. Fader untuk lima LED [klik link ini untuk tampilan yang lebih baik]

 

Gambar 14 menunjukkan pinout untuk Arduino M0 Pro yang sama dengan Arduino M0, terkecuali adanya tambahan satu USB port yang disediakan untuk proses debugging.

http://it.emcelettronica.com/wp-content/uploads/2016/12/Arduino-M0-PRO-pinout_.jpgGambar 14. Arduino Zero pinout [sumber]

Berikut ini dambar Arduino Zero, sistem yang mirip dengan Arduino M0 Pro, kecuali adaanya beberapa pin yang ditukar posisinya

 

Gambar 15. Arduino Zero [sumber]

Terakhir, ada catatan mengenai kemungkinan kesalahan/kegagalan pengunggahan hasil kompilasi kode ke papan Arduino. Salah satu yang saya alami adalah:

 avrdude: ser_open(): can't open device "/dev/ttyACM0": Device or resource busy 

Untuk permasalahan ini, yang menjadi solusi bagi saya adalah perintah:

 sudo apt-get remove modemmanager 

Keterangan lebih lengkap dapat dibaca di tempat saya menemukan solusi yaitu pada salah satu halaman di forum ini.

Sebagai tambahan jika terjadi permasalahan seputar pemrograman sistem serupa ini di lingkungan OS GNU/Linux (seperti Fedora, Debian, Ubuntu atau Mint) maka bisa dibaca keterangan yang bagus dan sistematis di sini: Arduino IDE on Linux-based OS.

Semoga beramanfaat.

VS Code untuk Arduino

Melanjutkan catatan tentang Visual Studio Code, dalam artikel ini saya akan menunjukkan bagaimana VSCode dapat dipakai untuk mengerjakan program untuk papan Arduino (termasuk Arduino compatible). Ada beberapa metode untuk memprogram Arduino melalui vscode, kali ini saya akan menunjukkan metode ekstensi dari Microsoft (yang juga membuat VS Code).

Gambar 1. Arduino extension

Keterangan lebih lanjut, termasuk cara instalasi terdapat di halaman ini.

Prerequisites

Arduino IDE is required. Please install it from here.

  • The supported Arduino IDE versions are 1.6.x and later.
  • The Windows Store’s version of Arduino IDE is not supported because of the sandbox environment of Windows app.

Installation

Open VS Code and press F1 or Ctrl + Shift + P to open command palette, select Install Extension and type vscode-arduino.

Or launch VS Code Quick Open (Ctrl + P), paste the following command, and press enter.

ext install vscode-arduino

Commands

This extension provides several commands in the Command Palette (F1 or Ctrl+Shift+P) for working with *.ino files:

  • Arduino: Board Manager: Manage packages for boards. You can add 3rd party Arduino board by configuring Additional Board Manager URLs in board manager.
  • Arduino: Change Baud Rate: Change the baud rate of selected serial port.
  • Arduino: Change Board Type: Change board type or platform.
  • Arduino: Close Serial Monitor: Stop serial monitor and release the serial port.
  • Arduino: Examples: Show example list.
  • Arduino: Initialize:Scaffold a VS Code project with an Arduino sketch.
  • Arduino: Library Manager: Explore and manage libraries.
  • Arduino: Open Serial Monitor: Open serial monitor in the intergrated output window.
  • Arduino: Select Serial Port: Change the current serial port.
  • Arduino: Send Text to Serial Port: Send a line of text via the current serial port.
  • Arduino: Upload: Build sketch and upload to Arduino board.
  • Arduino: Verify: Build sketch.

Isi dari file settings.json untuk sistem saya sebagai berikut:

// Place your settings in this file to
// overwrite the default settings
{
    "arduino.path": "/home/sunu/arduino-1.8.3/",
    "arduino.additionalUrls": "" ,
    "arduino.autoUpdateIndexFiles": false,
    "arduino.logLevel": "info"
}

Gambar 2. Screenshot file settings.json

Gambar 3. Mencoba contoh kode dengan menekan Ctrl+Shift+P

Gambar 4. Memilih contoh kode program Arduino sederhana

Gambar 5. Kombinasi Ctrl+Shift+P memunculkan pilihan papan Arduino yang akan dipergunakan

Gambar 6. Konfigurasi port

Setelah memilih tipe papan Arduino yang akan dipergunakan (Gambar 5), berikutnya perlu diatur port yang akan dipakai untuk melakukan upload program ke papan Arduino (Gambar 6). Konfigurasi akan disimpan di file bernama arduino.json. Setelah file dibuka, langkah berikutnya adalah dengan memilih port yang sesuai. Di sistem GNU/Linux biasanya bukan bernama COM1 tetapi ttyUSB0 (kadang-kadang ttyUSB1) sebagaimana terlihat pada Gambar 6.

Gambar 7. Verify/Upload

Untuk memeriksa kode (verify) atau melakukan (upload) tekan kombinasi Ctrl+Shift+P, lalu pilih dari dropdown menu. Untuk verify bisa juga langsung dengan menggunakan shortcut Ctrl+Alt+R.

Gambar 8. Hasil verifikasi kode program

Gambar 9. Laporan pengunggahan (uploading)

Cara mudah menguji papan STM32F103C8T6 menggunakan Arduino IDE

Mikrokontroler STM32103C8T6 adalah salah satu mikrokontroler keluarga STM32 (tepatnya STM32F10xxx) yang diproduksi oleh STMicroelectronics. Mikrokontroler ini adalah μC yang tergolong sebagai medium-density devices (64 Kbytes). Pada catatan terdahulu tentang Maple Mini, sebenarnya μC STM32103C8T6 inilah yang dipergunakan sebagai inti di sistem itu.

Kedua papan sistem mikrokontroler itu saya beli dari salah satu penjual di Tokopedia, Toko Bey. Saya tidak berafiliasi atau bahkan mengenal pemilik toko online tersebut, tetapi salah satu yang menyenangkan adalah bahwa penjualnya memberikan beberapa tutorial yang sangat membantu bagi pemula untuk mengenal produk yang dijual. Di saat customer education masih sekedar jargon, praktik seperti itu tentu sangat terpuji. Saya sangat berharap investasi waktu dan tenaga dalam mempelajari suatu arsitektur prosesor baru akan mencapai manfaat yang lebih kuat karena ketersediaan pasokan alat/perangkat terjamin. Sungguh berharap para merchant akan cukup punya “nafas” dan pasar untuk tetap berjualan mikrokontroler dangan arsitektur ARM seperti ini dengan harga yang cukup terjangkau.

Nah salah satu keperluan yang penting saat suatu barang seperti ini datang adalah cara melakukan uji coba kondisi barang, setidaknya untuk beberapa bagian (parsial). Apalagi jika baru akan belajar mempergunakannya, perlu sesuatu yang bisa dipergunakan dengan cepat. Nah di sinilah peran STM32duino. STM32duino adalah upaya untuk memungkinkan (beberapa) mikrokontroler anggota keluarga STM32 untuk dapat diprogram dengan mengunakan Arduino IDE melalui penambahan pustaka.

Hubungan/koneksi antara ST-Link v2 [ compatible ] (semua di satu sisi header) dengan papan STM32F103C8T6:

ST-LINK V2   Papan STM32F103C8T6
SWCLK >> DCLK
SWDIO >> DIO
GND >> GND
3.3V >> 3.3V

 

 

 

wp-1471525805456.jpegGambar 1.

Cara ini juga mempermudah upaya prototyping, bukan hanya untuk belajar tetapi juga untuk menguji dan menyusun ide-ide secara lebih cepat. Setelah itu baru kemudian diperbaiki dalam hal efektifitas dan efisiensi program/sistem.

stm32f103c8t6Gambar 2.

Cara lain akan dimuat pada tulisan di lain waktu.

 

Uji Maple Mini compatible (STM32F103C8T6)

Jika sebelum ini catatan yang saya unggah adalah mengenai STM8S103F3P6 (STM8) maka untuk catatan ini giliran mikrokontroler STM32F103C8T6. Sekalipun sama-sama produksi STMicroelectronics, arsitektur keduanya berbeda. STM32F103C8T6 adalah bagian dari keluarga STM32, μC 32-bit yang core prosesornya bukan berasal dari rancangan ST sendiri (seperti STM8), melainkan mengadopsi arsitektur dasar dari ARM. Tepatnya ARM®Cortex®-M3 32-bit RISC core [link]. Lebih jauh tentang ini nanti akan diungkapkan di artikel lain.

Untuk artikel ini, akan coba diungkap pengujian cepat pada sistem STM8S103F3P6 yang merupakan papan Maple Mini atau yang kompatibel. Ini mirip dengan Arduino (Uno/Zero/Mega/Micro/Nano) yang sebenarnya mempergunakan mikrokontroler Atmel AVR. Untuk Maple Mini ini pun sama, bahkan kalau melihat IDE-nya maka pengguna akan segera ingat dengan IDE milik Arduino (tentu jika sudah pernah melihat sebelumnya).

wp-1471368581561.jpegGambar 1.

Berdasarkan penanda pada papan, Maple Mini clone yang saya miliki sepertinya diproduksi oleh Baite. Papan ini clone ini menggunakan bootloader asli dari LeafLabs. Produk asli dari LeafLabs (Maple Mini) sepertinya sudah tidak diproduksi lagi.

BTE-1407fGambar 2. [image credit: lincomatic.com]

BTE-1407bbGambar 3. [image credit: lincomatic.com]

Berbeda dengan papan Arduino (dan clone-nya), cara pemrograman clone dari Maple Mini ini agak “unik” jika menggunakan STM32duino (Arduino IDE) maupun Maple IDE v.0.0.12 (dibangun dari Arduino 0018). Menurut Roger Clark, untuk pemrograman dari OS GNU/Linux papan Maple Mini ini perlu perlakuan khusus agar dapat diprogram dengan baik. Setelah tombol reset pada papan ditekan, saat lampu led masih berkedip cepat maka pengguna harus segera menekan-tahan tombol yang lain. Saat led mulai berkedip pelan, pengguna bisa melepas tombol tadi. Indikator keberhasilan prosedur ini akan mudah dilihat jika sistem tidak berisi kode program led berkedip (blinking). Pada kondisi normal, setelah tobol reset ditekan lalu dilepas, led akan berkedip dalam dua tahap. Tahap cepat lalu tahap lambat, kemudian led akan padam. Jika pengguna sukses melakukan prosedur sebagaimana yang dikemukakan di atas maka saat tahap led berkedip cepat, led kemudian akan terus berkedip lambat dan tidak berhenti.

Before each upload the board needs to be put into “Perpetual bootloader” mode.

  • Press the reset button (it’s the button labeled RESET). The board should blink quickly 6 times, then blinks slowly a few more times, then stop flashing (unless it has a sketch loaded that flashes the LED)
  • Press reset again, and this time push and hold the other button during the 6 fast blinks (the normal button is labeled BUT). You can release it once the slow blinks start.

Someone did a Youtube video of this http://youtu.be/rvNIeKuXsxM

Pemantauan bisa jadi lebih mudah jika di sistem anda juga anda install sendiri program dfu-util.

$ sudo apt-get install dfu-util

Jika papan sedang tidak berada dalam mode “perpetual bootloader” maka hasil tampilan akan seperti pada Gambar 4.

maple001Gambar 4.

Sedangkan jika papan berhasil dibuat berada dalam mode perpetual bootloader, terus menerus sampai IDE mengirim sinyal reset, maka tampilan akan seperti pada Gambar 5.

maple002Gambar 5.

Selain itu jangan lupa juga untuk mengatur file konfigurasi udev. Jika perlu buar file baru (gunakan sudo jika perlu akses sebagai admin) /etc/udev/rules.d/45-maple.rules . Mengacu sumber inilah seharusnya isi file tersebut.

ATTRS{idProduct}=="1001", ATTRS{idVendor}=="0110", MODE="664", GROUP="dialout"
ATTRS{idProduct}=="1002", ATTRS{idVendor}=="0110", MODE="664", GROUP="dialout"
ATTRS{idProduct}=="0003", ATTRS{idVendor}=="1eaf", MODE="664", GROUP="dialout" SYMLINK+="maple"
ATTRS{idProduct}=="0004", ATTRS{idVendor}=="1eaf", MODE="664", GROUP="dialout" SYMLINK+="maple"

 

Selain dengan cara memasukkan sistem papan ke “perpetual bootloader mode” ada cara lain yang berhasil saya coba. Caranya adalah setelah melakukan perintah upload dari IDE, maka akan ada pesan di IDE; “Uploading to I/O Board”. Proses akan seperti terhenti, hang. Pada saat itulah saya menekan tombol reset di papan mikrokontroler hingga program selesai di-upload (diunggah).

maple004

maple005Gambar 6.

Listing program kosong, jika diperlukan.

maple003Gambar 7.

maple006Gambar 8. Pemrograman menggunakan Arduino IDE (menggunakan STM32duino)

Untuk pemrograman dengan Arduino IDE 1.6.10 ada tantangan tambahan jika mempergunakan cara hanya menekan tombol reset satu kali untuk memprogram. Berbeda dengan Maple IDE yang berbasis pada Arduino IDE yang lama, pada Arduino IDE yang baru ini penguna harus lebih sigap, cepat dalam hal menekan tombol reset pada papan Maple Mini. Tidak terdapat saat “menunggu” seperti pada Maple IDE, jika terlambat menekan maka proses uploading akan langsung dinyatakan gagal dan pesan kesalahan akan tampil.

maple007Gambar 9.

Proses instalasi STM32duino sendiri cukup mudah, menurut situs sumber [link];

  • Copy the Arduino_STM32 folder to the hardware folder in your Arduino sketches folder . If the hardware folder does not exist, please create one.
  • Run the udev rules installation script in tools/linux/install.sh
  • Note. If you are uploading via USB to Serial or STLink etc, you may need to set the relevant permissions for your specific upload device in order to be able to use it from within the Arduino IDE. You may also need to change the udev rules for the device in question.

Untuk pengujian cepat seperti ini maupun untuk prototyping,  fasilitas penggunaan bootloader dan penggunaan Arduino IDE sangatlah mempermudah. Selain itu sistem berbasis mikrokontroler STM32F103C8T6 (keluarga ARM® Cortex® -M3 32-bit) yang telah diberi Maple-bootloader (versi original) dan dapat diprogram dengan Arduino IDE ini juga menarik sebagai bahan belajar awal arsitektur mikrokontroler modern.

Adapun pin mapping dari Maple Mini ini dapat di lihat di link ini atau lebih lengkap lagi di link ini. Dokumentasi skematik dan pcb Maple Mini terdapat di GitHub.

Sumber belajar Maple Mini dari halaman lama LeafLabs dapat diakses di sini: LeafLabs Documentation Index.