
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 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

y como sugiere la documentación por si hay problemas con los Drivers y permisos abro la terminal y ejecuto:
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.
The post Solución: avrdude: ser_open(): can’t open device en Arduino appeared first on Ikkaro.