Muy buenas a todos Arduineros y Arduineras!!!
Hace poco reinstale el sistema operativo Ubuntu en el portátil y como es el que uso normalmente para programar los Arduinos, instale el IDE Arduino.
Me pongo en faena y subo el sketch, el programa compila bien y cuando toca el momento de subir el programa al microcontrolador, me aprece el siguiente error en pantalla:
![]() |
| /dev/ttyUSB0: Permission denied |
El error "can't open device "/dev/ttyUSB0": Permission denied"
Esto es un error frecuente en instalaciones nuevas, Y es un tema de seguridad. Los usuarios normales no suelen utilizar el puerto USB para realizar conexiones serial.
En este caso es una distribución Ubuntu (Debian) y es muy fácil de solucionar.
El error básicamente nos viene a decir que no tenemos permisos de escritura o lectura para usar el puerto USB0 (USB1, AMC0, etc).
Para solucionar el error avrdude: ser_open(): can't open device "/dev/ttyUSB0": Permission denied tenemos dos opciones, una temporal y otra permanente y son las siguientes:
Solución temporal:
sudo chmod 777 /dev/ttyUSB0
Con esto conseguimos permisos de lectura, escritura y ejecución, pero cada vez que reiniciemos el puerto, tendremos que volver a ejecutar el mismo comando.
Solución permanente para los permisos del puerto USB:
Esta es la solución que recomiendo si usas Arduino o ESP o cualquier microcontrolador de manera habitual:
Primero tenemos que saber a que grupo pertenece /dev/ttyUSB0. Esto lo podemos averiguar fácilmente utilizando en el terminal el comando:
ls -l /dev/ttyUSB0
Y en su respuesta nos dirá a que grupo pertenece, generalmente al grupo dialout:
crw-rw---- 1 root dialout 188, 0 ene 14 08:57 /dev/ttyUSB0Una vez que confirmamos que es dialout podemos añadir nuestro usuario al grupo dialout con el comando usermod:
sudo usermod -a -G dialout nombre_usuario
Con los pasos anteriores terminados, reiniciamos el ordenador y ya no tendremos problemas con los permisos a la hora de escribir o leer de los puertos USB para poder usar con total normalidad con Arduino IDE.
Además es valido para cualquier puerto ya que generalmente todos se crean en el mismo grupo. Es decir, si tenemos 2 Arduinos conectados esto es valido tanto para /dev/ttyUSB0 como para /dev/ttyUSB1.
Espero que esta información les sirva de ayuda, Saludos!!!
También te puede interesar:

No hay comentarios :
Publicar un comentario