Problemas con el Puerto Serial Arduino-Ubuntu

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

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

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.

Anuncios

23 comentarios en “Problemas con el Puerto Serial Arduino-Ubuntu

  1. Carlos Moreno dijo:

    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

  2. silvio dijo:

    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

    • strlo dijo:

      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

      • Carlos Moreno dijo:

        “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”)

  3. Agustin dijo:

    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

    • strlo dijo:

      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.

  4. Mauricio Martinez dijo:

    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

  5. andrés jiménez dijo:

    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?

    • strlo dijo:

      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.

  6. strlo dijo:

    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.

  7. Dayans Xavier dijo:

    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.

  8. Albert Nava dijo:

    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

    • strlo dijo:

      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

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s