Solución: avrdude: ser_open(): can’t open device en Arduino

NUEVO PROYECTO: Recibe una curiosidad diaria con nuestra Newsletter. Pequeños asombros diarios para Personas Altamente Curiosas

En este artículo voy a explicar como solucionar un error común en Arduino:

avrdude: ser_open(): can't open device "/dev/ttyACM0": Permission denied

Antecedentes

Después de mucho tiempo sin usar Arduino he cogido mis dos plaquitas (la original y la Elegoo) para hacer unas actividades con mi hija. Las conecto, voy a meter el blink para ver que todo está bien y cuando voy a enviarlo a la placa me devuelve el tan conocido error.

Arduino:1.8.5 (Linux), Tarjeta:"Arduino/Genuino Uno"

avrdude: ser_open(): can't open device "/dev/ttyACM0": Permission denied
 Problema subiendo a la placa. Visita http://www.arduino.cc/en/Guide/Troubleshooting#upload para sugerencias.

Tanto en mi PC como mi portátil tengo instalado Ubuntu 18.04.

Solución

Empiezo siguiendo el link que me sugieren. Y sigo los pasos

En herramientas / placa está seleccionada Arduino/Genuino Uno

En herramientas / serial port /dev/ttyACM0

problema ide arduino avrdude

y como sugiere la documentación por si hay problemas con los Drivers y permisos abro la terminal y ejecuto:

NUEVO PROYECTO: Recibe una curiosidad diaria con nuestra Newsletter. Pequeños asombros diarios para Personas Altamente Curiosas
 sudo usermod -a -G tty yourUserName
 sudo usermod -a -G dialout yourUserName

donde yourUserName es tu nombre de usuario

Ahora cierro sesión y vuelvo a loggearme. Y por si acaso reinicio el PC / portátil.

Sigue sin funcionarme y la documentación de Arduino ya no ayuda más. Así que he seguido buscando, en foros y blogs. Si en este punto no te funciona y estás como yo. Sigue los siguientes pasos

ls /dev/ttyACM0 devuelve /dev/ttyACM0
ls -l /dev/ttyACM0 devuelve crw-rw—- 1 root dialout 166, 0 nov 26 16:41 /dev/ttyACM

Con esto confirmamos que el puerto existe

Vamos a dar permisos y a comprobar si nuestro usuario tiene los permisos necesarios.

 sudo chmod a+rw /dev/ttyACM0
 id devuelve 20(dialout) 

Y veo que el usuario está dentro del grupo dialout así que esta parte la tenemos bien.

A mí lo que me ha funcionado ha sido reinstalar Arduino.

Si compruebas

which avrdude

Y no te devuelve nada reinstalando Arduino deberá solucionarse.

sudo apt install --reinstall arduino

Y si no has conseguido solucionar el problema déjame un comentario e intentaré ayudarte.

Herramienta para solucionar el problema AVRDUDE

Existe un script que han preparado para solucionar este problema. Puedes probar a ver si te ayuda. Yo no he llegado a utilizarlo pero lo dejo porque creo que puede ser un recurso útil.

AVRDUDE

Dejo un poco de información para entender mejor qué es AVRDUDE. El nombre viene de AVRDUDE – AVR Downloader/UploaDEr

AVRDUDE es una utilidad para descargar / cargar / manipular los contenidos ROM y EEPROM de los microcontroladores AVR utilizando la técnica de programación en el sistema (ISP).

https://www.nongnu.org/avrdude/

AVRDUDE fue iniciado por Brian S. Dean como un proyecto privado como programador para la serie de microcontroladores Atmel AVR.

Puedes encontrar el software y mucha más información en la web del proyecto.

1 comentario en «Solución: avrdude: ser_open(): can’t open device en Arduino»

  1. Tengo un problema con arduino one no me comunica con el ide o viceversa tengo todo bien configurado todo placa puerto etc… He descargado flip pero no se como funciona para recargar el firmware que creo que es lo que falla podrías tener detallar un poco más como reinstala arduino gracias soy nuevo en esto

    Responder

Deja un comentario