Problema de carga de Arduino Sketch - avrdude: stk500_recv (): el programador no responde

133

Tengo un Arduino Duemilanove con un ATmega328 . Estoy trabajando en Ubuntu 12.04 (Precise Pangolin), y la versión de Arduino IDE es 1.0. Recientemente, intenté cargar algunos de los bocetos de muestra, como el de Blink. Sin embargo, ninguno de mis intentos está funcionando y resultan en el mismo error cada vez que lo intento:

avrdude: stk500_recv (): el programador no responde.

Lo he habilitado /dev/ttyUSB0en el menú HerramientasPuerto serie . También he seleccionado la placa correcta (Duemilanove con ATmega328) de la lista. Sin embargo, no puedo resolver el problema. También he buscado en línea y ninguna de las otras respuestas a este problema parece estar funcionando para mí. ¿Por qué me encuentro con este problema y cómo resolverlo?

También intenté girar el ATmega a bordo y ajustarlo en la otra dirección. Ahora, no encuentro problemas para cargar, pero no sucede nada después. El LED incorporado tampoco parece estar parpadeando.

Pastafarian
fuente
Desconecte RST de GND en la placa Arduino uno. Seguí este tutorial y olvidé deshacer eso.
ArtiomLK
Esto podría deberse a que la velocidad en baudios se establece en un valor incorrecto (probablemente demasiado alto).
Konrad Gajewski

Respuestas:

108

Tuve este problema con un Crowduino, ejecutando Arduino IDE en OS X. La solución para mí fue activar la salida detallada durante la carga (en el panel de preferencias de Arduino IDE).

Luego, al cargar, puede ver AVRDUDE enviando tres paquetes avrdude: Send: 0 [30] [20](con los flashes RX correspondientes en el tablero) justo antes deavrdude: ser_recv(): programmer is not responding error.

El truco es presionar el botón de reinicio en el tablero inmediatamente antes de que se envíen estos tres paquetes. Entonces el programa se cargará con éxito.

hoipolloi
fuente
2
Bueno, eso resolvió el problema para mí al menos. ¿Cómo lo resolviste?
SlackOverflow
8
@daniele Otras personas notaron que si restableces después de X segundos, entonces funciona. Supuse que los paquetes eran un intento de estrechar la mano. Básicamente, ¡lo resolví usando Google, paciencia y jugando con el tablero!
hoipolloi
Traté de resetear y funcionó una vez, pero hasta que leí esto no sabía el momento adecuado para hacerlo, gracias
Ulises Layera
44
FYI - Tuve que instalar los últimos controladores FTDI para resolver este problema permanentemente
Scott Silvi
2
La actualización del controlador FTDI y el reinicio de Arduion me ayudaron (MacOS 10.9.4, Arduino Nano 328)
peetonn
80

Asegúrese de que no haya entrada en los pines Tx / Rx. Entonces funcionará.

rednaks
fuente
¡Esto funcionó para mí! Tenía un módulo bluetooth conectado a los pines RX / TX.
johngreen
Esto funcionó para mí. Tenía que desconecte también el cable USB y Arduino reinicio, porque he recibido otro error después de desconectar las clavijas (y el poder, sólo para estar seguro)
oneindelijk
68

Tuve el mismo problema: por eso encontré esta pregunta.

Solo tuve que cambiar el procesador de “ATmego328P” a “ATmego328P (Old Bootloader)”

Problema resuelto, al menos para mí.

ingrese la descripción de la imagen aquí

Edgar
fuente
Hola, ¿dónde puedo encontrar el panel de selección del procesador en el nuevo IDE?
Muhammad Ali
3
@MuhammadAli: Acabo de agregar una captura de pantalla para responder a su pregunta
Edgar
Dios te bendiga, ese fue mi problema también.
ofekp
2
Este problema puede aparecer si está utilizando la placa ELEGOO NANO. La misma solución se menciona en el documento de preguntas frecuentes también.
chetan92
Si la placa es un Arduino nano y se fabricó anteriormente a enero de 2018, solo seleccionando Procesador> "ATmega328P (Old Bootloader)" hará el truco ( arduino.cc/en/Guide/ArduinoNano#toc4 )
Bit-Man
48

Hay un poco de vudú en las respuestas por aquí entre buenas ideas. Tratemos de ser un poco más real acerca de lo que está sucediendo y resumamos las cosas buenas para verificar:

Básicamente, cuando eso sucede, es una buena idea habilitar el modo detallado para AVRDUDE , para tener una mejor idea de lo que está sucediendo. Para hacerlo, solo necesita ir a las preferencias y marcar la casilla de modo detallado. También es una buena idea alejarse del Arduino IDE y lanzar una consola para estar más cómodo al leer la salida de AVRDUDE, que podrá hacer clic en el uploadbotón.

Lo importante aquí es poner 3 o 4 -va la llamada de comando. Así es como se ven dichos comandos AVRDUDE, con parámetros inventados, ya que dependen totalmente de cómo se haya instalado el Arduino:

avrdude -v -v -v -v -C /path/to/avrdude.conf -patmega328 -P/dev/usbport -U flash:w:/path/to/firmware.hex

Una buena manera de obtener la línea de comando correcta para usar es copiarla de la salida detallada del registro de salida Arduino IDE cuando se ha habilitado la verbosidad.

Cuando obtienes avrdude: stk500_recv(): programmer is not responding, básicamente significa que algo malo está sucediendo, antes de que comience a parpadear.

Básicamente, debe verificar (desde hardware hasta software, de bajo nivel a alto nivel):

  • si el cable y / o los conectores no tienen microcortes;
  • Si no hay puntos de soldadura en cortocircuito (es decir, tocar algo metálico alrededor), eso significa:
    • si no hay un cortocircuito en la PCB entre Rxy Tx(generalmente pines 1y 0);
    • si no hay contacto con un elemento metálico debajo del tablero, o pequeños pedazos entre las patas de un componente (como el FTDI, el chip ATmega o cualquier otro);
  • si el chip ATmega no está sin alimentación (GND / V CC atajo o corte o la entrada V CC está muerta ...);
  • si los pines 1y 0del Arduino no están siendo utilizados por algún escudo o diseño personalizado ( /!\no se aplica al Leonardo ya que tiene un manejo USB independiente);
  • si el convertidor de USB a UART no tiene un problema ( FTDIen Duemilanove anterior o ATmega16U2 en Arduino Unos más nuevo);
  • si el chip ATmega328 está frito o mal instalado;
  • si el gestor de arranque se ha sobrescrito o está fallando;
  • si se aplica la velocidad de transmisión correcta para ingresar al gestor de arranque;
  • si la configuración correcta está establecida para el microcontrolador y placa objetivo;

Por lo general, avrdude -v -v -v -vpuede ayudar mucho a encontrar en qué etapa está fallando. Si no puede establecer una conexión USB (falla de cable, USB / UART, PCB ...), o es un problema del gestor de arranque.

Actualización : intenté girar el ATmega a bordo y ajustarlo en la otra dirección. Ahora, no encuentro problemas para cargar, pero no sucede nada después. El LED incorporado tampoco parece estar parpadeando.

Me temo que si invirtió la posición del ATmega y luego no funciona, el hecho de que haya colocado la fuente de alimentación en los pines digitales puede haber quemado su chip.

zmo
fuente
Por cierto, la salida de Arduino tiene como última línea (antes de comenzar a cargar) la ruta a avrdude, la ruta a la configuración y la ruta al archivo flash. Esto se puede copiar y pegar fácilmente en la línea de comando y agregar las -v.
powtac
De hecho, sin embargo, iirc (casi nunca estoy usando la horrible interfaz de usuario), debe habilitar la salida detallada en las preferencias
zmo
1
Para mí, esto sucedió porque configuré una velocidad de transmisión incorrecta en la configuración de eclipse avrdude. Lo descubrí cuando vi la línea de comandos en arduino IDE.
Tejas Kale
avrdude: no programmer has been specified on the command line or the config file Specify a programmer using the -c option and try again
K - La toxicidad en SO está creciendo.
Corregido:avrdude -v -v -v -v -C/etc/avrdude.conf -patmega328 -carduino -P/dev/ttyACM0 -U flash:w:~/Arduino/WebServer/WebServer.ino.standard.hex
K - La toxicidad en SO está creciendo.
21

Intenta ver si tu tablero se seleccionó correctamente. Haga clic en el menú Herramientas -> Tablero y verifique si está seleccionado el tablero correcto.

linhadiretalipe
fuente
1
Esto fue para mí. Estaba usando un Uno hasta que lo frí y obtuve un nuevo Mega. El nuevo Mega estaba viendo este problema. Ni siquiera sabía que este menú existía. ¡Gracias!
Mike
No es eso, pero no se seleccionó la serie correcta ... ¡Algo en lo que pensar, de hecho! ¡Gracias!
heltonbiker
¿Cómo sé qué placa es compatible con mi Arduino?
turmuka
12

Puede verificar si tiene algún cable de puente conectado a los pines 0 y 1. Esos pines se usan para la comunicación en serie y los cables enchufados pueden evitar que el código se cargue en la placa.

Si no hay nada conectado, puede ser un error con AVRDUDE , puede intentar actualizarlo.

ladislas
fuente
3
No hay absolutamente nada conectado a 0 y 1. avrdudeTambién se actualiza y es la última versión.
Pastafarian
No tengo otra tabla. :( Aunque parece que se está produciendo un error similar en Windows, puede ser un problema con el tablero.
Pastafarian
Sí, eso es lo que diría ... Puedes probar un Serial.println()ejemplo para comprobar si no es solo el led 13.
ladislas
10

También encontré este problema y lo resolví reinstalando el controlador serial USB. Ver también: http://arduino.cc/en/Guide/Howto y http://www.ftdichip.com/Drivers/VCP.htm

Antonio
fuente
1
Cada vez que uso mi Arduino Duemilanove ATMega328, siempre me olvido de hacer esto, y también compruebo que se haya seleccionado la placa correcta en la aplicación Arduino (en Herramientas a partir de 1.0.6.
Andrew
1
Si acaba de instalar el IDE de Arduino, ¡esta respuesta es (muy probablemente) lo que está buscando!
Zaxter
5

El error anterior viene en 3 etapas

  1. Si el cargador de arranque se ha bloqueado
  2. si no seleccionó el puerto adecuado y la placa adecuada del IDE
  3. Si se está comunicando con otro puerto serie están conectados, es decir, el pin GND y Tx están conectados a otro dispositivo de comunicación
AMPS
fuente
En mi caso, había seleccionado un tablero equivocado. Gracias AMPS!
Jamshaid Kamran
3

Resolví el problema en OS X v10.10 (Yosemite) siguiendo estas instrucciones:

Chip FTDI y OS X 10.10

Sin embargo, el truco propuesto por hoipolloi era una solución temporal funcional, también en esta versión.

Sigismondo
fuente
Esto también funcionó para mí en 10.10. Después de esa publicación, no tuve que hacer los pasos 4, 5 o 6. Ahora puedo actualizar los scripts usando Arduino IDE varias veces sin obtener ese error.
dbainbridge
3

Tuve el mismo problema en mi primer intento de Arduino Uno.

Mi solución fue bastante simple. Simplemente conéctelo y luego conecte el cable USB.

Ozan Atmar
fuente
3

En Windows 7 , tuve este problema varias veces, cada vez con diferentes mensajes de error. Básicamente, el IDE está enviando al puerto incorrecto.

Para solucionar esto, simplemente vaya al menú HerramientasPuertos → [seleccione el puerto COM en el que se encuentra su placa].

Asegúrese de verificar el puerto de su placa:

  1. Inicie el Administrador de dispositivos

    Menu de inicio

  2. Asegúrese de que su controlador Arduino esté en la lista debajo del puerto que coincida con la configuración de puerto de su IDE (mencionado anteriormente)

    Administrador de dispositivos

  3. Mi placa aparece en el puerto COM1. Si lo desea, simplemente puede cambiar el puerto en la configuración avanzada del controlador:

    Ingrese la descripción de la imagen aquí

Domi
fuente
2

Tengo este problema en mi Arduino ejecutándose en Mac también. Sucede en dos de mis Arduinos (un Arduino Uno y un Arduino Pro conectado con FTDI).

Para el Uno, conecto el cable a mi computadora y presiono cargar, y luego empiezo a contar hasta que el LED "TX" parpadea. Luego repita la carga, pero justo antes de que el LED TX parpadee, presione el botón de reinicio y la carga tendrá éxito.

Más tarde determiné que cambiar el cable USB solucionó este problema.

mrsoltys
fuente
1
Cambiar el cable USB fijo para mí
Paul Bailey
2

Estoy publicando esto porque no encontré esta respuesta en otro lugar. Todos mis clones Arduino nano chino (CH340) tuvieron este problema después de actualizar al Arduino IDE a 1.8.9. Lo que funcionó para mí fue usar un Arduino Uno oficial de repuesto que tengo que grabar el cargador de arranque en los nanos defectuosos usando los encabezados ICSP en el nano. Para esto, todo lo que hice fue seguir las instrucciones aquí: clon chino de arduino-nano-con-chip-ch340g-cómo-arreglarlo . Lo ÚNICO que hice de manera diferente fue establecer siempre la opción "Old Bootloader" como se dijo anteriormente en este hilo. Aparte de eso, seguí completamente las instrucciones en ese enlace y salvé a mis nanos de ese molesto problema. Espero que esto ayude a alguien por ahí.

Dave
fuente
1

Primero, asegúrese de que / dev / ttyUSB0 funcione. Por ejemplo, conecte el mouse y verifique que funcione. En segundo lugar, intente seleccionar otro tablero. Es frecuente que los tableros no originales no se reconozcan correctamente bajo sus nombres. Tercero, intente presionar el botón de reinicio manualmente mientras carga el boceto. Probablemente el reinicio automático esté roto.

Sergei B.
fuente
1

Resolví un problema en mi caso descargando e instalando controladores FDTM antiguos desde aquí .

Intente instalar FTDIUSBSerialDriver_10_4_10_5_10_6_10_7.mpkg, luego reinicie Arduino.

shimaro
fuente
en su mayoría no está relacionado con el problema del OP, y el controlador FTDI es útil solo si tiene un Arduino 328.
zmo
1

Solo pensé en señalar que mi nueva placa Arduino Uno Rev3 utiliza el siguiente controlador LInux:

Device Drivers    
|-USB Drivers
  |-USB Modem (CDC ACM) support

Esto se conoce como la CONFIG_USB_ACM:opción : en el kernel LInux 3.x más reciente.

Este dispositivo aparece como: /dev/ttyACM0o similar.

James Mills
fuente
1

¿Tienes algo conectado al RESETpin en el Arduino?

Encontré este problema con una pantalla LCD gráfica que necesitaba conectarse al RESETPin. Desconectar el cable de puente entre la pantalla LCD y el RESETpin mientras carga el código lo arregló para mí, todo lo que tendría que hacer es volver a conectar una vez que el código haya terminado de cargarse.

Jamie
fuente
1

Encontré la causa de esto ...

Cambiar mi puerto serie a /dev/tty.usbmodem2131 lo arregló. ¡Resultó que estaba usando el puerto serie incorrecto todo este tiempo!

Fritz Dodoo
fuente
1

Puedes probar:

  • Compruebe en preferencias.txt serial.debug_rate: serial.debug_rate=9600
  • De lo contrario, intente presionar el botón de reinicio de su Arduino justo cuando cargue.
  • De lo contrario, intente seleccionar otra tarjeta en el menú Arduino IDE Herramientas y luego vuelva a seleccionar su tarjeta en la lista.
hanoo
fuente
1

Esta combinación de las respuestas anteriores resolvió el problema para mí:

  • realizó la actualización de Java:

    sudo apt-get install default-jdk

  • luego mató el IDE Arduino y lo reinició

  • mi tablero correcto ahora apareció (Arduino Mega 2560, donde antes Mega 1280 era la única opción)

  • para los conductores, hice esto:

    sudo chmod a+rw /dev/serial/by-id/usb-Arduino__www.arduino.cc__(a bunch of numbers)

Después de eso, mi IDE Arduino se muestra /dev/ttyACM0en el menú de herramientas / puerto serie.

¡Ahora todo funciona muy bien!

seanhalle
fuente
¡Gracias! JDK no estaba causando problemas en mi caso, pero el sudo chmod a + rw / dev / serial / by-id / usb-Arduino ********** hizo el trabajo.
Artur Barseghyan
1

Aquí hay una solución que funcionó para mí corriendo en un MacBook Pro (escritorio).

Estaba recibiendo el mismo error y resulta que tenía el USB conectado a un dispositivo periférico (mi monitor) en lugar de un USB en la PC. Detuvo cualquier error de inmediato y es una solución simple.

sotavento
fuente
1

Gracias @hoipolloi por la dirección correcta para encontrar la solución.

De todos modos, tuve que hacer un poco diferentes pasos para solucionar el problema.

En mi caso, el Arduino Uno había funcionado bien, pero de repente se detuvo después de jugar con bocetos. Recibía stk500_recv(): programmer is not respondingtodo el tiempo y nada funcionaba. Luego presté atención a que el LED 13 siempre está encendido en mi placa. Parecía que algún boceto duro en bucle se ejecutaba una y otra vez en el tablero y bloqueaba cualquier entrada al tablero. No estoy seguro, es solo mi suposición.

Intenté hacer clic en RESET en todos los momentos posibles sin suerte y de repente intenté los siguientes pasos:

  1. Desenchufe el tablero.
  2. Haga clic y mantenga presionado RESET.
  3. Enchufe de nuevo.
  4. Espera unos segundos.
  5. Suelte el botón RESET.

Después de esto, noté que el LED 13 incorporado se apagaba por un segundo y luego se volvía a encender. Parecía que había una breve ventana de reinicio cuando la placa se estaba reiniciando. Luego, como en la solución de @ hoipolloi, capté el momento de "reinicio" justo antes de que se envíen los tres paquetes y funcionó.

Espero que esto te ayude a resolver el problema si ninguna de las otras soluciones funciona.

TIP . Si no ve las tres Send: 0 [30] [20]líneas al cargar el boceto en su consola, haga lo siguiente:

  1. Haga clic en "Cargar" en su IDE de Arduino.
  2. Mira la ventana de registro. Podrá encontrar una línea como esta:

    E:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CE:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -carduino -PCOM3 -b115200 -D -Uflash:w:C:\Users\Sergey\AppData\Local\Temp\build44ca75bc60fd83cc8ef41e35d4d83388.tmp/sketch_sep07a.ino.hex:i
    
  3. Parece que traga saltos de línea o símbolos de espacio como aquí -CE:\Program Files.... Debería ser -C E:\Program Files. Copie esto como en el Bloc de notas, agregue espacios faltantes para hacer que la línea este:

    E:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -v -v -v -v -C "E:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf" -patmega328p -carduino -PCOM3 -b115200 -D -U flash:w:C:\Users\Sergey\AppData\Local\Temp\build44ca75bc60fd83cc8ef41e35d4d83388.tmp/sketch_sep07a.ino.hex:i
    
  4. Agregue 4 -vinstrucciones como hice anteriormente.

  5. Abra la línea de comando, pegue el comando en él y ejecútelo.

Ahora verá mucho más detallado gracias a 4 -vargumentos. Originalmente, Arduino Studio usa solo uno.

Sergey Metlov
fuente
0

¿Instaló / actualizó el controlador para el cable FTDI? (Paso tres en http://arduino.cc/en/Guide/Howto ). Ejecutar el Arduino IDE desde mi Raspberry Pi funcionó bien sin instalar explícitamente los controladores (o estaban preinstalados o el instalador Arduino IDE se encargó de ello). En mi Mac este no era el caso y tuve que instalar los controladores de cable además del IDE.

usuario3133327
fuente
0

Acabo de pasar las últimas horas en este mismo problema ... Simplemente vaya aquí " http://www.ftdichip.com/Drivers/VCP.htm ", descargue los controladores más recientes y reinicie. Debería funcionar bien después de eso. También descargué una noche del software Arduino, pero no creo que haya hecho la diferencia.

rjpalombo
fuente
0

Intente cargar un programa sin -b (la opción de velocidad de transmisión). En ~ / .arduino15 / preferencias.txt establece build.verbose = true, cuando arduino.cc no se está ejecutando. En la salida detallada, encontrará el archivo hexadecimal que debe cargar desde una consola:

avrdude -v -v -v -v -C/usr/share/arduino/hardware/tools/avr/etc/avrdude.conf -patmega328p -carduino -P/dev/ttyUSB2  -D -Uflash:w:/tmp/build2314497724350388190.tmp/sketch_nov13b.cpp.hex:i

Acabo de reemplazar el chip 128 con la versión 328 y desde Decimile el nombre de mi placa fue cambiado a Uno o Ethernet debido a la nueva velocidad de transmisión 115200.

42n4
fuente
0

Si está conectando su Arduino a través de un Hub USB, intente conectarlo directamente a uno de los puertos USB de la Mac.
Eso funcionó para mí.

Magnus Johansson
fuente
0

En mi caso, el problema surgió cuando intentaba hacer algunas expresiones aritméticas "extrañas"

por ejemplo (3.14 / 4) / 5 o 3.15% 2.55

Por lo tanto, sugeriría que verifique todas las expresiones aritméticas en caso de que Arduino no pueda calcular algunas de ellas.

Espero eso ayude.

Pontios
fuente
0

En mi caso (Mini Pro), la solución fue muy simple, no estoy seguro de cómo me perdí eso. Necesitaba cruzar los cables rx / tx.

Solución:

  • El pin Arduino Rx va al pin FTDI Tx.
  • El pin Arduino Tx va al pin FTDI Rx.
t0mislav
fuente
0

Para mi caso, era la velocidad de transmisión incorrecta. Llama a este comando:

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -carduino -PCOM4 **-b57600** -D -Uflash:w:C:\Users\Vahid\AppData\Local\Temp\arduino_build_527841/AnalogReadSerial.ino.hex:i 

Como puede ver, la velocidad en baudios se establece en 57600. Cuando elimina este argumento (-b57600) y lo ejecuta en la línea de comandos, funciona bien.

vmontazeri
fuente
0

Mi problema fue que actualicé el IDE de Arduino a una nueva versión y no volví a conectar el cable. Parece que ese fue el problema

Simplemente desconecte el cable y vuelva a conectar. Gracias.

atulkhatri
fuente