Este post tiene como propósito ayudar un poco a quienes estén empezando a trabajar arduino y lo estén haciendo con ubuntu asi como también servirme de recordatorio. Últimamente he trabajo en Arduino y al hacerlo me encontré con algunos problemas en la combinación Arduino-Ubuntu.
El primero de ellos que el puerto Serial se encontraba deshabilitado, al momento de ingresar al IDE Arduino no detectaba el puerto a pesar de encontrarse conectada la placa a la PC.
Al ingresar a Herramientas/ Puerto Serial aparece como deshabilitado y esto no permitirá que descarguemos nuestro código a la tarjeta. Esto es debido a que el sistema no tiene permisos suficientes para poder establecer una comunicación a travez del puerto USB.
El sistema linux, al conectar un USB le asigna un formato del tipo ttyACM0 o similar y esto se encuentra en la ubicacion /dev.
Lo primero que tenemos que hacer es revisar como asigna el sistema operativo los puertos.Vamos abrir una terminal de ubuntu y antes de conectar el Arduino ejecutaremos el siguiente comando.
ls -l /dev | grep ACM
Si no hay ningún dispositivo conectado, no aparecerá ningún resultado. En caso contrario aparecerá asignado con algún nombre.
Ahora conectamos el arduino a la placa y ejecutamos el mismo comando.
Deberá aparecer una linea similar a
crw-rw—- 1 root dialout 166, 0 sep 25 14:42 ttyACM0
En este caso dice que solo el usuario root puede acceder al puerto.
Por lo tanto procedemos a brindarle permisos para los usuarios normales del sistema, ejecutamos e lo siguiente:
sudo chmod 777 /dev/ttyACM0
Donde ttyACM0 es el nombre que nos dio en el primer comando, este puede ser ttyACM1
Al ejecutar este comando les pedirá la contraseña del sistema.
Para asegurarnos que ha cambiado los permisos ejecutamos de nuevo
ls -l /dev | grep ACM
el resultado debe ser similar a:
crwxrwxrwx 1 root dialout 166, 0 sep 25 14:42 ttyACM0
El cambio que notaremos esta en las primeras letras del mensaje de respuesta:
Antes: crw-rw—- 1 root dialout 166, 0 sep 25 14:42 ttyACM0
Ahora: crwxrwxrwx 1 root dialout 166, 0 sep 25 14:42 ttyACM0
Indica que los demas usuarios ya tienen acceso al puerto ttyACM0.
De esta forma ya habilitamos el puerto en el IDE de Arduino.
Espero que se ha de utilidad este post, si tienen algún comentario o duda pueden dejarlo en los comentarios.
En caso de que desconectemos el USB y lo conectemos a otro puerto, los permisos se reestablecerían, no? No sería más fácil agregar el usuario al grupo dialout?
Saludos
Ahi esta… este comentario no lo habia revisado.
GRACIAS!! Llevaba tiempo buscando una solución a este prblema, y en ningún sitio venía explicado tan bien como aquí
De nada, espero q de verdad t haya sido útil ese el propósito de este blog. Buen día
Muchas gracias, buena explicación; ¡¡¡en realidad me han ayudado demasiado!!!. Saludos.
Muchas gracias
Hola. cómo se puede hacer para que eso se haga de forma automática . cada vez que desconecto la placa y la vuelvo a conectar debe ejecutar esos comandos, Uso xubuntu. gracias
Hola lo que puedes realizar es agregar el usuario que estas utilizando al grupo «dialout» ya que solo los usuarios en este grupo tienen permiso para manejar los puertos. Normalmente el usuario no esta en este grupo. Para solucionarlo puedes realizar lo siguiente:
sudo usermod -a -G dialout
Después t pedirá la contraseña root y listo. Solo reinicia la sesión para que se vea el cambio.
Espero que se ha de ayuda. Comenta si te sirvió. Saludos
Hola, no me funciono, me aparecen las opciones de usermod pero no aplica el usuario al dialout
«Después t pedirá la contraseña root y listo»
El comando «sudo» solicita la contraseña del usuario actual en caso de ser sudoer, en caso contrario falla, pero no solicita la contraseña de root.(Ese sería el comando «su»)
Hola, despues de visitar varias paginas web, por fin he podido conectarme el Arduino a traves de un USB…esta pagina es la que me lo ha resuelto
muchas gracias….estoy intentando aprender como funciona linux…me encanta pero me cuesta un poco comprenderlo…hay muchos paquetes con diverentes compresiones …tar..gz…xz.etc. y me hago un lio a la hora de instalarlos…pero gracias a personas como vosotros vamos aprendiendo..aunque sea a base de palos
gracias y hasta pronto
Me da gusto que haya podido ser de ayuda de hecho tenemos mas tutoriales actualizados en unprogramador.com si gustas puedes darle un vistazo.
Tomaremos en cuenta tu comentario haremos tutoriales de Ubuntu.
Saludos.
Muchísimas gracias, si me sirvieron tus comandos.
Hola STRLO.
Me fue útil tu consejo, funciona perfectamente el puerto para arduino genuino Uno. Tardé mucho para encontrar tu pagina, buscaba la solución por firefox pero parece que este navegador no indexa bien la pagina, hasta que se me ocurrió buscar por Google Chrome y encontré tu pagina. Así que seria bueno que posicionaras la pagina también en firefox.
Muchas gracias, saludos desde Bogotá – Colombia
Me da gusto saber que la información tefuede ayuda. Tomare e cuanta el consejo para verificar por que en Firfoxno aparecemos. As mismo te recomiendo también https://unprogramador.com/ aquí tbm tengo tutoriaes de Arduino. saludos.
Tengo un problema con el puerto serial y arduino, básicamente el problema es cuando desconecto la placa y necesito enviar un bit a la placa de arduino para encender un diodo led, me toca que reiniciar todo el proceso de darle permisos al puerto /dev/ttyUSB0 y abrir el monitor serial para establecer la comunicación, por acaso no sabrás alguna solución a este problema para que el haga eso automáticamente cuando reinicio el servidor?
Hola lo que puedes realizar es agregar el usuario que estas utilizando al grupo “dialout” ya que solo los usuarios en este grupo tienen permiso para manejar los puertos. Normalmente el usuario no esta en este grupo. Para solucionarlo puedes realizar lo siguiente:
sudo usermod -a -G dialout
Después t pedirá la contraseña root y listo. Solo reinicia la sesión para que se vea el cambio.
Hola lo que puedes realizar es agregar el usuario que estas utilizando al grupo “dialout” ya que solo los usuarios en este grupo tienen permiso para manejar los puertos. Normalmente el usuario no esta en este grupo. Para solucionarlo puedes realizar lo siguiente:
sudo usermod -a -G dialout
Después t pedirá la contraseña root y listo. Solo reinicia la sesión para que se vea el cambio.
Hola, yo tengo conectado un arduino en mi raspberry pi 3 y tengo exactamenteel mismo problema donde me aparece (error al abrir el puerto serial ‘/dev/ttyACM0’). Ya le di los permisos que usted dice pero aun asi cuando quiero cargar el programa me aparecelo mismo.
Hola que tal, pues he intentado este proceso de darle permiso al puerto que en mi caso cuando conecto el Arduino me aparece como ttyACM0, y bueno se le otorgan los permisos así como en las imágenes que muestras. Pero al abrir el programa de IDE de Arduino definitivamente no me aparece la opción de elegir el puerto serial. ¿ A que crees que se deba esto ?
Gracias y espero tu respuesta
Hola en la ocasión que he visto esto fu debido a que la conexión del circuito conectado a mi placa de arduino estaba mal, básicamente estaba provocando un corto (GND estaba conectado a 5v). Por eso aunque Ubuntu si detectaba la conexión al puerto, la placa se apagaba y por eso no podía detectar el puerto. Tienes un circuito conectado o solo es la placa? Saludos y disculpa la tardanza igual si lo solucionaste compártenos
Muchas gracias por explicarlo tan bien, me resolvió el problema para Linux Mint ❤
Que bueno q se haya sido de ayuda. Ese es nuestro objetivo. Te recomiendo nos puedas seguir también en https://unprogramagor.com encontraras más sobre arduino. Saludos
Hola, he estado buscando un blog que me ayude, tengo el siguiente problema: instale Ububtu 18.04 en mi pc y quiero que reconozca muy joystick en el puerto de juegos (DA-15), la tarjeta de sonido si la reconoce pero el Joystick no, ¿que puedo hacer? tengo un Joystick Genius Maxfire G-8 es un poco viejo pero lo quiero para lo esencial
muchas
gracias ¡funcionó!
Hola buen día, no e podido cargar en la placa ningún programa con Ubuntu 18.04 de ninguna manera se activa el acceso a puerto serial, y la forma que dices con el diálogo tampoco hace nada, que podría hacer pues lastimosamente tendré que seguir con Windows que se instala la IDE de Eeduino y se conecta la placa y ya.
Genial!
Muchas gracias por el tutorial!, tenia el mismo problema al intentar conectar la placa Arduino con el IDE Arduino en Ubuntu, pero siguiendo los pasos pude solucionarlo
Saludos
Muchísimas gracias. Me estaba volviendo loco para manejar mi vieja impresora 3D. Cuatro años después tu post me ha sido muy útil.
Eres la mejor, te amo, funciono 😀
Gracias Juan,que bueno que la información te fue útil. Te recomiendo pasar por el blog https://unprogramador.com/ donde también colaboró.
Muchas gracias, funcionò
muchas gracias me fue genial
Disculpa hasta ahora recibiste flores , pero para mi no me funciona nada esto de dar permisos podrá ser muy seguro pero lo único que hace es poner palos en la rueda a linux , Me explico soy un novato que quiero pasar de windows a linux y con lo único que me encuentro es con una consola que pocos la entienden y hay que estar constantemente buscando información de alguien que haya experimentado ,mis mismas frustraciones que estoy experimentando en un sistema arcaico que no pueden poner un sistema moderno y gráfico .
Ahora se porque el escritorio de linux no triunfan , esta hecho para frikis y por frikis es decir gente curiosa e inteligente , pero que tiene mucho tiempo .