webentwicklung-frage-antwort-db.com.de

Problem beim Hochladen von Arduino-Skizzen - avrdude: stk500_recv (): Programmierer antwortet nicht

Ich habe einen Arduino Duemilanove mit einem Atmega 328. Ich arbeite an Ubuntu 12.04 und die Arduino IDE-Version ist 1.0. Vor kurzem habe ich versucht, einige der Beispielskizzen darauf zu laden, beispielsweise die Blink-Skizze. Keiner meiner Versuche funktioniert jedoch und führt bei jedem Versuch zu demselben Fehler - avrdude: stk500_recv (): Der Programmierer antwortet nicht.

enter image description here

Ich habe '/ dev/ttyUSB0' unter Tools -> Serial Port aktiviert. Ich habe auch die richtige Karte (Duemilanove mit Atmega 328) aus der Liste ausgewählt. Ich kann das Problem jedoch nicht lösen. Ich habe auch online gesucht und keine der anderen Antworten auf dieses Problem scheint für mich zu funktionieren. Kann mir jemand sagen, warum ich auf dieses Problem stoße, und mir helfen, es zu lösen?

Update : Ich habe versucht, die integrierte Atmega zu drehen und in die andere Richtung einzubauen. Nun treten beim Hochladen keine Probleme auf, aber danach passiert nichts. Die Onboard-LED scheint auch nicht zu blinken.

108
Pastafarian

Ich hatte dieses Problem mit einem Crowduino, das Arduino IDE unter OSX ausführte. Die Lösung für mich bestand darin, die ausführliche Ausgabe während des Uploads einzuschalten (im Voreinstellungsfenster von arduino IDE).

Beim Hochladen können Sie sehen, dass drei Pakete avrdude: Send: 0 [30] [20] (mit entsprechenden RX-Blitzen auf der Platine) unmittelbar vor dem avrdude: ser_recv(): programmer is not responding-Fehler gesendet werden.

Der Trick besteht darin, die Reset-Taste auf der Platine unmittelbar vor dem Senden dieser drei Pakete zu drücken. Dann wird das Programm erfolgreich hochgeladen.

98
hoipolloi

Stellen Sie sicher, dass an den Tx/Rx-Pins keine Eingaben vorhanden sind, dann funktioniert es.

60
rednaks

Ich weiß, dass dies ein alter Beitrag ist, aber es gibt ein paar Voodoo-Gespräche in den Antworten hier unter guten Ideen. Lassen Sie uns versuchen, etwas realistischer zu sein, was passiert, und fassen Sie die guten Dinge zusammen:

Grundsätzlich ist es in diesem Fall sinnvoll, den ausführlichen Modus für avrdude zu aktivieren, um eine bessere Vorstellung davon zu erhalten, was passiert. Dazu müssen Sie nur in den Voreinstellungen gehen und das Kästchen für den ausführlichen Modus aktivieren. Es ist auch eine gute Idee, sich von der arduino IDE zu entfernen und eine Konsole zu starten, um die Ausgabe von avrdude besser lesen zu können, indem Sie auf die Schaltfläche upload klicken. 

Was hier wichtig ist, ist 3 oder 4 -v für den Befehlsaufruf. So sieht es aus wie solche avrdude-Befehle, deren Parameter völlig abhängig sind, wie der Arduino installiert wurde:

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

Eine gute Möglichkeit, die richtige Befehlszeile zu verwenden, ist das Kopieren der ausführlichen Ausgabe des Arduino IDE -Protokolls, wenn die Ausführlichkeit aktiviert wurde.

Wenn Sie avrdude: stk500_recv(): programmer is not responding erhalten, bedeutet dies im Grunde, dass etwas Falsches passiert, bevor das Blinken beginnt. Grundsätzlich müssen Sie prüfen (von Hardware zu Software, Low Level bis High Level):

  • wenn das Kabel und/oder die Anschlüsse keine Mikroschnitte haben;
  • wenn keine Lötstellen kurzgeschlossen sind (d. h. wenn Sie etwas Metallisches berühren), bedeutet das:
    • wenn an der PCB zwischen Rx und Tx kein Kurzschluss vorliegt (normalerweise Pins 1 und 0);
    • wenn es keinen Kontakt mit einem metallischen Element unterhalb der Platine oder mit winzigen Bits zwischen den Beinen einer Komponente (wie dem FTDI, dem Atmega-Chip oder einem anderen) gibt;
  • wenn der atmega-Chip nicht leer ist (GND/VCC-Abkürzung oder Schnitt oder VCC-Eingang ist tot…);
  • wenn die 1- und 0-Pins des Arduino nicht von einem bestimmten Schild oder benutzerdefinierten Design verwendet werden (/!\ gilt nicht für den Leonardo, da er über ein unabhängiges USB-Handling verfügt);
  • wenn der USB to UART -Konverter kein Problem hat (FTDI bei älterem duemilanove oder Atmega16U2 bei neueren Unos);
  • wenn der Atmega328-Chip gebraten oder falsch installiert wurde;
  • wenn der Bootloader überschrieben wurde oder ausfällt;
  • wenn die richtige Baudrate für den Eintritt in den Bootloader angewendet wird;
  • wenn die richtigen Einstellungen für die Ziel-MCU und das Board festgelegt sind;

in der Regel kann der avrdude -v -v -v -v bei der Suche nach Fehlern helfen. Ob es überhaupt keine USB-Verbindung herstellen kann (Kabelfehler, USB/UART, PCB ...) oder ein Problem mit dem Bootloader ist.

Update : Ich habe versucht, die integrierte Atmega zu drehen und in die andere Richtung einzubauen. Nun treten beim Hochladen keine Probleme auf, aber danach passiert nichts. Die Onboard-LED scheint auch nicht zu blinken.

Ich befürchte, dass, wenn Sie die Position der Atmega umgedreht haben und dies nicht funktioniert, die Tatsache, dass Sie die Stromquelle auf digitale Pins gelegt haben, Ihren Chip verbrannt hat.

44
zmo

Ich hatte das gleiche Problem - deshalb habe ich diese Frage gefunden.

Ich musste nur den Prozessor von "ATmego328P" in "ATmego328P (Old Bootloader)" ändern.

Problem gelöst - zumindest für mich.

 enter image description here

27
Edgar

Prüfen Sie, ob Ihr Board richtig ausgewählt wurde. Klicken Sie auf das Menü Extras -> Karte und prüfen Sie, ob die richtige Karte ausgewählt ist.

21
linhadiretalipe

Sie können prüfen, ob Steckbrücken an Pin 0 und 1 angeschlossen sind. Diese Pins werden für die serielle Kommunikation verwendet, und eingesteckte Drähte können verhindern, dass der Code auf die Platine geladen wird.

Wenn nichts angeschlossen ist, liegt möglicherweise ein Fehler mit avrdude vor. Sie können versuchen, es zu aktualisieren.

Ich hoffe es hilft! :)

12
ladislas

Dieses Problem habe ich auch getroffen und durch die Neuinstallation des seriellen USB-Treibers behoben. Bitte sehen Sie auch: http://arduino.cc/de/Guide/Howto und http://www.ftdichip.com/Drivers/VCP.htm

10
Anthony

Der obige Fehler tritt in 3 Stufen auf

  1. Wenn der Bootloader abgestürzt ist
  2. wenn Sie nicht den richtigen Port und die richtige Karte von IDE ausgewählt haben
  3. Wenn Sie mit einem anderen seriellen Port kommunizieren, sind Sie miteinander verbunden 
4
AMPS

Ich hatte das gleiche Bei meinem ersten Versuch von Arduino UNO . Meine Lösung war ziemlich einfach. Einfach ausstecken und USB-Kabel einstecken. Ich hoffe es funktioniert für Sie.

3
Ozan Atmar

Ich habe das Problem unter OS X Yosemite 10.10 mit den folgenden Anweisungen behoben:

http://www.mommosoft.com/blog/2014/10/24/ftdi-chip-and-os-x-10-10/

Der von hoipolloi vorgeschlagene Trick war jedoch auch in dieser Version ein funktionierender temporärer Workaround.

3
Sigismondo

Unter Windows 7 hatte ich dieses Problem mehrfach, jedes Mal mit unterschiedlichen Fehlermeldungen. Grundsätzlich sendet die IDE an den falschen Port. Um dies zu beheben, gehen Sie einfach auf "Tools" -> "Ports" -> [wählen Sie den COM-Port aus, auf dem sich Ihre Karte befindet].

Stellen Sie sicher, dass Sie den Port Ihres Boards überprüfen:

1) Starten Sie den Gerätemanager

Start Menu

2) Stellen Sie sicher, dass Ihr Arduino-Treiber unter dem Port aufgeführt ist, der den Porteinstellungen Ihrer IDE entspricht (oben erwähnt).

Device Manager

3) Mein Board ist unter Port COM1 aufgeführt. Wenn Sie möchten, können Sie einfach den Port in den erweiterten Einstellungen des Treibers ändern:

enter image description here

3
Domi

Ich habe dieses Problem auf meinem Arduino, das auch unter Mac läuft. Es passiert auf zwei meiner Arduinos (A Arduino Uno und Arduino Pro verbunden mit FTDI). 

Beim Uno schließe ich das Kabel an meinen Computer an und drücke "Upload". Dann fange ich an zu zählen, bis die LED "TX" blinkt. Wiederholen Sie dann den Upload, aber kurz bevor die TX-LED blinkt, drücken Sie die Reset-Taste, und der Upload ist erfolgreich. 

Ich stellte später fest, dass das Problem durch das Ändern des USB-Kabels behoben wurde.

2
mrsoltys

Du kannst es versuchen:

  • Check in preferences.txt serial.debug_rate: serial.debug_rate=9600
  • Andernfalls versuchen Sie, beim Hochladen die Reset-Taste Ihres Arduino zu drücken.
  • Andernfalls versuchen Sie, eine andere Karte im Menü arduino-> tools auszuwählen, und wählen Sie dann Ihre Karte erneut in der Liste aus.
1
hanoo

Vielen Dank an @hoipolloi für die richtige Richtung bei der Suche nach der Lösung. Wie auch immer, ich musste ein bisschen andere Schritte machen, um das Problem zu beheben.
Ich meine, die UNO hatte gut funktioniert, hörte aber plötzlich auf, nachdem sie mit Skizzen gespielt hatte. Ich habe die ganze Zeit die stk500_recv(): programmer is not responding erhalten und nichts hat funktioniert. Dann habe ich darauf geachtet, dass die LED 13 auf meinem Board immer an ist. Es sah so aus, als würde eine fest geschlungene Skizze immer wieder auf der Tafel laufen und jede Eingabe auf der Tafel blockieren. Nicht sicher, es ist nur meine Vermutung.
Ich habe versucht, in allen möglichen Momenten ohne Glück auf RESET zu klicken, und habe plötzlich die folgenden Schritte versucht:

  1. Stecken Sie die Platine aus.
  2. Klicken und halten Sie RESET.
  3. Stecken Sie es wieder ein.
  4. Warten Sie einige Sekunden.
  5. Lassen Sie die RESET-Taste los.

Danach bemerkte ich, dass die integrierte 13-LED für eine Sekunde ausgeschaltet und dann wieder eingeschaltet wurde. Es sah so aus, als gäbe es ein kurzes Reset-Fenster, als die Karte tatsächlich zurückgesetzt wird. Dann, wie in @ hoipollois Lösung, habe ich den Moment des "Zurücksetzens" kurz bevor die 3 Pakete gesendet wurden und das hat funktioniert.
Hoffe, dies wird Ihnen helfen, das Problem herauszufinden, wenn keine andere Lösung funktioniert.

TIP . Wenn beim Hochladen der Skizze in Ihrer Konsole die drei Zeilen Send: 0 [30] [20] Nicht angezeigt werden, gehen Sie wie folgt vor:

  1. Klicken Sie in Ihrer Arduino IDE auf "Hochladen".
  2. Sehen Sie sich das Protokollfenster an. Sie werden in der Lage sein, eine Zeile wie diese zu finden:

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

  1. Sieht aus wie es Zeilenumbruch oder Leerzeichen wie hier -CE:\Program Files... Verschluckt. Es sollte -C E:\Program Files Sein. Kopieren Sie dies wie folgt in den Editor, fügen Sie fehlende Leerzeichen hinzu, um die Zeile folgendermaßen zu gestalten:

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

  1. Fügen Sie 4 -v - Anweisungen hinzu, wie oben beschrieben.
  2. Öffnen Sie die Befehlszeile, fügen Sie den Befehl ein und führen Sie ihn aus.

Jetzt werden Sie dank 4 -v Argumenten viel ausführlicher sehen. Ursprünglich verwendet Arduino Studio nur einen.

1
Sergey Metlov

Ich dachte nur, ich würde darauf hinweisen, dass mein brandneues Arduino Uno Rev3 Board den folgenden LInux-Treiber verwendet:

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

Dies wird im neuesten LInux 3.x-Kernel als Option: CONFIG_USB_ACM: bezeichnet.

Dieses Gerät erscheint dann als: /dev/ttyACM0 oder ähnlich.

1
James Mills

ich dachte nur, ich würde eine Lösung hinzufügen, die auf einem Mac Pro (Desktop) läuft. 

Ich habe die gleiche Fehlermeldung erhalten und es stellte sich heraus, dass ich den USB-Anschluss an ein Peripheriegerät (meinen Monitor) und nicht einen USB-Anschluss am PC selbst angeschlossen hatte. Fehler sofort abgebrochen und eine einfache Lösung.

1
lee

Haben Sie etwas mit dem RESET-Pin am Arduino zu tun?

Dieses Problem ist bei einer Grafik LCD aufgetreten, bei der eine Verbindung zum RESET-Pin hergestellt werden musste. Wenn Sie den Jumper-Draht zwischen dem LCD und dem RESET-Pin entfernen, während der Code hochgeladen wurde, wurde er für mich repariert. Alles, was Sie tun müssen, ist, die Verbindung wiederherzustellen, sobald der Code hochgeladen wurde.

1
Jamie

Ich habe ein Problem in meinem Fall gelöst, indem ich alte FDTM-Treiber von hier heruntergeladen und installiert habe.

Installieren Sie FTDIUSBSerialDriver_10_4_10_5_10_6_10_7.mpkg und starten Sie Arduino erneut.

1
shimaro

Diese Kombination der obigen Antworten löste das Problem für mich:

  • hat das Java Update durchgeführt:

    Sudo apt-get install default-jdk

  • dann tötete das Arduino IDE und startete es neu

  • mein korrektes Board wurde jetzt angezeigt (Arduino Mega 2560, wo vorher Mega 1280 nur Option war)

  • für die Fahrer habe ich folgendes gemacht:

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

danach zeigt mein arduino IDE im Menü tools/serial port /dev/ttyACM0 an

Jetzt funktioniert alles super!

1
seanhalle

also fand ich die Ursache dafür ... Das Ändern meiner seriellen Schnittstelle in /dev/tty.usbmodem2131 hat sie behoben. Es stellte sich heraus, dass ich die ganze Zeit über die falsche serielle Schnittstelle verwendet habe!

1
Fritz Dodoo

Stellen Sie zunächst sicher, dass/dev/ttyUSB0 funktioniert. Z.B. Stecken Sie die Maus ein und prüfen Sie, ob es funktioniert. Zweitens, wählen Sie eine andere Karte aus. Nicht-Original-Boards werden oft nicht richtig unter ihrem Namen erkannt. Drittens: Drücken Sie beim Zurücksetzen der Skizze die Reset-Taste manuell. Möglicherweise ist das automatische Zurücksetzen defekt.

1
Sergei B.

Versuchen Sie, ein Programm ohne -b (die Option "Baudrate") zu laden. In ~/.arduino15/preferences.txt set build.verbose = true, wenn arduino.cc nicht ausgeführt wird. In der ausführlichen Ausgabe finden Sie die Hex-Datei, die Sie von einer Konsole laden sollten:

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

Ich ersetze einfach den Chip 128 durch die 328-Version und von Decimile wurde mein Board-Name aufgrund der neuen Baudrate 115200 in Uno oder Ethernet geändert.

0
42n4

In meinem Fall (Mini Pro) war die Lösung so einfach, nicht sicher, wie ich das vermisst habe.

Lösung:

  • Arduino Rx-Pin geht an FTDI Tx-Pin.
  • Arduino Tx-Pin geht an FTDI Rx-Pin.
0
t0mislav

Für meinen Fall war es die falsche Baudrate. Es ruft diesen Befehl auf: 

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 

Wie Sie sehen, ist die Baudrate auf 57600 eingestellt. Wenn Sie dieses Argument entfernen (-b57600) und es in der Befehlszeile ausführen, funktioniert es einwandfrei. 

0
user1512681

Wenn Sie Ihr Arduino über einen USB-Hub anschließen, versuchen Sie, es stattdessen direkt an einen der USB-Anschlüsse des Mac anzuschließen.
.__Das hat bei mir funktioniert.

0

Dies könnte verzögert sein, aber es hat mich getroffen: Stellen Sie sicher, dass Ihr USB-Kabel (auf der Arduino-Seite) richtig angeschlossen ist (vollständig angeschlossen). Stellen Sie sicher, dass das Gerät wie hier beschrieben (für Windows) erkannt wurde: https://stackoverflow.com/a/26913070/3361975

0
Sebastian

Für mich war es so einfach, die richtigen Ports einzustellen.

Um dies festzulegen, gehen Sie zu Extras> Port und wechseln Sie von COM1 zum entsprechenden Port.

Danach hat mein Programm korrekt funktioniert

Ich habe versucht, mein Servo an den Arduino 5V-Pin anzuschließen, den Prozessor bunt zu machen, und deshalb habe ich diesen Fehler bekommen

avrdude: stk500_recv (): Der Programmierer antwortet nicht

Lösung: Kaufen Sie ein neues Arduino und ein externes 5V-Netzteil für das Servo.

0
Nic Taky Nic

Ich poste dies, weil ich diese Antwort an keiner anderen Stelle gefunden habe. Alle meine Arduino nano chinese (CH340) -Klone hatten dieses Problem, nachdem sie auf Arduino IDE auf 1.8.9 aktualisiert wurden. Was für mich funktioniert hat, war die Verwendung eines offiziellen Ersatz-Arduino Uno, mit dem ich den Bootloader auf den fehlerhaften Nanos mithilfe der ICSP-Header auf dem Nano brennen muss. Dazu habe ich nur die folgenden Anweisungen befolgt: chinesischer-Klon-von-Arduino-Nano-mit-Chip-ch340g-wie-es-zu-reparieren . Das Einzige, was ich anders gemacht habe, war, immer die "Old Bootloader" -Option zu setzen, wie zuvor in diesem Thread gesagt. Ansonsten habe ich die Anweisungen auf diesem Link vollständig befolgt und meine Nanos vor diesem ärgerlichen Problem bewahrt. Ich hoffe, das hilft jemandem da draußen.

0
Dave

Haben Sie den Treiber für das FTDI-Kabel installiert/aktualisiert? (Schritt drei auf http://arduino.cc/de/Guide/Howto ). Das Ausführen des Arduino IDE von meinem Raspberry Pi funktionierte gut, ohne die Treiber explizit zu installieren (entweder waren sie vorinstalliert oder das Arduino IDE -Installationsprogramm hat sich darum gekümmert). Auf meinem Mac war dies nicht der Fall und ich musste die Kabeltreiber zusätzlich zur IDE installieren.

0
user3133327

Ich hatte das gleiche Problem mit dem Arduino Due, der größte Teil der vorgeschlagenen Lösung funktionierte nicht. Die L LED war konstant an. Mein Problem wurde durch die Deinstallation der IDE und die Auswahl der experimentellen Version 1.5.8 gelöst. In der Platine wählte ich die untere Option Arduino Due (Programmierport). Natürlich müssen Sie den USB-Port am Programmierport anschließen auch.

0
miks

Ich hatte das gleiche Problem und löste es selbst. 

Erstens: Ich habe eine (OSEPP UNO r3 PLUS). Es ist ein Arduino UNO REV 3 von OSEPP.

Ich habe gerade eine OSEPP Motor- und Servo Controller-Abschirmung gekauft. Ich habe gerade Motoren in Betrieb genommen und bin dann auf den gleichen Fehler gestoßen. avrdude: stk500_recv (): Der Programmierer antwortet nicht.

Ich denke, während es angeschlossen wurde, hat es eine neue serielle Schnittstelle erstellt/zugewiesen. Gefunden im arduino-Programm unter "Tools> Serial Port". Ich habe gerade diejenige wiedergewählt, die sich auf die UNO und das BAM bezog, Problem gelöst.

Hoffentlich hilft das jemandem. 

0
Edd Clarke

Ich habe gerade die letzten paar Stunden mit diesem Thema verbracht ... Gehen Sie einfach hier " http://www.ftdichip.com/Drivers/VCP.htm ", laden Sie die neuesten Treiber herunter und starten Sie den Computer neu. Sollte danach gut funktionieren. Ich habe auch jede Nacht die Arduino-Software heruntergeladen, aber ich weiß nicht, dass das einen Unterschied macht.

0
rjpalombo

Ich musste richtig board auswählen. Gehen Sie beispielsweise zu Tools -> Boards ->Arduino Nano.

0
ViliusK

In meinem Fall trat das Problem auf, als ich versuchte, einige "seltsame" arithmetische Ausdrücke auszuführen

zB (3,14/4)/5 oder 3,15% 2,55

Ich empfehle Ihnen daher überprüfen Sie alle arithmetischen Ausdrücke, falls einige von ihnen vom Arduino nicht berechnet werden können.

Ich hoffe es hilft.

0
Pontios