avrdude: stk500v2_ReceiveMessage(): timeout

Este es el principal error que obtengo cuando intento ejecutar mi programa ARDUINO. La lista completa de errores es la siguiente:

avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer

Mi código es el siguiente:

int led=13;
void setup()
{
    pinMode(13,OUTPUT);
}

void loop()
{
    digitalWrite(13,HIGH);
    delay(1000);
    digitalWrite(13,LOW);
    delay(1000);
}

He probado actualizando los drivers (están totalmente actualizados) y descargando algunos programas. Tengo Windows 7 y mi arduino es un MEGA 2560. Aparece en el administrador de dispositivos y todas mis conexiones son correctas. La luz verde PWR está encendida y también la luz L parpadeante. Las luces RX y TX parpadean cuando actualizo. He probado casi todo en la web. ¿Cuál es el problema?

El mensaje de error significa básicamente que el programador no puede contactar con el gestor de arranque del dispositivo; el código que intentas cargar no tiene nada que ver con el problema.

Lo que causa esto puede ser numerosas y variadas, algunas cuestiones posibles:

  1. Comunicaciones UART
  • El parpadeo está ocurriendo, así que esperemos que no esté utilizando el puerto equivocado. Aunque puede que merezca la pena comprobarlo de nuevo, a veces los dispositivos USB COM se instalan en números de puerto extraños.

  • Conecte TX a RX (y desconéctelos del AVR si es posible) y abra un terminal en el puerto COM. Si no es así, algo está mal arriba del chip, podría ser el chip de comunicaciones (creo que el Arduino 2560 utiliza un AVR secundario en lugar de un FTDI por alguna razón, por lo que podría estar roto, ya sea su software o hardware)

  1. Cargador de arranque ATmega*.
  • El AVR no está ejecutando el gestor de arranque por alguna razón. Si el programador no está reseteando el micro antes de intentar conectarlo, esta podría ser la razón. Intenta resetear el AVR (pulsa y suelta el botón) mientras el programador intenta conectarse. A veces el software que se ejecuta en un bucle cerrado impide que el bootloader se conecte.

  • Salvo eso, puede que los fusibles se hayan estropeado o que el código se haya borrado. Necesitarías reflashear el bootloader y los fusibles apropiados, de nuevo, mira la página de información apropiada para tu dispositivo.

  1. Sólo Arduino Mega 2560: Software ATmega8U/16U

*Podría no estar funcionando y necesitaría reprogramación. Consulte la Sección de programación en la página de información, necesitará el firmware y el software DFU (actualización del firmware del dispositivo) compatible con Atmel en su ordenador para reflashear el objetivo.

  1. Daños de hardware en la placa, AVR(s), o chip FTDI
  • Necesitas un chip nuevo.

Consulta este mensaje en el foro para más ideas.

Comentarios (1)

Obtuve este error porque no especifiqué el programador correcto en la línea de comandos avrdude. Tienes que especificar "-c arduino" si estás usando una placa Arduino.

Este comando de ejemplo lee el estado del hfuse:

avrdude -c arduino -P /dev/ttyACM0 -p atmega328p -U hfuse:r:-:h
Comentarios (0)

Esto no es realmente una solución de fijación, pero puede ayudar a otros. A diferencia de Nick había dicho para mí era debido a un código en mi programa. Tengo el modelo mega ADK. El problema estaba ligado a una sentencia switch para procesar y analizar el byte[] devuelto desde la conexión USB a Android. Es muy extraño porque sería compilar perfectamente cada vez, pero fallaría como el OP había declarado. Lo comenté y funcionó bien.

Comentarios (0)