avrdude: ser_open(): can’t open device “/dev/ttyACM0”
Error Arduino avrdude: ser_open(): can’t open device “/dev/ttyACM0” : Input/output error – Ini merupakan artikel yang membahas cara mengatasi error Arduino dimana port arduino tidak bisa digunakan untuk meng-upload kode program ke Arduino Board.
Dis, saya menggunakan OS Linux dengan base Debian, kemudian Arduino yang saya gunakan adalah versi 1.8.13. Untuk board Arduino yang saya gunakan adalah Arduino Uno dengan chip converter ATMEL Mega16u2.
Hal yang sedikit aneh adalah, jika saya menggunakan Arduino Uno dengan chip CH340 sebagai converter USB to TTL, maka akan terdeteksi pada port /dev/ttyUSB” dan upload program tidak ada kendala apa-apa.
Namun jika saya gunakan arduino board dengan IC USB to TTL ATMEL Mega16u2 nama port adalah /dev/ttyACM*, maka akan ada error yaitu :
avrdude: ser_open(): can’t open device “/dev/ttyACM0” : Input/output error
avrdude done. Thank you.
the selected serial port does not exist or your board is not connected
Setelah cara mencari penyebab error dan berhasil mengatasinya, kendala bukan pada software Arduino IDE nya, melainkan pada OS yang saya gunakan. Dibawah saya tulis langkah-langkah memperbaikinya.
Cara Memperbaiki Error Input/output Error
Untuk dapat memperbaikinya adalah dengan memodifikasi file grub yang ada pada sistem linux itu sendiri. Langkah-langkahnya adalah:
- Buka file grub menggunakan teks editor melalui terminal. Saya menggunakan teks editor gedit.
sudo gedit /etc/default/grub
- Cari baris yang berisi kata GRUB_CMDLINE_LINUX_DEFAULT=””
- Kemudian masukkan kata usbcore.autosuspend=-1 ke dalam ” “. Sehingga menjadi
GRUB_CMDLINE_LINUX_DEFAULT=”usbcore.autosuspend=-1″
Jika secara default linux anda adalah GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”, maka menjadi GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash usbcore.autosuspend=-1″
Lalu klik Save.
- Update grub dengan perintah:
sudo update-grub - Kemudian reboot laptop anda