¡Aloha! ¿Qué tal? No, no soy uno de esos
chicos molones de El cajón de Arduino. Ellos tienen sus tutoriales molones y yo…yo hablo más de lo que me viene ese día a
la cabeza.
Soy Rufián de Rufián en la Red. Nada, que se ve que en Valencia cuando nos da
por algo nos subimos todos al barco. Que si la corrupción, que si Arduino…ainss
somos de un previsible…
Bueno, me han invitado para contarte que es eso
del avrdude. Dude en inglés es tío..osea que este
debe de ser el tío avr….Pues no veas si es duro el tío. Hace unos días recibí
un e-mail de una chica que decía que se acababa de bajar mi guía
y que, intentando poner en práctica algunas cosas eso no iba ni para atrás. La
frase que le sacaba el compilador era esta:
avrdude:
stk500_getsync(): not in sync: resp=0x00
De lleno al problema: avrdude
Parece raro que solamente una frase pueda
joderte la vida de tal forma. Pero te aseguro que lo hace ya que por mucho que
vas a la web del troubleshooting, ahí no sacas nada.
Y te toca buscarte la vida o buscar en foros.
La primera vez que me pasó era para pasar un
simple programa. Y no entendía cómo ni porqué a veces salía y a veces no. Me
puse como loco a buscar por foros y encontré la solución.
Ahora entiendo que significa
que el pc no se podía comunicar con Arduino. Pero, ¿Por qué? Porque
nadie me había dicho que los pines 0 y 1 eran de
comunicación Serial. Yo pensaba que toda la comunicación se daba por el
puerto USB. ¡Coño, si yo veía cómo los mensajes llegaban por ahí! Pero no, los
pines digitales 0 y 1 son los de comunicación. Si te fijas, verás que pone RX y TX, sirven para recibir y enviar. ¡Así que nada de cables ahí cuando pases programas!
Entonces fui feliz, hasta que sucedió lo mismo.
Tío, el tipo este me estaba poniendo de los nervios. ¿Sabes lo que es estar
toda la mañana enviando el programa a la placa y que se envíe correctamente una
de cada 100 veces? Ahora lo pienso y no sé ni porqué se enviaba a veces.
Parece que había un problema con la
comunicación, pero no había nada en los pines de transmisión y recepción. Y
como a veces iba ya era en plan…me está vacilando y mañana se arregla. Al día
siguiente igual. Hasta que al final me puse a buscarlo seriamente. Encontrar no
encontré nada, hasta que vi algo que igual podía ser lo que buscaba:
sudo
chmod 666 /dev/ttyACM0
Claro, lo que pasaba es que yo no tenía suficientes permisos (Si eres de
Windows esto te va a sonar raro, raro…) para
acceder al puerto USB a través del IDE de Arduino. Con esa línea en tu terminal debería de solucionarse el
problema. Truco rufián: Si eres vago a tope, puedes
arrancar el IDE de Arduino como si fueses superusuario. Ya sé ya sé, no
es 100% recomendable y tiene sus desventajas, pero coño, ¡he dicho para los
vagos!
avrdude en Windows
Eso pasa en Linux, en Windows he visto casos en
los que aparece este error:
avrdude:
ser_open(): can’t open device “\.COM3”: Access is denied.
La solución a tus problemas muchas veces es instalar los drivers de Arduino. No me preguntes
cuáles porque yo con el sistema operativo de los chicos de Redmond voy perdido
desde hace unos cuantos años. Solamente sé que están
en la carpeta drivers que viene con el IDE de Arduino.
También existe otra opción: Que no se pueda comunicar porque hay alguien utilizando el
puerto USB. Nada nada, no me refiero a hackers ni cosas malignas, pero
hay programas a los que damos todo el poder del mundo (Siguiente ->
Siguiente->Aceptar) y que resulta que se encargan de mantener ocupados los
puertos USB vete tu a saber por qué. Normalmente
porque son drivers de esos que buscan un USB concreto y van buscando
entre los puertos COM.
¿La solución? Simple, el famoso Alt+F4 para abrir el gestor de procesos y matar la
aplicación que pueda parecer sospechosa. ¿Y cuál es esa? A saber, hay
que ir probando. Y nada de cargarse cosas como el explorer o similares, que
esos son básicos del sistema xD. Pista: estos
servicios suelen hacer parpadear el led de transmisión de datos de Arduino.
Si para es que os habéis cargado el servicio
correcto 😉
Algunos errores de principiante
Otro fallo típico por el que sucede esto es el
de no elegir la placa bien. Bueno, puede
parecer de perogrullo pero a mi me pasó el otro día con la placa ZUM BT 328, la placa de
BQ. Y es que a veces conectas la placa y ya le das caña sin mirar en la pestaña Herramientas, en la opción Tarjeta o Board.
Otras veces es el puerto el que no se elige
automáticamente y es necesario acudir a Herramientas->Puerto
para elegir el que toca. Normalmente será el USB pero puede que tengas
la opción de conexión por Wifi o Bluetooth. Esa conexión, además de pasar el
programa, te permite el envío y recepción de mensajes por el puerto Serial.
Otra opción que hay
en Herramientas y que también puede afectar es el Programador. Es mejor no tocarlo pero en tu caso debe de estar en AVRISP mkll.
Espera, ¿AVR otra vez?
Y es que AVR no es el hombre del saco cómo
puede parecer, sino que es el tipo de microcontrolador que se utiliza en
Arduino. Y avrdude lo que permite es transportar el
programa compilado por gcc-avr (seguro que te suena gcc) a la placa. Es decir, avrdude es el tipo de los
recados y se pasa el día llevando aquello que hemos compilado a nuestra placa.
Al final, es un buencha.
Adiós, con el corazón…
Bueno, todo tiene que llegar a su final. Y mi
parada está aquí. Si nada de lo dicho te ha
funcionado, puede que haya que cargar el bootlader
de nuevo, pero eso ya es chungo. Y ya si eso no funciona…prueba en más
ordenadores porque tal vez hayas dejado inservible tu placa por primera vez y
tengas que comprar una nueva.
Espero que si eres uno de esos novatos a los
que el avrdude les está jugando una mala pasada, esto te sirva. Y si eres uno
de esos viejunos a los que avrdude les tocó las narices en su día, que compartas a todo trapo con tus colegas menos
duchos en esto de Arduino. ¡Nos vemos pronto!…si
los chicos del Cajón de Arduino quieren claro 😉
P.D. Buscando información sobre AVR he
encontrado esta perla: ‘no estoy seguro de lo que tiene el tuyo, pero yo
una vez conecte 12V a la salida de 5v y lo destrui :/ aunque no recuerdo que
error me daba‘. Y estoy en shock.
Muchas gracias, recien compre el arduino Nano y me marco ese error "avrdude: ser_open(): can't open device "\.COM3": El sistema no puede encontrar el archivo especificado." Reinstalando las librerias se soluciono, muchas gracias!!!!!